From 97aa2cd09e92f73cd4dff3d99eaef64e748c80b3 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 28 六月 2023 19:04:32 +0800
Subject: [PATCH] 优化出库小车避让

---
 src/main/java/com/zy/core/thread/ShuttleThread.java |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index d6b95ac..88b5ab8 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -729,6 +729,9 @@
 //            }
 //        }
 
+        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
+        LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+
         List<ShuttleCommand> commands = redisCommand.getAssignCommand().getCommands();
         //褰撳墠姝ュ簭
         int commandStep = redisCommand.getCommandStep();
@@ -744,6 +747,14 @@
                 if (command.getDistCodeNum().intValue() == shuttleProtocol.getCurrentCode().intValue()) {
                     //涓婁竴鏉℃寚浠ょ殑鐩爣浣嶇疆鍜屽綋鍓嶅皬杞︿綅缃浉鍚岋紝鍒欒瀹氫笂涓�鏉′换鍔″畬鎴�
                     command.setComplete(true);
+
+                    //涓婁竴鏉℃寚浠よ捣鐐规槸鎻愬崌鏈轰簩缁寸爜锛屽垯娓呴浂鎻愬崌鏈轰换鍔″彿
+                    if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()) {
+                        //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂�
+                        if (liftProtocol.isIdleNoTask()) {
+                            liftProtocol.setTaskNo((short) 0);//娓呯┖浠诲姟鍙�
+                        }
+                    }
                 }
             } else if (command.getCommandWord().intValue() == 2) {
                 //鎵樼洏椤跺崌鍛戒护
@@ -805,9 +816,6 @@
             }
         }
 
-        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
-        LiftProtocol liftProtocol = liftThread.getLiftProtocol();
-        
 
         //鍒ゆ柇灏忚溅褰撳墠浜岀淮鐮佹槸鍚︿负鎻愬崌鏈轰簩缁寸爜
         if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) {
@@ -844,6 +852,9 @@
                 if (!staProtocol.isLiftArrival()) {
                     return false;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse锛岀姝笅鍙戝懡浠�
                 }
+
+                //鏉′欢婊¤冻锛屽崰鐢ㄦ彁鍗囨満
+                liftProtocol.setTaskNo(wrkNo);
             }
         }
 
@@ -1046,6 +1057,7 @@
                 return true;
             }else {
                 if (liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) {
+                    liftProtocol.setTaskNo(wrkNo);//缁欐彁鍗囨満鍐欏伐浣滃彿锛岄槻姝㈣鍗犵敤
                     return true;//鎻愬崌鏈哄埌浣�
                 }
                 executeLift(liftThread, liftProtocol, redisCommand, shuttleLocNoLev);//璋冨害鎻愬崌鏈�

--
Gitblit v1.9.1