From 9f687cf8a3218cf7dcda92d641703c46ae2c93c6 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期三, 08 六月 2022 17:43:40 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/MelsecCrnThread.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 9c8ca3b..3df19a6 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -161,6 +161,7 @@
             if (result.IsSuccess) {
                 if (null == crnProtocol) {
                     crnProtocol = new CrnProtocol();
+                    crnProtocol.setCrnNo(slave.getId());
                 }
                 crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
                 crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
@@ -198,12 +199,12 @@
                     }
                 }
 
-
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
                 BasCrnp basCrnp = new BasCrnp();
                 basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue());
                 basCrnp.setCrnNo(slave.getId());
+                basCrnp.setCrnSts((int)crnProtocol.getMode());
                 if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
                     log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                 }
@@ -229,6 +230,55 @@
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
+
+//        OperateResult result = null;
+//        try{
+//            Integer exeCount=0;
+//            do{
+//                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 = melsecMcNet.Write("D0", array);
+//                if(result.IsSuccess) {
+//                    if (command.getAckFinish() == 0) {
+//                        short commandFinish = 1;
+//                        result = melsecMcNet.Write("D9", commandFinish);
+//                        if(result.IsSuccess){
+//                            //鍐欎换鍔$‘璁よ繑鍥炴垚鍔熷悗锛屾煡璇㈢‘璁や竴娆�
+//                            Thread.sleep(200);
+//                            OperateResultExOne<byte[]> result1 = melsecMcNet.Read("D9", (short)2);
+//                            if(result1.IsSuccess){
+//                                short commandVal = melsecMcNet.getByteTransform().TransInt16(result1.Content,2);
+//                                if(commandVal==1){
+//                                    break;
+//                                } else {
+//                                    exeCount++;
+//                                }
+//                            } else{
+//                                exeCount++;
+//                            }
+//                        }else{
+//                            exeCount++;
+//                        }
+//                    }
+//                }else{
+//                    exeCount++;
+//                }
+//                Thread.sleep(200);
+//            }while(exeCount>3);
+//        }catch (Exception e){
+//
+//        }
+
         command.setCrnNo(slave.getId());
         short[] array = new short[10];
         array[0] = command.getAckFinish();
@@ -271,7 +321,7 @@
             bean.insert(basCrnOpt);
         } catch (Exception ignore) {}
 
-        if (result.IsSuccess) {
+        if (result != null && result.IsSuccess) {
             log.info("鍫嗗灈鏈哄懡浠や笅鍙慬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;

--
Gitblit v1.9.1