From fed17b9162273d70043f7d5e9061bc7afd17c6ef Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 27 七月 2023 16:36:19 +0800
Subject: [PATCH] 地图显示

---
 src/main/java/com/zy/core/thread/ShuttleThread.java |  136 +++++++++++++++++++++++----------------------
 1 files changed, 70 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 5a9cec5..8a43bc3 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -190,61 +190,61 @@
                     shuttleProtocol.setPakMk(true);
                 }
 
-                //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴�
-                BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
-                BasShuttle basShuttle = shuttleService.selectById(slave.getId());
-                if (basShuttle == null) {
-                    basShuttle = new BasShuttle();
-                    //鍥涘悜绌挎杞﹀彿
-                    basShuttle.setShuttleNo(slave.getId());
-                    shuttleService.insert(basShuttle);
-                }
-                //灏忚溅蹇欑姸鎬佷綅
-                basShuttle.setBusyStatus(shuttleProtocol.getBusyStatus().intValue());
-                //褰撳墠浜岀淮鐮�
-                basShuttle.setCurrentCode(shuttleProtocol.getCurrentCode().intValue());
-                //鐢垫睜鐢甸噺鐧惧垎姣�
-                basShuttle.setBatteryPower(shuttleProtocol.getBatteryPower().intValue());
-                //鐢垫睜娓╁害
-                basShuttle.setBatteryTemp(shuttleProtocol.getBatteryTemp().intValue());
-                //閿欒缂栧彿
-                basShuttle.setErrorCode(shuttleProtocol.getErrorCode().intValue());
-                //Plc杈撳嚭鐘舵�両O
-                basShuttle.setPlcOutputStatusIo(shuttleProtocol.getPlcOutputStatusIO().intValue());
-                //閿欒淇℃伅鐮�
-                basShuttle.setStatusErrorCode(shuttleProtocol.getStatusErrorCode().intValue());
-                //PLC杈撳叆鐘舵��
-                basShuttle.setPlcInputStatus(shuttleProtocol.getPlcInputStatus().intValue());
-                //褰撳墠鎴栬�呬箣鍓嶈鍒扮殑浜岀淮鐮佸��
-                basShuttle.setCurrentOrBeforeCode(shuttleProtocol.getCurrentOrBeforeCode().intValue());
-                //璇诲埌鐨勪簩缁寸爜X鏂瑰悜鍋忕Щ閲�
-                basShuttle.setCodeOffsetX(shuttleProtocol.getCodeOffsetX().intValue());
-                //璇诲埌鐨勪簩缁寸爜Y鏂瑰悜鍋忕Щ閲�
-                basShuttle.setCodeOffsetY(shuttleProtocol.getCodeOffsetY().intValue());
-                //褰撳墠鐨勭數鍘嬪��
-                basShuttle.setCurrentVoltage(shuttleProtocol.getCurrentVoltage().intValue());
-                //褰撳墠鐨勬ā鎷熼噺鍊�
-                basShuttle.setCurrentAnalogValue(shuttleProtocol.getCurrentAnalogValue().intValue());
-                //褰撳墠鐨勫崌闄嶄己鏈嶉�熷害
-                basShuttle.setCurrentLiftServoSpeed(shuttleProtocol.getCurrentLiftServoSpeed().intValue());
-                //褰撳墠鐨勮璧颁己鏈嶉�熷害
-                basShuttle.setCurrentMoveServoSpeed(shuttleProtocol.getCurrentMoveServoSpeed().intValue());
-                //褰撳墠鐨勫崌闄嶄己鏈嶈礋杞界巼
-                basShuttle.setCurrentLiftServoLoad(shuttleProtocol.getCurrentLiftServoLoad().intValue());
-                //褰撳墠鐨勮璧颁己鏈嶈礋杞界巼
-                basShuttle.setCurrentMoveServoLoad(shuttleProtocol.getCurrentMoveServoLoad().intValue());
-                //褰撳墠灏忚溅鐘舵�侊紙鍐呴儴鑷垜缁存姢锛�
-                basShuttle.setShuttleStatus(shuttleProtocol.getProtocolStatus());
-                //浠诲姟鍙�
-                basShuttle.setWrkNo(shuttleProtocol.getTaskNo().intValue());
-                //淇敼鏃堕棿
-                basShuttle.setUpdateTime(new Date());
-                //浣滀笟鏍囪
-                basShuttle.setPakMk(shuttleProtocol.getPakMk());
-                if (shuttleService.updateById(basShuttle)) {
-                    OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-//                    log.info(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-                }
+//                //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴�
+//                BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
+//                BasShuttle basShuttle = shuttleService.selectById(slave.getId());
+//                if (basShuttle == null) {
+//                    basShuttle = new BasShuttle();
+//                    //鍥涘悜绌挎杞﹀彿
+//                    basShuttle.setShuttleNo(slave.getId());
+//                    shuttleService.insert(basShuttle);
+//                }
+//                //灏忚溅蹇欑姸鎬佷綅
+//                basShuttle.setBusyStatus(shuttleProtocol.getBusyStatus().intValue());
+//                //褰撳墠浜岀淮鐮�
+//                basShuttle.setCurrentCode(shuttleProtocol.getCurrentCode().intValue());
+//                //鐢垫睜鐢甸噺鐧惧垎姣�
+//                basShuttle.setBatteryPower(shuttleProtocol.getBatteryPower().intValue());
+//                //鐢垫睜娓╁害
+//                basShuttle.setBatteryTemp(shuttleProtocol.getBatteryTemp().intValue());
+//                //閿欒缂栧彿
+//                basShuttle.setErrorCode(shuttleProtocol.getErrorCode().intValue());
+//                //Plc杈撳嚭鐘舵�両O
+//                basShuttle.setPlcOutputStatusIo(shuttleProtocol.getPlcOutputStatusIO().intValue());
+//                //閿欒淇℃伅鐮�
+//                basShuttle.setStatusErrorCode(shuttleProtocol.getStatusErrorCode().intValue());
+//                //PLC杈撳叆鐘舵��
+//                basShuttle.setPlcInputStatus(shuttleProtocol.getPlcInputStatus().intValue());
+//                //褰撳墠鎴栬�呬箣鍓嶈鍒扮殑浜岀淮鐮佸��
+//                basShuttle.setCurrentOrBeforeCode(shuttleProtocol.getCurrentOrBeforeCode().intValue());
+//                //璇诲埌鐨勪簩缁寸爜X鏂瑰悜鍋忕Щ閲�
+//                basShuttle.setCodeOffsetX(shuttleProtocol.getCodeOffsetX().intValue());
+//                //璇诲埌鐨勪簩缁寸爜Y鏂瑰悜鍋忕Щ閲�
+//                basShuttle.setCodeOffsetY(shuttleProtocol.getCodeOffsetY().intValue());
+//                //褰撳墠鐨勭數鍘嬪��
+//                basShuttle.setCurrentVoltage(shuttleProtocol.getCurrentVoltage().intValue());
+//                //褰撳墠鐨勬ā鎷熼噺鍊�
+//                basShuttle.setCurrentAnalogValue(shuttleProtocol.getCurrentAnalogValue().intValue());
+//                //褰撳墠鐨勫崌闄嶄己鏈嶉�熷害
+//                basShuttle.setCurrentLiftServoSpeed(shuttleProtocol.getCurrentLiftServoSpeed().intValue());
+//                //褰撳墠鐨勮璧颁己鏈嶉�熷害
+//                basShuttle.setCurrentMoveServoSpeed(shuttleProtocol.getCurrentMoveServoSpeed().intValue());
+//                //褰撳墠鐨勫崌闄嶄己鏈嶈礋杞界巼
+//                basShuttle.setCurrentLiftServoLoad(shuttleProtocol.getCurrentLiftServoLoad().intValue());
+//                //褰撳墠鐨勮璧颁己鏈嶈礋杞界巼
+//                basShuttle.setCurrentMoveServoLoad(shuttleProtocol.getCurrentMoveServoLoad().intValue());
+//                //褰撳墠灏忚溅鐘舵�侊紙鍐呴儴鑷垜缁存姢锛�
+//                basShuttle.setShuttleStatus(shuttleProtocol.getProtocolStatus());
+//                //浠诲姟鍙�
+//                basShuttle.setWrkNo(shuttleProtocol.getTaskNo().intValue());
+//                //淇敼鏃堕棿
+//                basShuttle.setUpdateTime(new Date());
+//                //浣滀笟鏍囪
+//                basShuttle.setPakMk(shuttleProtocol.getPakMk());
+//                if (shuttleService.updateById(basShuttle)) {
+//                    OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+////                    log.info(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+//                }
 
             }else {
                 OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆憑1}鍥涘悜绌挎杞lc鐘舵�佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
@@ -300,7 +300,7 @@
                 News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {},娆℃暟锛歿}", slave.getId(), JSON.toJSON(command), i);
                 OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2},娆℃暟锛歿}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command), i));
                 try {
-                    Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�
+                    Thread.sleep(300);//鍛戒护涓嬪彂鍚庝紤鐪�
                 } catch (InterruptedException e) {
                     throw new RuntimeException(e);
                 }
@@ -414,12 +414,12 @@
             //鑾峰彇灏忚溅绉诲姩閫熷害
             BasShuttle basShuttle = shuttleService.selectById(slave.getId());
             Integer runSpeed = 1000;
-            if (basShuttle != null) {
-                Integer runSpeed1 = basShuttle.getRunSpeed();
-                if (runSpeed1 != null) {
-                    runSpeed = runSpeed1;
-                }
-            }
+//            if (basShuttle != null) {
+//                Integer runSpeed1 = basShuttle.getRunSpeed();
+//                if (runSpeed1 != null) {
+//                    runSpeed = runSpeed1;
+//                }
+//            }
 
             LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
             LiftProtocol liftProtocol = liftThread.getLiftProtocol();
@@ -445,7 +445,7 @@
                             //鐩爣璺緞
                             NavigateNode endPath = nodes.get(nodes.size() - 1);
                             Integer allDistance = NavigateUtils.getCurrentPathAllDistance(nodes);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
-                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
 
                             //姝e父绉诲姩鍛戒护
                             Short startCode = NavigatePositionConvert.xyToPosition(startPath.getX(), startPath.getY(), startPath.getZ());//寮�濮嬩簩缁寸爜
@@ -481,7 +481,7 @@
                             //鐩爣璺緞
                             NavigateNode endPath = nodes.get(nodes.size() - 1);
                             Integer allDistance = NavigateUtils.getCurrentPathAllDistance(nodes);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
-                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
 
                             //姝e父绉诲姩鍛戒护
                             Short startCode = NavigatePositionConvert.xyToPosition(startPath.getX(), startPath.getY(), startPath.getZ());//寮�濮嬩簩缁寸爜
@@ -570,7 +570,7 @@
                             //鐩爣璺緞
                             NavigateNode endPath = nodes.get(nodes.size() - 1);
                             Integer allDistance = NavigateUtils.getCurrentPathAllDistance(nodes);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
-                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
                             Short startCode = NavigatePositionConvert.xyToPosition(startPath.getX(), startPath.getY(), startPath.getZ());//寮�濮嬩簩缁寸爜
                             Short middleCode = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());//涓棿浜岀淮鐮�
                             Short distCode = NavigatePositionConvert.xyToPosition(endPath.getX(), endPath.getY(), endPath.getZ());//鐩爣浜岀淮鐮�
@@ -607,7 +607,7 @@
                             //鐩爣璺緞
                             NavigateNode endPath = nodes.get(nodes.size() - 1);
                             Integer allDistance = NavigateUtils.getCurrentPathAllDistance(nodes);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
-                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+                            Integer middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
                             Short startCode = NavigatePositionConvert.xyToPosition(startPath.getX(), startPath.getY(), startPath.getZ());//寮�濮嬩簩缁寸爜
                             Short middleCode = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());//涓棿浜岀淮鐮�
                             Short distCode = NavigatePositionConvert.xyToPosition(endPath.getX(), endPath.getY(), endPath.getZ());//鐩爣浜岀淮鐮�
@@ -951,6 +951,10 @@
             }
         }
 
+        if (commands.size() == 0) {
+            return false;
+        }
+
         //褰撳墠绛夊緟鎵ц鐨勬寚浠�
         ShuttleCommand command = commands.get(commandStep);
 

--
Gitblit v1.9.1