From 996ecb891a2a33ddfffd8032ec7c784377470537 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 14 十月 2023 15:30:09 +0800
Subject: [PATCH] #小车增加提升机进出状态(给牛眼使用)

---
 src/main/java/com/zy/core/thread/LiftThread.java      |   32 ++++++++++++++++
 src/main/java/com/zy/core/thread/NyShuttleThread.java |   63 +++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 4a7d3c0..71a7099 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -32,6 +32,7 @@
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -87,6 +88,8 @@
                     case 3:
                         assignWork((LiftAssignCommand) task.getData());
                         break;
+                    case 4:
+                        write2((HashMap<String, Object>) task.getData());
                     default:
                         break;
                 }
@@ -418,6 +421,35 @@
         return true;
     }
 
+    //缁欐彁鍗囨満鍐欏叆杩涘嚭鐘舵��
+    private void write2(HashMap<String,Object> data) {
+//        //鍑�
+//        status = true;
+//        //杩�
+//        status = false;
+        int lev = Integer.parseInt(data.get("lev").toString());
+        boolean status = Boolean.parseBoolean(data.get("status").toString());
+
+        ArrayList<String> list = new ArrayList<String>(){{
+            add("83.8.0");
+            add("83.8.1");
+            add("83.8.2");
+            add("83.8.3");
+            add("83.8.4");
+            add("83.8.5");
+            add("83.8.6");
+            add("83.8.7");
+            add("83.9.0");
+            add("83.9.1");
+        }};
+        OperateResult result = siemensS7Net.Write("DB" + list.get(lev - 1), status);
+        if (result != null && result.IsSuccess) {
+            News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}]", slave.getId());
+        } else {
+            News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+        }
+    }
+
     /******************************************************************************************/
     /**************************************** 娴嬭瘯涓撶敤 *****************************************/
     /*****************************************************************************************/
diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index 9a8b6d1..9ad6f5a 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -35,6 +35,7 @@
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -385,6 +386,8 @@
         if (commands.size() == 0) {
             return false;
         }
+
+        checkIOSta(commands, commandStep);//妫�娴嬪皬杞︽槸鍚﹁繘鍑烘彁鍗囨満杈撻�佺珯
 
         NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo()));
 
@@ -803,4 +806,64 @@
         }
     }
 
+    //妫�娴嬪皬杞︽槸鍚﹁繘鍑烘彁鍗囨満杈撻�佺珯
+    public void checkIOSta(List<NyShuttleHttpCommand> commands, int commandStep) {
+        if (commandStep != 0) {
+            NyShuttleHttpCommand lastCommand = commands.get(commandStep - 1);//涓婁竴姝ュ懡浠�
+            if (lastCommand.getRequest().getBody().get("requestType").equals("move")) {
+                //妫�娴嬭捣鐐规槸鍚︿负鎻愬崌鏈鸿緭閫佺珯鐐�
+                NyShuttleProtocol.NyShuttlePointClass start = JSON.parseObject(lastCommand.getRequest().getBody().get("start").toString(), NyShuttleProtocol.NyShuttlePointClass.class);
+                int[] startPoint = NavigatePositionConvert.NyXyzToWCSXyz(start.getX(), start.getY(), start.getZ());
+                if (startPoint[0] == 13 && (startPoint[1] == 22 || startPoint[1] == 38 || startPoint[1] == 57)) {
+                    //杈撻�佺珯鐐逛綅缃�
+
+                    int liftNo;
+                    if (startPoint[1] == 22) {
+                        liftNo = 1;
+                    } else if (startPoint[1] == 38) {
+                        liftNo = 2;
+                    } else {
+                        liftNo = 3;
+                    }
+
+                    HashMap<String, Object> data = new HashMap<>();
+                    data.put("lev", startPoint[2]);
+                    data.put("status", false);//鍑鸿緭閫佺珯
+
+                    //涓嬪彂浠诲姟
+                    MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data));
+                }
+            }
+        }
+
+        if (commands.size() == commandStep) {
+            return;
+        }
+        NyShuttleHttpCommand command = commands.get(commandStep);//褰撳墠鍛戒护
+        if (command.getRequest().getBody().get("requestType").equals("move")) {
+            NyShuttleProtocol.NyShuttlePointClass target = JSON.parseObject(command.getRequest().getBody().get("target").toString(), NyShuttleProtocol.NyShuttlePointClass.class);
+            int[] targetPoint = NavigatePositionConvert.NyXyzToWCSXyz(target.getX(), target.getY(), target.getZ());
+            //妫�娴嬬洰鏍囦綅缃槸鍚︿负鎻愬崌鏈鸿緭閫佺珯鐐�
+            if (targetPoint[0] == 13 && (targetPoint[1] == 22 || targetPoint[1] == 38 || targetPoint[1] == 57)) {
+                //杈撻�佺珯鐐逛綅缃�
+
+                int liftNo;
+                if (targetPoint[1] == 22) {
+                    liftNo = 1;
+                } else if (targetPoint[1] == 38) {
+                    liftNo = 2;
+                } else {
+                    liftNo = 3;
+                }
+
+                HashMap<String, Object> data = new HashMap<>();
+                data.put("lev", targetPoint[2]);
+                data.put("status", true);//杩涜緭閫佺珯
+
+                //涓嬪彂浠诲姟
+                MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data));
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.1