From fb74f60f1d8397acf5251ae289e80ab8a056857f Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 09 十月 2025 09:08:05 +0800
Subject: [PATCH] #和得服务器

---
 src/main/java/com/zy/core/MainProcess.java |  176 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 119 insertions(+), 57 deletions(-)

diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 1b40995..1502c9b 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -24,101 +24,163 @@
     private MainServiceImpl mainService;
     // 鎵�灞炵嚎绋�
     private Thread thread;
+    private Thread armThread;
     // 棰戠巼
     private int i = 0;
+    private int k = 0;
     private boolean rgcWrk = true;
 
     /**
      * =====>>  寮�濮嬪伐浣�
      */
     public void start(){
-        thread = new Thread(() -> {
-            while (!Thread.currentThread().isInterrupted()) {
-                try {
+        thread = new Thread(this::crnAndDevRun);
+        thread.start();
 
-                    // 闂撮殧
-                    Thread.sleep(500);
+        armThread = new Thread(this::roboticArmDispatch);
+        armThread.start();
+    }
+    private void crnAndDevRun() {
+        while (!Thread.currentThread().isInterrupted()) {
+            try {
 
-                    // 绯荤粺杩愯鐘舵�佸垽鏂�
-                    if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
-                        continue;
-                    }
+                // 闂撮殧
+                Thread.sleep(1000);
 
-                    // 婕旂ず
-                    mainService.crnDemoOfLocMove1();
-                    //鍒锋柊RGV鍦板浘
-                    mainService.refreshRgvMap();
+                // 绯荤粺杩愯鐘舵�佸垽鏂�
+                if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+                    continue;
+                }
 
-                    // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+                // 婕旂ず
+//                    mainService.crnDemoOfLocMove1();
+                //鍒锋柊RGV鍦板浘
+                mainService.refreshRgvMap();
+
+                // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
 //                    mainService.ioConvert();
-                    // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
-                    mainService.generateStoreWrkFile(1); // 缁勬墭
-                    mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
-                    Thread.sleep(500);
-                    // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
-                    mainService.stnToCrnStnPick(3);
-                    // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
-                    mainService.crnStnToOutStn(4);
-                    // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
-                    mainService.crnIoExecute(5);
-                    // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
+
+                // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+                mainService.stnToCrnStnPick(3);
+//                    mainService.stnToCrnStnPick2();
+
+                // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
+                mainService.generateStoreWrkFile(1); // 缁勬墭
+//                    mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
+                Thread.sleep(500);
+
+                // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
+                mainService.crnStnToOutStn(4);
+                // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+                mainService.crnIoExecute(5);
+                // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
 //                    mainService.crnIoWrkMast();
-                    // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
-                    mainService.storeFinished(6);
-                    // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
-                    mainService.recCrnErr(7);
-                    // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-                    mainService.storeEmptyPlt(8);
-                    // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
-                    mainService.ledExecute(9);
-                    // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
-                    mainService.ledReset(10);
+                // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+                mainService.storeFinished(6);
+                // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
+                mainService.recCrnErr(7);
+                // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+                mainService.storeEmptyPlt(8);
+                // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+                mainService.ledExecute(9);
+                // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+                mainService.ledReset();
+                //鍫嗗灈鏈鸿鎺ヤ换鍔$敓鎴�
+                mainService.connectWrk(10);
 
-                    mainService.outOfDevp(11);
+//                    mainService.outOfDevp(11);
 
+                if (i>2){
                     //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
 //                    mainService.autoEmptyOut();
-//                    //绌烘墭鐩樿嚜鍔ㄥ叆搴�
-//                    mainService.autoEmptyIn();
+                    //绌烘墭鐩樿嚜鍔ㄥ叆搴�
+                    mainService.autoEmptyIn();
+                    i=0;
+                }
+                i++;
 
-                    // 鍏朵粬  ===>> 鍏ュ嚭搴撴ā寮忓垏鎹�
+                // 鍏朵粬  ===>> 鍏ュ嚭搴撴ā寮忓垏鎹�
 //                    i++;
 //                    if (i > 1) {
 //                        mainService.ioConvert();
 //                        i = 0;
 //                    }
 
-                    /////////////////////////////////////RGV璋冨害/////////////////////////////////////
+                /////////////////////////////////////RGV璋冨害/////////////////////////////////////
 //
-                    //瀹屾垚灏忚溅浠诲姟
-                    mainService.rgvCompleteWrkMastSta();
+                //瀹屾垚灏忚溅浠诲姟
+//                    mainService.rgvCompleteWrkMastSta();
 
 //                    //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
 //                    mainService.rgvRunWrkMastEmptyStaPut();//鏀�
 //                    mainService.rgvRunWrkMastEmptyStaTake();//鍙�
-                    if (rgcWrk){
-                        //鎵ц灏忚溅璐х墿鎼繍浠诲姟
-                        mainService.rgvRunWrkMastFullSta();
-                        rgcWrk = false;
-                    }else {
-                        mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯
-                        rgcWrk = true;
+//                    if (rgcWrk){
+//                        //鎵ц灏忚溅璐х墿鎼繍浠诲姟
+//                        mainService.rgvRunWrkMastFullSta();
+//                        rgcWrk = false;
+//                    }else {
+//                        mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯
+//                        rgcWrk = true;
+//                    }
+
+
+                /////////////////////////////////////RGV璋冨害/////////////////////////////////////
+                /////////////////////////////////////RGV璋冨害/////////////////////////////////////
+                k++;
+
+                // RGV  ===>>  灏忚溅浠诲姟浣滀笟涓嬪彂
+                try{
+                    //RGV灏忚溅鍑哄叆搴撳彇璐т笅鍙�
+                    mainService.rgvIoExecute(11);
+                    if(k > 3){
+                        mainService.rgvOutExecute();
+                        k = 0;
                     }
-
-
-                    /////////////////////////////////////RGV璋冨害/////////////////////////////////////
-
-                } catch (Exception e) {
-                    e.printStackTrace();
+                }catch (Exception e){
+                    log.error("RGV  ===>>  灏忚溅浠诲姟浣滀笟涓嬪彂寮傚父"+e);
                 }
+//                //瀹屾垚灏忚溅浠诲姟
+                mainService.rgvTaskComplete();
+
+                //宸ヤ綅绉诲姩
+//                mainService.rgvStaMove();
+                /////////////////////////////////////RGV璋冨害/////////////////////////////////////
+
+            } catch (Exception e) {
+                e.printStackTrace();
             }
-        });
-        thread.start();
+        }
+    }
+
+    private void roboticArmDispatch() {
+        while (!Thread.currentThread().isInterrupted()) {
+            try {
+
+                // 闂撮殧
+                Thread.sleep(500);
+
+                // 绯荤粺杩愯鐘舵�佸垽鏂�
+                if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+                    continue;
+                }
+
+                //arm浠诲姟瀹屾垚
+                mainService.armMissionAccomplished();
+                mainService.armMissionAccomplishedScanToCheckIn();
+
+                //arm浠诲姟涓嬪彂
+                mainService.armTaskAssignment();
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
     }
 
     @PreDestroy
     public void shutDown(){
         if (thread != null) thread.interrupt();
+        if (armThread != null) armThread.interrupt();
     }
 
 }

--
Gitblit v1.9.1