From b579fe0be3bd02ec39d612a62b23901fb852c173 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 16 八月 2025 09:02:12 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 1dd59a3..f9ecce5 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -10,8 +10,10 @@
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasCrnOpt;
 import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.DeviceDataLog;
 import com.zy.asrs.service.BasCrnOptService;
 import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.DeviceDataLogService;
 import com.zy.common.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
@@ -25,6 +27,7 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
+import java.util.Base64;
 import java.util.Date;
 
 /**
@@ -205,6 +208,22 @@
                     }
                 }
 
+                if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 1000 * 5) {
+                    //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+                    //淇濆瓨鏁版嵁璁板綍
+                    DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+                    DeviceDataLog deviceDataLog = new DeviceDataLog();
+                    deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
+                    deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol));
+                    deviceDataLog.setType("crn");
+                    deviceDataLog.setDeviceNo(crnProtocol.getCrnNo());
+                    deviceDataLog.setCreateTime(new Date());
+                    deviceDataLogService.insert(deviceDataLog);
+
+                    //鏇存柊閲囬泦鏃堕棿
+                    crnProtocol.setDeviceDataLog(System.currentTimeMillis());
+                }
+
                 try {
                     // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                     BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
@@ -282,11 +301,18 @@
         OperateResult result = null;
         int idx = 0;
         do {
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 4);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
             if (resultRead.IsSuccess) {
                 if (command.getAckFinish() == 0) {
                     short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
-                    if(taskNo == 0) {
+                    short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
+                    short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
+                    short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
+                    short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
+                    short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
+                    short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
+                    short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16);
+                    if(taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
                         result = siemensNet.Write("DB100.0", array);
                     }else {
                         break;

--
Gitblit v1.9.1