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