From c2c26a11ab68ffda8587bebfb789bfc8fe6c034f Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 05 六月 2024 15:24:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 3990184..ca18898 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -38,6 +38,7 @@
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
+    private boolean resetFlagTwo = false;
 
     public Long sign = System.currentTimeMillis();
 
@@ -204,12 +205,16 @@
                 crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
 
 
-                //宸ヤ綅2鏁版嵁  鏃犲垯鏃犻渶渚嬩細
-                crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
-                crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
-                crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58));
-                crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60));
-                crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64));
+                //宸ヤ綅2鏁版嵁  鏃犲垯鏃犻渶鐞嗕細
+                try{
+                    crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                    crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                    crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58));
+                    crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60));
+                    crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64));
+                }catch (Exception e){
+
+                }
 
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
@@ -224,6 +229,16 @@
                         CrnCommand crnCommand = new CrnCommand();
                         crnCommand.setAckFinish((short)1);
                         if (write(crnCommand)) {
+                            resetFlag = false;
+                        }
+                    }
+                    if (resetFlagTwo) {
+                        if(crnProtocol.getTaskNo()==9999){
+                            backHpFlag = false;
+                        }
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short)1);
+                        if (write5(crnCommand)) {
                             resetFlag = false;
                         }
                     }
@@ -285,12 +300,29 @@
 //        array[9] = command.getSourceStaNo();
 //        array[10] = command.getDestinationStaNo();
         array[9] = command.getCommand();
+        OperateResult result18 = siemensNet.Write("DB100.18", (short)0);
         OperateResult result = siemensNet.Write("DB100.0", array);
 
         if (command.getAckFinish() == 0) {
             short commandFinish = 1;
             Thread.sleep(100L);
             result = siemensNet.Write("DB100.18", commandFinish);
+            int signFinish = 1;
+            while (signFinish<5){
+                OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
+                short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
+                if (transInt16 != commandFinish){
+                    log.info("涓嬪彂DB100.18  鍥炶澶辫触" + "commandFinish:"+commandFinish);
+                    log.info("涓嬪彂DB100.18  鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
+                    result = siemensNet.Write("DB100.18", commandFinish);
+                    signFinish++;
+                }else {
+                    log.info("涓嬪彂DB100.18" + "commandFinish:"+commandFinish);
+                    log.info("涓嬪彂DB100.18" + "array:"+ JSON.toJSONString(array));
+                    break;
+                }
+
+            }
         }
 
         try {

--
Gitblit v1.9.1