增加盘点打开光源,10分钟之内无盘点则关闭

merge-requests/6/head
yiming 4 years ago
parent 4600d46906
commit 5c9194b9a3

@ -51,6 +51,17 @@ public class ConfigProperties {
private Long delayCaptureTime; private Long delayCaptureTime;
private Long runningDelayCaptureTime;
private Long C1DelayCaptureTime;
private Long C2DelayCaptureTime;
private Long C2OutDelayCaptureTime;
private Long C3DelayCaptureTime;
private Long C4DelayCaptureTime;
private Long C4OutDelayCaptureTime;
private Long B2DelayTime;
private Long B2OutDelayTime;
private Long delayDownloadMp4; private Long delayDownloadMp4;
} }

@ -1,7 +1,15 @@
package com.zhehekeji.web.service; package com.zhehekeji.web.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.LightSource;
import com.zhehekeji.web.mapper.LightSourceMapper;
import com.zhehekeji.web.service.damLightSource.JYDAMEquip;
import com.zhehekeji.web.service.damLightSource.JYDamHelper;
import com.zhehekeji.web.service.hikLightSource.HikControlSocket;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.sf.cglib.core.Local;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -9,10 +17,15 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.time.*; import java.time.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@Component @Component
@EnableScheduling @EnableScheduling
@ -21,9 +34,16 @@ public class CronTab {
@Resource @Resource
private ConfigProperties configProperties; private ConfigProperties configProperties;
@Resource
private LightSourceMapper lightSourceMapper;
private static LocalDateTime now; private static LocalDateTime now;
private static Map<Integer,Long> lightTimeMap = new HashMap<>();
//10分钟
private static BigInteger timeDIff = BigInteger.valueOf(10*60*1000);
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
//@Scheduled(cron = "0 0/1 * * * *") //@Scheduled(cron = "0 0/1 * * * *")
public void file() { public void file() {
@ -35,6 +55,38 @@ public class CronTab {
checkFileTime(dir2,configProperties.getDeleteFileDays()); checkFileTime(dir2,configProperties.getDeleteFileDays());
} }
public static void putTime(Integer streetId){
lightTimeMap.put(streetId,System.currentTimeMillis());
}
@Scheduled(cron = "0 0/1 * * * ?")
public void lightStatus() {
log.debug(" lightStatus");
long timeStamp = System.currentTimeMillis();
Iterator<Map.Entry<Integer, Long>> it = lightTimeMap.entrySet().iterator();
while (it.hasNext()){
Map.Entry<Integer, Long> entry = it.next();
if((BigInteger.valueOf(timeStamp).subtract(BigInteger.valueOf(entry.getValue()))).compareTo(timeDIff) > 0){
List<LightSource> lightSources = lightSourceMapper.selectList(new QueryWrapper<LightSource>().eq("street_id",entry.getKey()));
lightSources.forEach(lightSource -> {
if(configProperties.getLightSource().getType() == 1){
JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort());
JYDamHelper.closeDO(equip,configProperties.getLightSource().getIndex());
Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex());
log.info("ip:{},status:{}",lightSource.getIp(),status);
equip.DisConnect();
}else if(configProperties.getLightSource().getType() == 2){
HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0);
}
});
it.remove();
}
}
}
public static void checkFileTime(File dir,int days) { public static void checkFileTime(File dir,int days) {
if(!dir.exists()){ if(!dir.exists()){
return; return;

@ -201,7 +201,7 @@ public class PlcService {
* @param plcCmdInfo * @param plcCmdInfo
* @param times * @param times
*/ */
public void action(PlcCmdInfo plcCmdInfo, Integer times, String code) { public void action(PlcCmdInfo plcCmdInfo, Integer times, String code) throws InterruptedException {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street == null) { if (street == null) {
log.error("street not found ,plcId :{}", plcCmdInfo.getPlcId()); log.error("street not found ,plcId :{}", plcCmdInfo.getPlcId());
@ -209,9 +209,7 @@ public class PlcService {
} }
OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, times, code); OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, times, code);
String path = null; String path = null;
/**
* C2 C4
*/
Boolean needCapture = doNeedCaptureByCode(orderInfo.getCmdCode()); Boolean needCapture = doNeedCaptureByCode(orderInfo.getCmdCode());
/*** /***
* *
@ -223,22 +221,43 @@ public class PlcService {
Integer cameraId = getCameraByPlcCmd(plcCmdInfo,orderInfo.getLeftRight()); Integer cameraId = getCameraByPlcCmd(plcCmdInfo,orderInfo.getLeftRight());
gyrateCameraByCode(cameraId,orderInfo.getCmdCode()); gyrateCameraByCode(cameraId,orderInfo.getCmdCode());
if(needCapture){ if(needCapture){
Boolean delay = false; Boolean delay = true;
if(code.startsWith("C1") || code.startsWith("C3")){
delay = true;
}
Integer row = 0; Integer row = 0;
Integer column = 0; Integer column = 0;
Integer sep = 0;
if(times<=2){ if(times<=2){
row = plcCmdInfo.getRow1(); row = plcCmdInfo.getRow1();
column = plcCmdInfo.getColumn1(); column = plcCmdInfo.getColumn1();
sep = plcCmdInfo.getSeparation1();
}else { }else {
row = plcCmdInfo.getRow2(); row = plcCmdInfo.getRow2();
column = plcCmdInfo.getColumn2(); column = plcCmdInfo.getColumn2();
sep = plcCmdInfo.getSeparation2();
} }
path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column); long delayTime = 0;
if(code.startsWith("C1")){
delayTime = configProperties.getCameraConfig().getC1DelayCaptureTime();
}else if(code.startsWith("C2")){
if(sep == 1){
delayTime = configProperties.getCameraConfig().getC2DelayCaptureTime();
}else {
delayTime = configProperties.getCameraConfig().getC2OutDelayCaptureTime();
}
}else if(code.startsWith("C3")){
delayTime = configProperties.getCameraConfig().getC3DelayCaptureTime();
path = cameraCapture(cameraId,delay,configProperties.getCameraConfig().getDelayCaptureTime(),path); }else if(code.startsWith("C4")){
if(sep == 1){
delayTime = configProperties.getCameraConfig().getC4DelayCaptureTime();
}else {
delayTime = configProperties.getCameraConfig().getC4OutDelayCaptureTime();
}
}
path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column);
path = cameraCapture(cameraId,delay,delayTime,path);
} }
//update order info after capture //update order info after capture
if (path != null && needCapture) { if (path != null && needCapture) {
@ -248,10 +267,10 @@ public class PlcService {
if(times == 2){ if(times == 2){
if(street.getCamera2Id() != null){ if(street.getCamera2Id() != null){
gyrateCameraByCodeTimeLater(street.getCamera2Id(),"C5",configProperties.getCameraConfig().getDelayCaptureTime()+100); gyrateCameraByCodeTimeLater(street.getCamera2Id(),"C5",configProperties.getCameraConfig().getC2OutDelayCaptureTime()+500);
} }
if(street.getCamera1Id() != null){ if(street.getCamera1Id() != null){
gyrateCameraByCodeTimeLater(street.getCamera1Id(),"C5",configProperties.getCameraConfig().getDelayCaptureTime()+100); gyrateCameraByCodeTimeLater(street.getCamera1Id(),"C5",configProperties.getCameraConfig().getC2OutDelayCaptureTime()+500);
} }
} }
} }
@ -558,6 +577,7 @@ public class PlcService {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
CronTab.putTime(street.getId());
Integer cameraId = getCameraByPlcCmd(plcCmdInfo,plcCmdInfo.getLeftRight1()); Integer cameraId = getCameraByPlcCmd(plcCmdInfo,plcCmdInfo.getLeftRight1());
gyrateCameraByCode(cameraId, cmdCode); gyrateCameraByCode(cameraId, cmdCode);
try { try {
@ -572,10 +592,10 @@ public class PlcService {
Boolean trayCheck = Boolean.TRUE; Boolean trayCheck = Boolean.TRUE;
//如果是用扫码枪 扫 托盘码,就直接扫 //如果是用扫码枪 扫 托盘码,就直接扫
//if(configProperties.getScanCodeMode().getTray() == 2){ //if(configProperties.getScanCodeMode().getTray() == 2){
SensorGun sensorGun = sensorService.getSensorByPlc(street.getId(),plcCmdInfo.getLeftRight1());
if(plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2){ if(plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2){
//托盘使用sick扫码枪 //托盘使用sick扫码枪
SensorGun sensorGun = sensorService.getSensorByPlc(street.getId(),plcCmdInfo.getLeftRight1());
if(sensorGun == null){ if(sensorGun == null){
trayCode = "识别异常"; trayCode = "识别异常";
trayCheck = Boolean.FALSE; trayCheck = Boolean.FALSE;
@ -610,7 +630,7 @@ public class PlcService {
//RFID //RFID
RFID rfid = rfidService.getRFIDByPlc(street.getId()); RFID rfid = rfidService.getRFIDByPlc(street.getId());
} }
StockCheckRunnable stockCheckRunnable = new StockCheckRunnable(street,plcCmdInfo,cmdCode,stockMapper,path,checkLogMapper,configProperties.getScanCodeMode().getGoods(),wmsCode,wmsTrayCode,trayCode,trayCheck,configProperties); StockCheckRunnable stockCheckRunnable = new StockCheckRunnable(street,plcCmdInfo,cmdCode,stockMapper,path,checkLogMapper,configProperties.getScanCodeMode().getGoods(),wmsCode,wmsTrayCode,trayCode,trayCheck,configProperties,sensorGun);
threadPoolExecutor.execute(stockCheckRunnable); threadPoolExecutor.execute(stockCheckRunnable);
long end = System.currentTimeMillis(); long end = System.currentTimeMillis();
@ -623,4 +643,8 @@ public class PlcService {
stockMapper.truncate(); stockMapper.truncate();
} }
public ConfigProperties getConfigProperties(){
return configProperties;
}
} }

@ -3,11 +3,13 @@ package com.zhehekeji.web.service;
import codeDetector.BarcodeDetector; import codeDetector.BarcodeDetector;
import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.CheckLog; import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.SensorGun;
import com.zhehekeji.web.entity.Stock; import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.entity.Street; import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.lib.OrderInfo; import com.zhehekeji.web.lib.OrderInfo;
import com.zhehekeji.web.mapper.CheckLogMapper; import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StockMapper; import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.service.sick.SickSocket;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -33,8 +35,10 @@ public class StockCheckRunnable implements Runnable {
private ConfigProperties configProperties; private ConfigProperties configProperties;
private SensorGun sensorGun;
public StockCheckRunnable(Street street, PlcCmdInfo plcCmdInfo, String cmdCode, StockMapper stockMapper,String path,CheckLogMapper checkLogMapper,Integer goodsActionTimes,String wmsCode,String wmsTrayCode,String trayCode,Boolean trayCheck,ConfigProperties configProperties){
public StockCheckRunnable(Street street, PlcCmdInfo plcCmdInfo, String cmdCode, StockMapper stockMapper, String path, CheckLogMapper checkLogMapper, Integer goodsActionTimes, String wmsCode, String wmsTrayCode, String trayCode, Boolean trayCheck, ConfigProperties configProperties, SensorGun sensorGun){
this.street = street; this.street = street;
this.plcCmdInfo = plcCmdInfo; this.plcCmdInfo = plcCmdInfo;
this.cmdCode = cmdCode; this.cmdCode = cmdCode;
@ -47,7 +51,7 @@ public class StockCheckRunnable implements Runnable {
this.trayCode = trayCode; this.trayCode = trayCode;
this.trayCheck = trayCheck; this.trayCheck = trayCheck;
this.configProperties = configProperties; this.configProperties = configProperties;
this.sensorGun = sensorGun;
} }
@Override @Override
@ -58,29 +62,7 @@ public class StockCheckRunnable implements Runnable {
Boolean codeCheck = Boolean.TRUE; Boolean codeCheck = Boolean.TRUE;
Boolean trayCodeCheck = Boolean.TRUE; Boolean trayCodeCheck = Boolean.TRUE;
//货物使用球机扫码 //货物使用球机扫码
/*if(configProperties.getScanCodeMode().getGoods() == 1){
if("".equals(wmsCode)){
//空货物的处理
//如果系统货物为空,则只要扫码识别未出结果,就认为无货物
scanCode = BarcodeDetector.detectBestCodeUntilOK(configProperties.getSavePath().getMediaPath()+path,configProperties.getScanCodeMode().getGoodsCodeTypes());
if(StringUtils.isEmpty(scanCode)|| scanCode.equals("Unrecognized")){
codeCheck = Boolean.TRUE;
scanCode = "";
}else {
codeCheck = wmsCode.equals(scanCode);
}
}else {
scanCode = BarcodeDetector.detectBestCodeUntilOK(configProperties.getSavePath().getMediaPath()+path,configProperties.getScanCodeMode().getGoodsCodeTypes());
if(StringUtils.isEmpty(scanCode)){
log.error("row:{},cloumn:{}",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1());
log.error("detectBestBarCode:{}",scanCode);
scanCode = "识别异常";
codeCheck = Boolean.FALSE;
}else {
codeCheck = wmsCode.equals(scanCode);
}
}
}*/
if(configProperties.getScanCodeMode().getTray() == 2 && plcCmdInfo.getSeparation1() == 2){ if(configProperties.getScanCodeMode().getTray() == 2 && plcCmdInfo.getSeparation1() == 2){
//托盘使用球机扫码 //托盘使用球机扫码
if("".equals(wmsTrayCode)){ if("".equals(wmsTrayCode)){
@ -102,9 +84,10 @@ public class StockCheckRunnable implements Runnable {
trayCode = "识别异常"; trayCode = "识别异常";
trayCheck = Boolean.FALSE; trayCheck = Boolean.FALSE;
}else { }else {
trayCheck = wmsCode.equals(trayCode); trayCheck = wmsTrayCode.equals(trayCode);
} }
} }
} }
log.info("code:{}",scanCode); log.info("code:{}",scanCode);
//核对异常 //核对异常

@ -37,7 +37,7 @@ public class KescFilter extends ChannelInitializer<SocketChannel> {
//4秒发一次心跳 //4秒发一次心跳
ph.addLast(new IdleStateHandler(0, 4, 0, TimeUnit.SECONDS)); ph.addLast(new IdleStateHandler(0, 4, 0, TimeUnit.SECONDS));
ByteBuf byteBuf = Unpooled.copiedBuffer(">".getBytes()); ByteBuf byteBuf = Unpooled.copiedBuffer(">".getBytes());
ph.addLast(new KsecDecoder(1000,byteBuf,plcService)); ph.addLast(new KsecDecoder(10000,byteBuf,plcService));
ph.addLast(new KescEncoder()); ph.addLast(new KescEncoder());
ph.addLast(new KescNettyHandler(ksecInfo,nettyClient)); ph.addLast(new KescNettyHandler(ksecInfo,nettyClient));
} }

@ -41,7 +41,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
protected Object decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception { protected Object decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception {
in = (ByteBuf) super.decode(ctx, in); in = (ByteBuf) super.decode(ctx, in);
if(in == null){ if(in == null){
log.info("no data"); log.debug("no data");
return null; return null;
} }
String body = in.toString(Charset.forName("UTF-8")); String body = in.toString(Charset.forName("UTF-8"));
@ -49,13 +49,29 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
// 去掉首尾标识符 // 去掉首尾标识符
body = body.substring(1, body.length()); body = body.substring(1, body.length());
KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class); KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class);
if (Cmd.A.name().equals(ksecInfo.getType())) {
in.release();
return null;
}
KsecDataInfo dataInfo = ksecInfo.getData(); KsecDataInfo dataInfo = ksecInfo.getData();
String lotnum = dataInfo.getLotnum(); String lotnum = dataInfo.getLotnum();
PlcCmdInfo plcCmdInfo = null; PlcCmdInfo plcCmdInfo = null;
String srmNumber = null; String srmNumber = null;
String cmdName = null; String cmdName = null;
if(dataInfo != null){ if(dataInfo != null){
//左右换过来
if(dataInfo.getFromDirection() == 1){
dataInfo.setFromDirection(2);
}else {
dataInfo.setFromDirection(1);
}
if(dataInfo.getToDirection() != null && dataInfo.getToDirection() == 1){
dataInfo.setToDirection(2);
}else {
dataInfo.setToDirection(1);
}
plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId(), dataInfo.getFromSide(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), dataInfo.getFromRow(), dataInfo.getFromSeparation(),dataInfo.getToSide(), dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(),dataInfo.getToSeparation(),lotnum); plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId(), dataInfo.getFromSide(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), dataInfo.getFromRow(), dataInfo.getFromSeparation(),dataInfo.getToSide(), dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(),dataInfo.getToSeparation(),lotnum);
srmNumber = dataInfo.getSRMNumber(); srmNumber = dataInfo.getSRMNumber();
cmdName = dataInfo.getCmdName(); cmdName = dataInfo.getCmdName();
} }
@ -77,6 +93,16 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
} }
} else if (Cmd.B2.name().equals(cmdName)) { } else if (Cmd.B2.name().equals(cmdName)) {
//B2 C4 一起发的需要停止等B2
//这里判断是不是双伸
if(plcCmdInfo.getSeparation2() == 2){
//深测货架延迟
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2OutDelayTime());
}else {
//浅侧延迟
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2DelayTime());
}
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name()); plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStop(plcCmdInfo); plcService.orderStop(plcCmdInfo);
} }
@ -97,22 +123,23 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
} }
} else if (Cmd.D.name().equals(ksecInfo.getType())) { } else if (Cmd.D.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body); tcpLogger.info("info:{}",body);
String code = dataInfo.getCmdName(); //柳州去掉告警
if(code.equals(Cmd.D1.name())){ // String code = dataInfo.getCmdName();
log.info("plcId:{},warn start",plcCmdInfo.getPlcId()); // if(code.equals(Cmd.D1.name())){
//根据告警code转动camera // log.info("plcId:{},warn start",plcCmdInfo.getPlcId());
String warnCode = dataInfo.getWarnCode(); // //根据告警code转动camera
if(!StringUtils.isEmpty(warnCode)){ // String warnCode = dataInfo.getWarnCode();
String warnCode0 = Cmd.D1.name()+"-"+warnCode.split(",")[0]; // if(!StringUtils.isEmpty(warnCode)){
plcService.warnAction(plcCmdInfo,warnCode0); // String warnCode0 = Cmd.D1.name()+"-"+warnCode.split(",")[0];
} // plcService.warnAction(plcCmdInfo,warnCode0);
plcService.warnStart(plcCmdInfo.getPlcId(),dataInfo.getWarnCode()); // }
}else if(code.equals(Cmd.D2.name())){ // plcService.warnStart(plcCmdInfo.getPlcId(),dataInfo.getWarnCode());
log.info("plcId:{},warn stop",plcCmdInfo.getPlcId()); // }else if(code.equals(Cmd.D2.name())){
plcService.warnStop(plcCmdInfo.getPlcId()); // log.info("plcId:{},warn stop",plcCmdInfo.getPlcId());
}else { // plcService.warnStop(plcCmdInfo.getPlcId());
log.info("other D code :{}",code); // }else {
} // log.info("other D code :{}",code);
// }
} else if (Cmd.E.name().equals(ksecInfo.getType())) { } else if (Cmd.E.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body); tcpLogger.info("info:{}",body);
//盘点 //盘点

@ -52,11 +52,16 @@ public class ProtocolDecoder extends FixedLengthFrameDecoder {
//不是包头 丢 //不是包头 丢
return null; return null;
} }
CharSequence plc = in.readCharSequence(6, Charset.defaultCharset()); ByteBuf plc = in.readBytes(6);
String plcId = plc.toString(); String plcId = plc.toString(Charset.defaultCharset());
//CharSequence plc = in.readBytes(6, Charset.defaultCharset());
//String plcId = plc.toString();
// OA=心跳 OB=工单 OC=任务 OD=告警 // OA=心跳 OB=工单 OC=任务 OD=告警
CharSequence typeChar = in.readCharSequence(2, Charset.defaultCharset()); // CharSequence typeChar = in.readCharSequence(2, Charset.defaultCharset());
String type = typeChar.toString(); // String type = typeChar.toString();
ByteBuf typeChar = in.readBytes(2);
String type = typeChar.toString(Charset.defaultCharset());
int taskId = in.readInt(); int taskId = in.readInt();
short short1 = in.readShort(); short short1 = in.readShort();
short short2 = in.readShort(); short short2 = in.readShort();

@ -14,7 +14,7 @@ spring:
testWhileIdle: false testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 url: jdbc:mysql://172.16.0.70:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root username: root
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
@ -34,6 +34,21 @@ cameraConfig:
videoServer: 127.0.0.1:8083 videoServer: 127.0.0.1:8083
#相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的 #相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的
delayCaptureTime: 3500 delayCaptureTime: 3500
#随行模式下的相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的
# 发了C1之后多久拍照
C1DelayCaptureTime: 1500
# 内侧货架 发了C2 之后多久拍照
C2DelayCaptureTime: 1500
# 外侧货架 发了C2 之后多久拍照
C2OutDelayCaptureTime: 2500
# 发了C3之后多久拍照
C3DelayCaptureTime: 1500
C4DelayCaptureTime: 1500
C4OutDelayCaptureTime: 1500
# 发了B2之后多久转原点位
B2DelayTime: 2000
# 外侧货架发了B2多久转原点位
B2OutDelayTime: 2000
# 下载mp4延迟 海康的下载mp4需要2分钟 # 下载mp4延迟 海康的下载mp4需要2分钟
# 利珀延迟10s就可 # 利珀延迟10s就可
# 单位毫秒 # 单位毫秒

Loading…
Cancel
Save