From a3b70d793be5aa98a05f2e9e7e3e16536c789360 Mon Sep 17 00:00:00 2001 From: qiushui Date: Tue, 30 Mar 2021 16:59:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=8B=E8=BD=AC360=20=E5=8F=91=E9=80=81C8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhehekeji/web/lib/PtzControlModule.java | 24 ++++++++------- .../web/service/MyProtocolDecoder.java | 9 ++++-- .../com/zhehekeji/web/service/PlcService.java | 30 +++++++++++++++++++ 3 files changed, 51 insertions(+), 12 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java b/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java index 1eff530..dddc314 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java @@ -321,7 +321,7 @@ public class PtzControlModule { * 旋转360度 * @param cameraId */ - public static void turn360(Integer cameraId){ + public static void turn360C8(Integer cameraId,Integer ptzId){ Thread thread = new Thread(new Runnable() { @Override public void run() { @@ -335,11 +335,9 @@ public class PtzControlModule { ptzLocationInfo.read(); if (bRet) { - System.out.println("xParam:" + ptzLocationInfo.nPTZPan); // 云台水平运动位置,有效范围:[0,3600] - System.out.println("yParam:" + ptzLocationInfo.nPTZTilt); // 云台垂直运动位置,有效范围:[-1800,1800] - System.out.println("zoomParam:" + ptzLocationInfo.nPTZZoom); + log.debug("xParam:{}",ptzLocationInfo.nPTZPan); int qq = (ptzLocationInfo.nPTZPan + 1799) % 3600; - System.out.println(qq); + log.debug("xParam turn to:{}",qq); toPtzSlow(cameraId,qq); try { Thread.sleep(5000); @@ -347,14 +345,20 @@ public class PtzControlModule { e.printStackTrace(); } qq = (qq + 1799) % 3600; - System.out.println(qq); + log.debug("xParam turn to:{}",qq); toPtzSlow(cameraId,qq); - + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if(ptzId != null){ + log.info(" turn C8"); + toPtz(ptzId,cameraId); + } } else { - System.err.println( " { error code: ( 0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +" ). 参考 LastError.java }"); - + log.error( " { error code: ( 0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +" ). 参考 LastError.java }"); } - } }); thread.start(); diff --git a/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java b/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java index daecb2d..d82039f 100644 --- a/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java @@ -1,5 +1,6 @@ package com.zhehekeji.web.service; +import com.zhehekeji.web.lib.PtzControlModule; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.FixedLengthFrameDecoder; @@ -90,12 +91,16 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder { } } else if (type.equals(ACTION)) { log.info("action code,{} plcId:{},orderInfo:{}", code, plcId, plcOrderInfo.toString()); - if(!code.equals("C6")){ + if(!code.equals("C6") && !code.equals("C7")){ + // C1-5 是执行动作,需要保存执行到第几步了 Integer times = OrderAction.put(plcOrderInfo.getOrderNum()); //执行动作 plcService.action(plcOrderInfo, plcId, times, code); + } else if(code.equals("C7")){ + //旋转360 然后发送C8命令 + plcService.turn360AndC8(plcId); }else { -// if(){} + // 其他命令执行动作 plcService.action(plcOrderInfo, plcId, 1, code); } } else if (type.equals(WARN)) { diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index ee51e76..c48d116 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -302,4 +302,34 @@ public class PlcService { OrderRealtime.stopOrder(street.getId()); } } + + /** + * 执行动作 旋转360,然后执行C8动作 + * + * @Param ptzId 旋转360之后,再转到这个预置点 + * @param plcId + */ + public void turn360AndC8(String plcId){ + Street street = streetMapper.getStreetByPlcId(plcId); + if(street == null){ + return; + } + + if(street.getCamera1Id() != null){ + List ioConfigs = ioMapper.selectList(new QueryWrapper().eq("code","C8").eq("camera_id",street.getCamera1Id())); + Integer ptzId = null; + if(ioConfigs.size() > 0){ + ptzId = ioConfigs.get(0).getPtzId(); + } + PtzControlModule.turn360C8(street.getCamera1Id(),ptzId); + } + if(street.getCamera2Id() != null) { + List ioConfigs = ioMapper.selectList(new QueryWrapper().eq("code","C8").eq("camera_id",street.getCamera2Id())); + Integer ptzId = null; + if(ioConfigs.size() > 0){ + ptzId = ioConfigs.get(0).getPtzId(); + } + PtzControlModule.turn360C8(street.getCamera2Id(),ptzId); + } + } }