From 0a857fe7ecfab78e085d1890014f664771fbe37d Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 26 十一月 2025 18:37:58 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/core/thread/RgvThread.java |  151 ++++++++++++++++++++++++++++----------------------
 1 files changed, 85 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 0fc5c79..23aa0a2 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -9,8 +9,10 @@
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasRgv;
 import com.zy.asrs.entity.BasRgvOpt;
+import com.zy.asrs.entity.DeviceDataLog;
 import com.zy.asrs.service.BasRgvOptService;
 import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.service.DeviceDataLogService;
 import com.zy.common.utils.News;
 import com.zy.core.RgvThread2;
 import com.zy.core.cache.MessageQueue;
@@ -26,6 +28,7 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
+import java.util.Base64;
 import java.util.Date;
 
 /**
@@ -141,72 +144,88 @@
      * 璇诲彇鐘舵��
      */
     private void readStatus(){
-        try {
-            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
-            if (result.IsSuccess) {
-                if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) {
-                    rgvProtocol = new RgvProtocol();
-                    rgvProtocol.setRgvNo(slave.getId());
-                }
-                rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
-                rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 2));
-                rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 4));
-                rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6));
-                rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8));
-                rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
-                rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-                rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14));
-//                rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
-                rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-//                rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-                rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 22));
-//                rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-                rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-//                rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28));
-//                rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30));
-//                rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32));
-//                rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
-//                rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
-//                rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
-
-                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
-
-                // 宸ヤ綅1澶嶄綅淇″彿
-                if (rgvProtocol.getStatusType1().equals(RgvStatusType.WAITING)
-                        || rgvProtocol.getStatusType1().equals(RgvStatusType.FETCHWAITING)) {
-                    if (resetFlag1) {
-                        RgvCommand rgvCommand = new RgvCommand();
-                        rgvCommand.setAckFinish1((short)1);
-                        if (write(rgvCommand)) {
-                            resetFlag1 = false;
-                        }
-                    }
-                }
-
-                try {
-                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-                    BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);
-                    BasRgv basRgv = new BasRgv();
-                    basRgv.setRgvNo(slave.getId());
-                    basRgv.setRgvSts((int)rgvProtocol.getMode());
-                    if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){
-                        log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-                    }
-                } catch (Exception ignore){
-                    System.out.println(ignore);
-                }
-
-            } else {
-                initRgv();
-                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-//                log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-//            log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            initRgv();
-        }
+//        try {
+//            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
+//            if (result.IsSuccess) {
+//                if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) {
+//                    rgvProtocol = new RgvProtocol();
+//                    rgvProtocol.setRgvNo(slave.getId());
+//                }
+//                rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
+//                rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 2));
+//                rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 4));
+//                rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6));
+//                rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8));
+//                rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+//                rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
+//                rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+////                rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
+//                rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+////                rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+//                rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 22));
+////                rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
+//                rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26));
+////                rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+////                rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30));
+////                rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32));
+////                rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+////                rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
+////                rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
+//
+//                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
+//
+//                // 宸ヤ綅1澶嶄綅淇″彿
+//                if (rgvProtocol.getStatusType1().equals(RgvStatusType.WAITING)
+//                        || rgvProtocol.getStatusType1().equals(RgvStatusType.FETCHWAITING)) {
+//                    if (resetFlag1) {
+//                        RgvCommand rgvCommand = new RgvCommand();
+//                        rgvCommand.setAckFinish1((short)1);
+//                        if (write(rgvCommand)) {
+//                            resetFlag1 = false;
+//                        }
+//                    }
+//                }
+//
+//                if (System.currentTimeMillis() - rgvProtocol.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(rgvProtocol));
+//                    deviceDataLog.setType("rgv");
+//                    deviceDataLog.setDeviceNo(rgvProtocol.getRgvNo());
+//                    deviceDataLog.setCreateTime(new Date());
+//                    deviceDataLogService.insert(deviceDataLog);
+//
+//                    //鏇存柊閲囬泦鏃堕棿
+//                    rgvProtocol.setDeviceDataLog(System.currentTimeMillis());
+//                }
+//
+//                try {
+//                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+//                    BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);
+//                    BasRgv basRgv = new BasRgv();
+//                    basRgv.setRgvNo(slave.getId());
+//                    basRgv.setRgvSts((int)rgvProtocol.getMode());
+//                    if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){
+//                        log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+//                    }
+//                } catch (Exception ignore){
+//                    System.out.println(ignore);
+//                }
+//
+//            } else {
+//                initRgv();
+//                OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+////                log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+////            log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//            initRgv();
+//        }
     }
 
     /**

--
Gitblit v1.9.1