From 62ed44f8c15a0d2ce8aff83129f23c1656ee9968 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期三, 03 七月 2024 19:27:04 +0800
Subject: [PATCH] 解决设备断电报错写日志把磁盘写满问题

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |  332 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 201 insertions(+), 131 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index a410ab6..18aabff 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -89,12 +89,12 @@
                         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
                         command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
                         command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
-                        command.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
-                        command.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
-                        command.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
-                        command.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-                        command.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-                        command.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+                        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+                        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+                        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+                        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+                        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+                        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
                         write(command);
                         break;
                     default:
@@ -117,14 +117,14 @@
         }
         crnProtocol.setMode((short) -1);
 //        crnProtocol.setTaskNo((short)0);
-        crnProtocol.setStatus((short)-1);
-        crnProtocol.setBay((short)0);
-        crnProtocol.setLevel((short)0);
+        crnProtocol.setStatus((short) -1);
+        crnProtocol.setBay((short) 0);
+        crnProtocol.setLevel((short) 0);
         crnProtocol.setForkPos((short) -1);
         crnProtocol.setLiftPos((short) -1);
-        crnProtocol.setWalkPos((short)0);
-        crnProtocol.setLoaded((short)0);
-        crnProtocol.setAlarm((short)0);
+        crnProtocol.setWalkPos((short) 0);
+        crnProtocol.setLoaded((short) 0);
+        crnProtocol.setAlarm((short) 0);
         crnProtocol.setxSpeed((short) 0);
         crnProtocol.setySpeed((short) 0);
         crnProtocol.setzSpeed((short) 0);
@@ -141,13 +141,13 @@
         siemensNet.setRack(slave.getRack().byteValue());
         siemensNet.setSlot(slave.getSlot().byteValue());
         OperateResult connect = siemensNet.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
-            OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満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()));
-            News.info("SiemensCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満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()));
+            News.info("SiemensCrn" + " - 1" + " - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満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()));
-            News.error("SiemensCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            News.error("SiemensCrn" + " - 2" + " - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             initCrn();
         }
 //        siemensNet.ConnectClose();
@@ -157,7 +157,7 @@
     /**
      * 璇诲彇鐘舵��
      */
-    private void readStatus(){
+    private void readStatus() {
         try {
             OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 54);
             if (result.IsSuccess) {
@@ -175,79 +175,48 @@
                 crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
                 crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
                 crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-
                 crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
                 crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
                 crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
-//                crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34));
-//                crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
-//                crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38));
-
                 crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
                 crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
                 crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
-//                crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
-//                crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 42));
-//                crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 44));
                 crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
-
-
-//                crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-//                crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
-//                crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-//                crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-
-
-
-                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
-                // 澶嶄綅淇″彿
-//                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-//                    if (resetFlag) {
-//                        if(crnProtocol.getTaskNo()==9999){
-//                            backHpFlag = false;
-//                        }
-//                        CrnCommand crnCommand = new CrnCommand();
-//                        crnCommand.setAckFinish((short)1);
-//                        if (write(crnCommand)) {
-//                            resetFlag = false;
-//                        }
-//                    }
-//                }
-
-                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-//                    News.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
-//                            slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
-                    if (resetFlag) {
-                        CrnCommand crnCommand = new CrnCommand();
-                        crnCommand.setAckFinish((short)1);
-                        if (write(crnCommand)) {
-                            resetFlag = false;
-//                            cmdFlag = true;
-                        }
-                    }
-                }
-
-                try {
-                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-                    BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
-                    BasCrnp basCrnp = new BasCrnp();
-                    basCrnp.setCrnNo(slave.getId());
-                    basCrnp.setCrnSts((int)crnProtocol.getMode());
-                    if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
-                        News.error("SiemensCrn"+" - 3"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-                    }
-                } catch (Exception ignore){}
-
             } else {
                 initCrn();
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満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()));
-                News.error("SiemensCrn"+" - 4"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+//                News.error("SiemensCrn" + " - 4" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
+            // 澶嶄綅淇″彿
+            if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && resetFlag) {
+                News.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+                        slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
+                CrnCommand crnCommand = new CrnCommand();
+                crnCommand.setAckFinish((short) 1);
+                if (write(crnCommand)) {
+                    resetFlag = false;
+                }
+            }
+
+
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
+
+            try {
+                // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+                BasCrnp basCrnp = new BasCrnp();
+                basCrnp.setCrnNo(slave.getId());
+                basCrnp.setCrnSts((int) crnProtocol.getMode());
+                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))) {
+                    News.error("SiemensCrn" + " - 3" + " - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                }
+            } catch (Exception ignore) {
+            }
+
         } catch (Exception e) {
             e.printStackTrace();
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            News.error("SiemensCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//            News.error("SiemensCrn" + " - 5" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             initCrn();
         }
     }
@@ -266,43 +235,142 @@
      */
     private boolean write(CrnCommand command) throws InterruptedException {
         if (null == command) {
-            News.error("SiemensCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            News.error("SiemensCrn" + " - 6" + " - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
-        OperateResult result;
-//        convertRow(command);
-        if (command.getAckFinish() == 1) {
-            result = siemensNet.Write("DB100.0", (short) 1);
-//            result = siemensNet.Write("DB100.18", 0);
-        } else {
-            command.setCrnNo(slave.getId());
-            short[] array = new short[10];
-            array[0] = command.getAckFinish();
-            array[1] = command.getTaskNo();
-            array[2] = command.getTaskMode();
-            array[3] = command.getSourcePosX();
-            array[4] = command.getSourcePosY();
-            array[5] = command.getSourcePosZ();
-            array[6] = command.getDestinationPosX();
-            array[7] = command.getDestinationPosY();
-            array[8] = command.getDestinationPosZ();
-//        array[9] = command.getSourceStaNo();
-//        array[10] = command.getDestinationStaNo();
-            array[9] = command.getCommand();
-            result = siemensNet.Write("DB100.0", array);
+        OperateResult result = null;
+        // 鍐�3鍙峰爢鍨涙満
+        if (slave.getId() == 3) {
+            // 鍐欎换鍔″畬鎴愮‘璁�
+            if (command.getAckFinish() == 1) {
+                result = siemensNet.Write("DB100.0", (short) 1);
+            } else {
+                command.setCrnNo(slave.getId());
+                short[] array = new short[10];
+                array[0] = command.getAckFinish();
+                array[1] = command.getTaskNo();
+                array[2] = command.getTaskMode();
+                array[3] = command.getSourcePosX();
+                array[4] = command.getSourcePosY();
+                array[5] = command.getSourcePosZ();
+                array[6] = command.getDestinationPosX();
+                array[7] = command.getDestinationPosY();
+                array[8] = command.getDestinationPosZ();
+                array[9] = command.getCommand();
+                result = siemensNet.Write("DB100.0", array);
 
-//            if (command.getAckFinish() == 0) {
-//                short commandFinish = 1;
-//                Thread.sleep(100L);
-//                result = siemensNet.Write("DB100.18", commandFinish);
-//            }
+                //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+                Thread.sleep(200);
+                try{
+                    OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+                    if (resultRead.IsSuccess) {
+                        CrnCommand one = new CrnCommand();
+                        one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                        one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                        one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                        one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                        one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                        one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                        one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                        one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+                        if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                                || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+                                || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+                                || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+                        ){
+                            try{
+                                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                            }catch (Exception e){
+                                try{
+                                    News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
+                                }catch (Exception e1){
+                                    News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                                }
+                            }
+                            if(!resetFlag){
+                                News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪2 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                                MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
+                            }
+                            Thread.sleep(100);
+                            readStatus();
+                            return false;
+                        } else {
+//                            News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                        }
+                    }
+                }catch (Exception e){
+                    News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+                }
+            }
+        } else {
+            // 鍐欎换鍔″畬鎴愮‘璁�
+            if (command.getAckFinish() == 1) {
+                result = siemensNet.Write("DB100.0", (short) 1);
+            } else {
+                command.setCrnNo(slave.getId());
+                short[] array = new short[10];
+                array[0] = command.getAckFinish();
+                array[1] = command.getTaskNo();
+                array[2] = command.getTaskMode();
+                array[3] = command.getSourcePosX();
+                array[4] = command.getSourcePosY();
+                array[5] = command.getSourcePosZ();
+                array[6] = command.getDestinationPosX();
+                array[7] = command.getDestinationPosY();
+                array[8] = command.getDestinationPosZ();
+                array[9] = command.getCommand();
+                result = siemensNet.Write("DB100.0", array);
+                log.info(JSON.toJSONString(array));
+
+                //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+                Thread.sleep(200);
+                try{
+                    OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+                    if (resultRead.IsSuccess) {
+                        CrnCommand one = new CrnCommand();
+                        one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                        one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                        one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                        one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                        one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                        one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                        one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                        one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+                        if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                                || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+                                || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+                                || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+                        ){
+                            try{
+                                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                            }catch (Exception e){
+                                try{
+                                    News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
+                                }catch (Exception e1){
+                                    News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                                }
+                            }
+                            if(!resetFlag){
+                                News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪2 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                                MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
+                            }
+                            Thread.sleep(100);
+                            readStatus();
+                            return false;
+                        } else {
+                            News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                        }
+                    }
+                }catch (Exception e){
+                    News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+                }
+            }
         }
 
         try {
             // 鏃ュ織璁板綍
             BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
-            BasCrnOpt basCrnOpt = new BasCrnOpt(
-                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+            BasCrnOpt basCrnOpt = new BasCrnOpt(command.getTaskNo().intValue(),    // 浠诲姟鍙�
                     command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
                     new Date(),    // 涓嬪彂鏃堕棿
                     command.getTaskModeType().toString(),    // 妯″紡
@@ -319,17 +387,18 @@
                     null    // 淇敼浜哄憳
             );
             bean.insert(basCrnOpt);
-        } catch (Exception ignore) {}
+        } catch (Exception ignore) {
+        }
 
         if (result != null && result.IsSuccess) {
             Thread.sleep(200);
             this.readStatus();
-            News.info("SiemensCrn"+" - 7"+" - 鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            News.info("SiemensCrn" + " - 7" + " - 鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
             return true;
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            News.error("SiemensCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            News.error("SiemensCrn" + " - 8" + " - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             return false;
         }
     }
@@ -345,8 +414,8 @@
     /*****************************************************************************************/
     public static void main(String[] args) throws InterruptedException {
         CrnSlave slave = new CrnSlave();
-        slave.setId(1);
-        slave.setIp("10.10.10.10");
+        slave.setId(2);
+        slave.setIp("10.10.10.20");
         slave.setPort(0);
         slave.setRack(0);
         slave.setSlot(0);
@@ -357,19 +426,19 @@
         Thread.sleep(3000L);
 
         // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
-//        CrnCommand command = new CrnCommand();
-////        command.setCrnNo(3); // 鍫嗗灈鏈虹紪鍙�
-//        command.setTaskNo((short) 2); // 宸ヤ綔鍙�
-//        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-//        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
-//        command.setSourcePosX((short) 6);     // 婧愬簱浣嶆帓
-//        command.setSourcePosY((short) 2);     // 婧愬簱浣嶅垪
-//        command.setSourcePosZ((short) 2);     // 婧愬簱浣嶅眰
-//        command.setDestinationPosX((short) 6);     // 鐩爣搴撲綅鎺�
-//        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-//        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
-//        command.setCommand((short)1);
-//        crnThread.write(command);
+        CrnCommand command = new CrnCommand();
+//        command.setCrnNo(3); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 4676); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 5);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 4);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 2);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+        command.setCommand((short) 1);
+        crnThread.write(command);
 
         // 2.鍑哄簱 婧愬拰鐩爣閮藉彂
 //        CrnCommand command = new CrnCommand();
@@ -386,18 +455,19 @@
 //        crnThread.write(command);
 
 
-//        // 3.搴撲綅绉昏浆   婧愬拰鐩爣閮藉彂 pass
+        // 3.搴撲綅绉昏浆   婧愬拰鐩爣閮藉彂 pass
 //        CrnCommand command = new CrnCommand();
-//        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-//        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+//        command.setTaskNo((short) 3); // 宸ヤ綔鍙�
 //        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
 //        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-//        command.setSourcePosX((short)2);     // 婧愬簱浣嶆帓
+//        command.setSourcePosX((short)4);     // 婧愬簱浣嶆帓
 //        command.setSourcePosY((short)2);     // 婧愬簱浣嶅垪
-//        command.setSourcePosZ((short)3);     // 婧愬簱浣嶅眰
-//        command.setDestinationPosX((short)2);     // 鐩爣搴撲綅鎺�
-//        command.setDestinationPosY((short)4);     // 鐩爣搴撲綅鍒�
-//        command.setDestinationPosZ((short)4);     // 鐩爣搴撲綅灞�
+//        command.setSourcePosZ((short)10);     // 婧愬簱浣嶅眰
+//        command.setDestinationPosX((short)4);     // 鐩爣搴撲綅鎺�
+//        command.setDestinationPosY((short)1);     // 鐩爣搴撲綅鍒�
+//        command.setDestinationPosZ((short)9);     // 鐩爣搴撲綅灞�
+//        command.setCommand((short)1);
 //        crnThread.write(command);
 
         // 4.绔欎綅绉昏浆   婧愬拰鐩爣閮藉彂

--
Gitblit v1.9.1