From 8f1fe9532d1020e2928ad75983dcd43cd0c8612f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 19 七月 2023 08:50:23 +0800
Subject: [PATCH] command write

---
 src/main/java/com/zy/core/thread/LiftThread.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 2208ecb..054e5bb 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -65,7 +65,7 @@
                 switch (step) {
                     // 璇绘暟鎹�
                     case 1:
-                        readStatus();
+                        read();
                         break;
                     // 鍐欏叆鏁版嵁
                     case 2:
@@ -109,6 +109,28 @@
     @Override
     public void close() {
         modbusTcpNet.ConnectClose();
+    }
+
+    private void read() {
+        try {
+            readStatus();
+
+            //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
+            if (liftProtocol.getRunning()) {
+                liftProtocol.setPakMk(true);
+            }
+
+            //鎻愬崌鏈哄浜庢湭杩愯銆佸氨缁�佹爣璁皌rue銆佹湁浠诲姟鍙�
+            if (!liftProtocol.getRunning()
+                    && liftProtocol.getPakMk()
+                    && liftProtocol.getTaskNo() != 0) {
+                //杩樻湁鏈畬鎴愮殑鍛戒护
+                executeWork(liftProtocol.getTaskNo());
+            }
+        } catch (Exception e) {
+            OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            initLift();
+        }
     }
 
     private void readStatus() {
@@ -174,19 +196,6 @@
                 liftProtocol.setLiftActualSpeed(modbusTcpNet.getByteTransform().TransInt16(content,16));
 
                 ///璇诲彇鎻愬崌鏈虹姸鎬�-end
-
-                //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
-                if (liftProtocol.getRunning()) {
-                    liftProtocol.setPakMk(true);
-                }
-
-                //鎻愬崌鏈哄浜庢湭杩愯銆佸氨缁�佹爣璁皌rue銆佹湁浠诲姟鍙�
-                if (!liftProtocol.getRunning()
-                        && liftProtocol.getPakMk()
-                        && liftProtocol.getTaskNo() != 0) {
-                    //杩樻湁鏈畬鎴愮殑鍛戒护
-                    executeWork(liftProtocol.getTaskNo());
-                }
 
                 //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
                 BasLiftService liftService = SpringUtils.getBean(BasLiftService.class);
@@ -256,6 +265,29 @@
         if (result != null && result.IsSuccess) {
             News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+
+            try {
+                Thread.sleep(1000);//鍛戒护涓嬪彂鍚庝紤鐪�
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+
+            for (int i = 0; i < 5; i++) {
+                readStatus();//閲嶆柊璇诲彇鐘舵��
+                if (liftProtocol.getRunning()) {
+                    break;
+                }
+
+                //鍒ゆ柇鏄惁杩愯涓紝濡備笉杩愯锛岄噸鏂颁笅鍙戝懡浠�
+                result = modbusTcpNet.Write("41088", array);
+                News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {},娆℃暟锛歿}", slave.getId(), JSON.toJSON(command), i);
+                OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2},娆℃暟锛歿}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command), i));
+                try {
+                    Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+            }
             return true;
         } else {
             OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));

--
Gitblit v1.9.1