采用手动配置结束和开始

玉溪
LAPTOP-S9HJSOEB\昊天 9 months ago
parent d568c360a6
commit 0004020a91

@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourcePageReqVO;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceRespVO;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.service.lightsource.LightSourceService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;

@ -9,9 +9,9 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetPageReqVO;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetRespVO;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.sensorgun.SensorGunDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
import cn.iocoder.yudao.module.camera.framework.light.LightFactory;
import cn.iocoder.yudao.module.camera.service.lightsource.LightSourceService;

@ -1,8 +1,9 @@
package cn.iocoder.yudao.module.camera.controller.admin.street.vo;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.sensorgun.SensorGunDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.camera.dal.dataobject.lightsource;
package cn.iocoder.yudao.module.camera.dal.dataobject.street;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import org.glassfish.jaxb.core.v2.TODO;
/**
* DO

@ -1,11 +1,11 @@
package cn.iocoder.yudao.module.camera.dal.mysql.lightsource;
import java.util.*;
package cn.iocoder.yudao.module.camera.dal.mysql.street;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mapper
*

@ -1,10 +1,9 @@
package cn.iocoder.yudao.module.camera.framework.light;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.framework.light.damLightSource.JYDAMEquip;
import cn.iocoder.yudao.module.camera.framework.light.damLightSource.JYDamHelper;
import cn.iocoder.yudao.module.camera.framework.light.hikLightSource.HikControlSocket;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import lombok.extern.slf4j.Slf4j;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@ -21,29 +20,43 @@ public class LightFactory {
*/
public static void LightController(LightSourceDO lightSourceRespVO, int type){
if(type == 0) {
if (lightSourceRespVO.getType() == 1) {
JYDAMEquip equip = JYDamHelper.Connect(lightSourceRespVO.getIp(),Integer.parseInt( lightSourceRespVO.getPort()));
JYDamHelper.closeDO(equip, 1);
} else if (lightSourceRespVO.getType() == 2) {
HikControlSocket.openLight(lightSourceRespVO.getIp(), Integer.parseInt( lightSourceRespVO.getPort()),1, 0);
} else if (lightSourceRespVO.getType() == 3) {
lightController(lightSourceRespVO.getIp(),Integer.parseInt( lightSourceRespVO.getPort()), 0);
}
relay(lightSourceRespVO.getIp(), Integer.parseInt( lightSourceRespVO.getPort()), 0);
}else {
if (lightSourceRespVO.getType() == 1) {
JYDAMEquip equip = JYDamHelper.Connect(lightSourceRespVO.getIp(),Integer.parseInt( lightSourceRespVO.getPort()));
JYDamHelper.openDO(equip, 1);
} else if (lightSourceRespVO.getType() == 2) {
HikControlSocket.openLight(lightSourceRespVO.getIp(), Integer.parseInt( lightSourceRespVO.getPort()),1, 1);
} else if (lightSourceRespVO.getType() == 3) {
lightController(lightSourceRespVO.getIp(),Integer.parseInt( lightSourceRespVO.getPort()), 1);
}
relay(lightSourceRespVO.getIp(), Integer.parseInt( lightSourceRespVO.getPort()), 1);
}
}
public static void relay(String host, int port, int status) {
byte[] data;
byte[] data1;
if (status == 1) {
data = new byte[]{0x01, 0x05, 0x00, 0x01, (byte) 0xFF, 0x00, (byte) 0xDD, (byte) 0xFA};
data1 = new byte[]{0x01, 0x05, 0x00, 0x00, (byte) 0xFF, 0x00, (byte) 0x8C, (byte) 0x3A};
} else {
data = new byte[]{0x01, 0x05, 0x00, 0x01, (byte) 0x00, 0x00, (byte) 0x9C, (byte) 0x0A};
data1 = new byte[]{0x01, 0x05, 0x00, 0x00, (byte) 0x00, 0x00, (byte) 0xcd, (byte) 0xca};
}
try (Socket socket = new Socket(host, port);
DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream())) {
socket.setSoTimeout(1000);
// 发送数据
outputStream.write(data);
outputStream.flush();
outputStream.write(data1);
outputStream.flush();
System.out.println("Data sent successfully.");
} catch (IOException e) {
System.err.println("Error sending data: " + e.getMessage());
e.printStackTrace();
}
}
public static void lightController(String ip ,Integer port,Integer stat){
Socket socket = new Socket();
OutputStream os = null;

@ -35,6 +35,7 @@ public class KescFilter extends ChannelInitializer<SocketChannel> {
ph.addLast(new IdleStateHandler(0, 4, 0, TimeUnit.SECONDS));
ByteBuf byteBuf = Unpooled.copiedBuffer(">".getBytes());
ph.addLast(new KsecDecoder(10000,byteBuf,date));
ph.addLast(new KsecDecoder(10000,byteBuf,date));
ph.addLast(new KescEncoder(tcpClientLogService));
ph.addLast(new KescNettyHandler( date));
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.camera.framework.netty.ksec;
import cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo.TcpClientLogSaveReqVO;
import cn.iocoder.yudao.module.camera.framework.netty.NettyFilterDate;
import cn.iocoder.yudao.module.camera.service.plc.PLCService;
import com.alibaba.fastjson.JSONObject;
@ -10,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.InetSocketAddress;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@ -76,6 +78,17 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
String body = in.toString(StandardCharsets.UTF_8);
tcpLogger.info("接收数据:"+body);
log.info("接收数据:"+body);
InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress();
String remoteIp = remoteAddress.getAddress().getHostAddress();
int remotePort = remoteAddress.getPort();
TcpClientLogSaveReqVO tcpClientLogDO = new TcpClientLogSaveReqVO();
tcpClientLogDO.setTcpType("camera");
tcpClientLogDO.setPort(remotePort);
tcpClientLogDO.setIp(remoteIp);
tcpClientLogDO.setType(1);
tcpClientLogDO.setInfo(body);
nettyFilterDate.getTcpClientLogService().createTcpClientLog(tcpClientLogDO);
if (body.startsWith("<")){
// 去掉首尾标识符
body = body.substring(1, body.length());
@ -89,21 +102,21 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
}else if (Cmd.B.name().equals(ksecInfo.getType())) {
//心跳
// 玉溪只有c4和b2采用直接c4结束
// if (dataInfo.getCmdName().equals("B1")){
if (dataInfo.getCmdName().equals("B1")){
// plcService.orderStart(dataInfo);
// }else if(dataInfo.getCmdName().equals("B2")){
//
// plcService.orderStop(dataInfo);
// }
// log.debug("receieve heart ");
}else if(dataInfo.getCmdName().equals("B2")){
// plcService.orderStop(ksecInfo);
}
log.debug("receieve heart ");
}else if (Cmd.C.name().equals(ksecInfo.getType())) {
//动作
String code = dataInfo.getCmdName();
log.info("action code,{},orderInfo:{}", code, dataInfo.toString());
// 玉溪只有c4和b2采用直接c4结束
// plcService.action(dataInfo);
plcService.orderStop(ksecInfo);
plcService.action(dataInfo);
// plcService.orderStop(ksecInfo);
} else if (Cmd.D.name().equals(ksecInfo.getType())) {

@ -158,6 +158,7 @@ public class CheckIntellBlinkDecoder extends DelimiterBasedFrameDecoder {
log.info("Status Code: " + response.getStatusCode());
log.info("Response Body: " + response.getBody());
System.out.println("request json: " + jsonString+" response"+response.getBody());
// 创建 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();

@ -19,6 +19,7 @@ public class AlgorithmDelayTask implements Delayed {
private String cmdName;
private String trayCode = "NULL";
private String storageCode = "NULL";
private String path;
private long executeTime;

@ -1,10 +1,11 @@
package cn.iocoder.yudao.module.camera.service.lightsource;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.*;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.*;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourcePageReqVO;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
/**
* Service

@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.camera.service.lightsource;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourcePageReqVO;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.mysql.street.LightSourceMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.*;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.camera.dal.mysql.lightsource.LightSourceMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.LIGHT_SOURCE_NOT_EXISTS;

@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.camera.dal.dataobject.sensorgun.SensorGunDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.stock.StockDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.stocklog.StockLogDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
import cn.iocoder.yudao.module.camera.dal.entity.KescEntity;
import cn.iocoder.yudao.module.camera.dal.entity.ScanData;
import cn.iocoder.yudao.module.camera.dal.mysql.checklog.CheckLogMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.order.OrderMapper;
@ -23,7 +22,9 @@ import cn.iocoder.yudao.module.camera.service.camera.CameraService;
import cn.iocoder.yudao.module.camera.service.cameraio.CameraIoService;
import cn.iocoder.yudao.module.camera.service.checklog.CheckLogService;
import cn.iocoder.yudao.module.camera.service.resources.URLResourcesService;
import cn.iocoder.yudao.module.camera.service.scan.ScanGunScanServiceImpl;
import cn.iocoder.yudao.module.camera.service.scan.ScanServiceFactory;
import cn.iocoder.yudao.module.camera.service.sensorgun.SensorGunService;
import cn.iocoder.yudao.module.camera.service.stock.StockService;
import cn.iocoder.yudao.module.camera.service.street.StreetService;
import cn.iocoder.yudao.module.camera.service.threeInOneCode.ScanningGun;
@ -33,7 +34,6 @@ import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import cn.iocoder.yudao.module.system.service.sse.SseClient;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import de.danielbechler.util.Strings;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -163,52 +163,17 @@ public class PLCServiceImpl implements PLCService {
@Override
public void action(KsecDataInfo dataInfo) {
OrderDO order = orderMapper.selectOne(new LambdaQueryWrapper<OrderDO>()
.eq(OrderDO::getTaskId, dataInfo.getTaskId())
.orderByDesc(OrderDO::getCreateTime)
.last("limit 1"));
StreetDO street = streetService.getStreetByPlcId(dataInfo.getSRMNumber());
if (street == null) {
log.error("street not found ,plcId :{}", dataInfo.getSRMNumber());
return;
}
//OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, times, code);
//判断是否拍照
boolean needCapture = false;
String picCmd = dataInfo.getCmdName().substring(0, 2);
Integer direction = dataInfo.getFromDirection();
if (picCmd.equals("C4") || picCmd.equals("C3")) {
needCapture = true;
direction = dataInfo.getToDirection();
} else if (picCmd.equals("C1") || picCmd.equals("C2")) {
needCapture = true;
} else {
return;
}
KescEntity kescEntity = new KescEntity();
kescEntity.setData(dataInfo);
// 判断巷道有几个相机 如果只有一个,则调用一个,如果是两个,先判断是否有对拍设置决定那个相机拍摄
CameraDO camera = getCameraByLeftRight(street, direction);
// 调用预置点位
gyrateCameraByCode(camera, picCmd);
int time = Integer.parseInt(dictDataService.parseDictData("camera_conf", "delay_preset_time").getValue());
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
if (dataInfo.getCmdName().equals(dictDataService.parseDictData("base_conf", "order_start").getValue() )){
KsecInfo kescEntity = new KsecInfo();
kescEntity.setData(dataInfo);
orderStart(dataInfo);
}
if (needCapture) {
String pathSrc = PathUtil.createFileName(dataInfo, street, picCmd, ".jpg");
pathSrc = cameraCapture(camera, false, pathSrc, dictDataService.getDictDataList("camera_conf"));
order.setPics(Strings.hasText(order.getPics()) ? order.getPics() + ";" + pathSrc : pathSrc);
orderMapper.updateById(order);
if (dataInfo.getCmdName().equals(dictDataService.parseDictData("base_conf", "order_stop").getValue() )){
KsecInfo kescEntity = new KsecInfo();
kescEntity.setData(dataInfo);
orderStop(kescEntity);
}
//转向原点位
gyrateCameraByCode(camera, "C5");
}
@Resource
@ -478,11 +443,11 @@ public void checkYx(KsecDataInfo dataInfo){
String picPath = algorithmDelayTask.getSRMNumber() + "-" + algorithmDelayTask.getCmdName() + "-" + algorithmDelayTask.getDirection() + "-" + "up";
String pathSrc = street.getPlcIp() + ":9007/pic/" + dataInfo.getTaskId() + "_" + picPath + ".JPEG";
String pathSrc = "http://"+ dictDataService.parseDictData("base_conf", "local_path").getValue() + ":9007/pic"+street.getPlcId()+"/" + dataInfo.getTaskId() + "_" + picPath + ".JPEG";
urlResourcesService.save(URLResourcesDo.builder().url(pathSrc).uuid(uuid).type("1").little("拍照").build());
algorithmDelayTask.setPath(pathSrc);
getPhotoDelayExecutor.communicationFactory(algorithmDelayTask);
}
public static String capitalize(String str) {
if (str == null || str.isEmpty()) {
return str;
@ -543,7 +508,7 @@ public void checkYx(KsecDataInfo dataInfo){
.row(ksecDataInfo.getFromRow())
.column(ksecDataInfo.getFromColumn())
.status("0")
.checkPic("http://" + streetDO.getPlcIp() + ":9007/pic/" + ksecDataInfo.getTaskId() + "_" + cameraType + ".JPEG;")
.checkPic("http://" + streetDO.getPlcIp() + ":9007/pic"+streetDO.getPlcId()+"/" + ksecDataInfo.getTaskId() + "_" + cameraType + ".JPEG;")
.exportTime(LocalDateTime.now()).build();
stockService.save(stockDO);
} else {
@ -579,14 +544,14 @@ public void checkYx(KsecDataInfo dataInfo){
@Override
public void stockSave(AlgorithmDelayTask algorithmDelayTask) {
StockDO stockDO = stockService.getOne(new QueryWrapper<StockDO>().eq("task_Wms_Id", algorithmDelayTask.getTaskId()));
StockDO stockDO = stockService.getOne(new QueryWrapper<StockDO>().eq("task_Wms_Id", algorithmDelayTask.getTaskId()).last("limit 1"));
if (stockDO != null) {
stockDO.setCode(algorithmDelayTask.getStorageCode());
stockDO.setWmsCode(algorithmDelayTask.getStorageCode());
stockDO.setTrayCode(algorithmDelayTask.getTrayCode());
stockService.updateById(stockDO);
}
CheckLogDO checkLogDO = checkLogService.getOne(new QueryWrapper<CheckLogDO>().eq("task_Id", algorithmDelayTask.getTaskId()));
CheckLogDO checkLogDO = checkLogService.getOne(new QueryWrapper<CheckLogDO>().eq("task_Id", algorithmDelayTask.getTaskId()).last("limit 1"));
if (checkLogDO != null) {
checkLogDO.setTrayCode(algorithmDelayTask.getTrayCode());
@ -679,15 +644,19 @@ public void checkYx(KsecDataInfo dataInfo){
*
* @param
*/
@Resource
SensorGunService sensorService;
public void orderStop(KsecInfo kescEntity) {
String uuid = UUID.randomUUID().toString();
LocalDateTime endTime = LocalDateTime.now();
StreetDO street = streetService.getStreetByPlcId(kescEntity.getData().getSRMNumber());
if (street == null) {
return;
}
OrderDO order = orderMapper.selectOne(new QueryWrapper<OrderDO>().eq("task_id", kescEntity.getData().getTaskId()));
OrderDO order = orderMapper.selectOne(new QueryWrapper<OrderDO>().eq("task_id", kescEntity.getData().getTaskId()).last(" limit 1"));
if (order == null) {
log.error("订单结束信号订单不存在orderNum:{}", kescEntity.getData().getTaskId());
return;
@ -711,7 +680,17 @@ public void checkYx(KsecDataInfo dataInfo){
sensorGunCode = ScanningGun.readOCR(sensorGunDO.getIp(), sensorGunDO.getPort(), "start", time);
}
}
ScanData scanData = new ScanData();
SensorGunDO sensorGun = sensorService.getOne(new QueryWrapper<SensorGunDO>()
.eq("street_id", street.getId())
.eq("direction", kescEntity.getData().getToDirection()));
String trayCode = "";
if (sensorGun == null) {
log.error("no sensor gun config in database ,street id:{},direction:{}", street.getId(), kescEntity.getData().getToDirection());
} else {
trayCode = ScanGunScanServiceImpl.readOCR(sensorGun.getIp(), sensorGun.getPort());
}
scanData.setCode(trayCode);
//拍照i
//CheckIntellBlinkChanel.pictures(street.getPlcId(), kescEntity.getData().getTaskId(),cameraType,dictDataService.parseDictData("camera_position", cameraType).getValue());
@ -721,10 +700,13 @@ public void checkYx(KsecDataInfo dataInfo){
String picPath = algorithmDelayTask.getSRMNumber() + "-" + algorithmDelayTask.getCmdName() + "-" + algorithmDelayTask.getDirection() + "-" + "up";
KsecDataInfo ksecDataInfo = KsecDataInfo.toFrom(kescEntity.getData());
stockSave(ksecDataInfo, street, sensorGunCode);
String path = "http://" + dictDataService.parseDictData("base_conf", "local_path").getValue() + ":9007/pic"+street.getPlcId()+"/"+ kescEntity.getData().getTaskId() + "_" + picPath + ".JPEG";
algorithmDelayTask.setPath(path);
getPhotoDelayExecutor.communicationFactory(algorithmDelayTask);
urlResourcesService.save(URLResourcesDo.builder().url(path).uuid(uuid).type("1").little("球机拍照").build());
order.setPics(order.getPics() == null ? "" : order.getPics() + "http://" + street.getPlcIp() + ":9007/pic/" + kescEntity.getData().getTaskId() + "_" + picPath + ".JPEG;");
order.setPics(order.getPics() == null ? path : order.getPics() + path+ ";");
orderMapper.updateById(order);
}

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.camera.service.postConstruct;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.framework.light.LightFactory;
import cn.iocoder.yudao.module.camera.service.lightsource.LightSourceService;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class LightConstruct {
@Resource
LightSourceService lightSourceService;
@PostConstruct
public void nettyClientInit(){
List<LightSourceDO> list = lightSourceService.list();
for(LightSourceDO lightSourceDO : list){
LightFactory.LightController(lightSourceDO,1);
}
}
}

@ -24,15 +24,17 @@ public class ScanGunScanServiceImpl implements ScanService{
public static String readOCR(String ip,int port){
Socket socket = new Socket();
String code = "NoRead";
String code = "NULL";
OutputStream os = null;
InputStream is = null;
try {
socket.connect(new InetSocketAddress(ip,port),3000);
socket.connect(new InetSocketAddress(ip,port),10000);
socket.setSoTimeout(10000);
os = socket.getOutputStream();
is = socket.getInputStream();
int i = 0;
while ("NoRead".equals(code) && i <= 4){
long startTime = System.currentTimeMillis();
while ("NULL".equals(code) && startTime + 5* 1000L >= System.currentTimeMillis()){
writeCmd(os);
code = read(is);
log.info("count:{},ip:{},code:{}",i,ip,code);

@ -4,9 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetPageReqVO;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetRespVO;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.sensorgun.SensorGunDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;

@ -6,13 +6,13 @@ import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetPageReqVO
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetRespVO;
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetSaveReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.camera.CameraDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.lightsource.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.sensorgun.SensorGunDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
import cn.iocoder.yudao.module.camera.dal.mysql.lightsource.LightSourceMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.rfid.RfidMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.sensorgun.SensorGunMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.street.LightSourceMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.street.StreetMapper;
import cn.iocoder.yudao.module.camera.service.camera.CameraService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

Loading…
Cancel
Save