From 928bc386bea03b9d3157e6d66dcb7afc843e9964 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 17 六月 2023 15:55:50 +0800
Subject: [PATCH] 小车从提升机移动出去增强管控

---
 src/main/java/com/zy/core/thread/ShuttleThread.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 25a2ef2..77dfe69 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -525,8 +525,8 @@
                     //濡傛灉绌挎杞﹀湪鎻愬崌鏈哄唴锛岀Щ鍔ㄦ椂闇�瑕佸厛涓嬪彂鍑烘彁鍗囨満鍛戒护
                     if (liftProtocol.getBarcode().intValue() == shuttleProtocol.getCurrentCode().intValue()) {
                         //绌挎杞﹀嚭鎻愬崌鏈�
-                        Short liftLev = liftProtocol.getPositionArrivalFeedback();//鎻愬崌鏈轰綅缃�
-                        String liftSiteLocNo = Utils.levToOutInStaLocNo(liftLev.intValue());
+                        Short liftArrival = liftProtocol.getPositionArrivalFeedback();//鎻愬崌鏈轰綅缃弽棣�
+                        String liftSiteLocNo = Utils.liftArrivalToOutInStaLocNo(liftArrival);
                         LocMast locMast1 = locMastService.selectById(liftSiteLocNo);
                         ShuttleCommand moveCommand = getMoveCommand(liftProtocol.getBarcode(), Short.parseShort(locMast1.getQrCodeValue()), 1400, ShuttleRunDirection.BOTTOM.id, liftProtocol.getBarcode(), 1400, runSpeed);
                         commands.add(moveCommand);
@@ -745,6 +745,42 @@
 
         LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
         LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+        
+
+        //鍒ゆ柇灏忚溅褰撳墠浜岀淮鐮佹槸鍚︿负鎻愬崌鏈轰簩缁寸爜
+        if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) {
+            //灏忚溅褰撳墠鍛戒护璧峰浣嶇疆灏辨槸鎻愬崌鏈轰簩缁寸爜锛岃鏄庡皬杞﹂渶瑕佸悜鎻愬崌鏈哄绉诲姩锛屽垯闇�瑕佸垽鏂姸鎬佹槸鍚︽弧瓒�
+            if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()){
+                //鎻愬崌鏈烘槸鍚︾┖闂诧紝鎻愬崌鏈烘槸鍚﹀埌杈剧洰鏍囨ゼ灞傦紝鐩爣妤煎眰鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙蜂綅
+                if (!liftProtocol.isIdle()) {
+                    return false;//鎻愬崌鏈哄繖锛岀姝笅鍙戝懡浠�
+                }
+
+                Short distCodeNum = command.getDistCodeNum();//鐩爣浜岀淮鐮�
+                BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+                BasDevp basDevp = basDevpService.queryByQrCode(distCodeNum.intValue());//鐩爣绔欑偣
+                if (basDevp == null) {
+                    return false;//鎵句笉鍒扮洰鏍囩珯锛岀姝笅鍙戝懡浠�
+                }
+
+                int lev = Utils.getLev(basDevp.getLocNo());//鐩爣浜岀淮鐮佹墍鍦ㄦゼ灞�
+                int liftLev = liftProtocol.getLev().intValue();//鎻愬崌鏈烘墍鍦ㄦゼ灞�
+                if (liftLev != lev) {
+                    return false;//鎻愬崌鏈轰笉鍦ㄧ洰鏍囨ゼ灞傦紝绂佹涓嬪彂鍛戒护
+                }
+
+                //鑾峰彇鐩爣绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+                if (staProtocol == null) {
+                    return false;//绔欑偣淇℃伅涓嶅瓨鍦紝绂佹涓嬪彂鍛戒护
+                }
+                if (!staProtocol.isLiftArrival()) {
+                    return false;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse锛岀姝笅鍙戝懡浠�
+                }
+            }
+        }
+
 
         //涓嬪彂鍛戒护
         if (!write(command)) {
@@ -752,6 +788,12 @@
             return false;
         } else {
             News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙戞垚鍔燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
+
+            try {
+                Thread.sleep(1000);//鍛戒护涓嬪彂瀹屽悗浼戠湢1s
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
 
             //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚
             if (commandStep < size - 1) {
@@ -906,7 +948,7 @@
         String shuttleLocNo = shuttleProtocol.getCurrentLocNo();//浜岀淮鐮佸搴斿簱浣嶅彿
         Integer shuttleLocNoLev = shuttleLocNo == null ? 0 : Utils.getLev(shuttleLocNo);//搴撲綅鍙峰搴斿眰楂�
 
-        //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀湪鐩爣妤煎眰
+        //鍒ゆ柇绌挎杞﹀拰鎻愬崌鏈烘槸鍚﹀湪鐩爣妤煎眰
         if (shuttleLocNoLev >= 2) {
             shuttleLocNoLev++;
         }
@@ -916,7 +958,7 @@
             SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
             StaProtocol staProtocol = siemensDevpThread.getStation().get(siteNo);
             if (staProtocol.isLiftArrival()
-                && liftProtocol.getPositionArrivalFeedback().intValue() == shuttleLocNoLev) {
+                && liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) {
                 //杈撻�佺嚎鍙嶉鎻愬崌鏈哄埌浣嶄笖鎻愬崌鏈烘ゼ灞傚弽棣堜负鍚屼竴灞傦紝鐩存帴鏀捐
                 return true;
             }

--
Gitblit v1.9.1