diff --git a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java index 4a68610..f670060 100644 --- a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java +++ b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java @@ -127,5 +127,6 @@ public class ConfigProperties { private Integer goods; private int [] goodsCodeTypes; private int [] trayCodeTypes; + private int sickScanTime = 50000; } } 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 0656a9a..28e4c75 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -675,7 +675,7 @@ public class PlcService { trayCheck = Boolean.FALSE; log.error("no sensor gun config in database ,street id:{},direction:{}", street.getId(), plcCmdInfo.getLeftRight1()); } else { - trayCode = SickSocket.readOCR(sensorGun.getIp(), sensorGun.getPort()); + trayCode = SickSocket.readOCR(sensorGun.getIp(), sensorGun.getPort(),configProperties.getScanCodeMode().getSickScanTime()); log.info("sensor tray code:{}", trayCode); if ("".equals(wmsTrayCode)) { //托盘码为空,无货物 diff --git a/web/src/main/java/com/zhehekeji/web/service/sick/SickSocket.java b/web/src/main/java/com/zhehekeji/web/service/sick/SickSocket.java index 04f63e6..fa8a907 100644 --- a/web/src/main/java/com/zhehekeji/web/service/sick/SickSocket.java +++ b/web/src/main/java/com/zhehekeji/web/service/sick/SickSocket.java @@ -10,6 +10,8 @@ import java.net.Socket; import java.net.SocketTimeoutException; import java.nio.charset.StandardCharsets; +import static java.lang.Thread.sleep; + /** * sick扫码枪 */ @@ -19,7 +21,7 @@ public class SickSocket { private static final Logger tcpLogger = LoggerFactory.getLogger("sick"); public static void main(String[] args) { - String code = readOCR("192.168.5.10", 2002); + String code = readOCR("127.0.0.1", 3000,30000); System.out.println(code); } @@ -30,7 +32,7 @@ public class SickSocket { * @param port 目标服务器的端口号 * @return OCR的结果 */ - public static String readOCR(String ip, int port) { + public static String readOCR(String ip, int port,int timeout) { // 创建Socket对象 Socket socket = new Socket(); // 定义变量code,并赋值为"NoRead" @@ -42,8 +44,8 @@ public class SickSocket { try { // 连接服务器,指定服务器的IP地址和端口号,并设置连接超时时间为3000毫秒 - socket.connect(new InetSocketAddress(ip, port), 3000); - socket.setSoTimeout(3000); + socket.connect(new InetSocketAddress(ip, port), timeout); + socket.setSoTimeout(timeout); // 获取socket的输出流对象 os = socket.getOutputStream(); // 获取socket的输入流对象 @@ -51,7 +53,8 @@ public class SickSocket { // 定义变量i,并赋值为0 int i = 0; // 当code等于"NoRead"且i小于等于4且socket未关闭时,执行以下循环 - while ("NoRead".equals(code) && i <= 4 && !socket.isClosed()) { + while ("NoRead".equals(code) && !socket.isClosed()) { + sleep(300); // 调用writeCmd方法,将数据写入socket的输出流 writeCmd(os); // 从socket的输入流中读取数据,并赋值给code diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 3ca3f27..cae7d1c 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -85,6 +85,8 @@ scanCodeMode: - 14 trayCodeTypes: - 14 + #扫码枪连续扫描时间,默认5s 单位ms + sickScanTime: 5000 # 照片 視頻保存多久 deleteFileDays: 365