From 5d0f7a5aa4ee994782f3f3bcc66e23653a6ac40a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 19 七月 2024 10:07:46 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 114 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index b71f6c3..8f744ed 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -104,17 +104,27 @@
 
     @GetMapping("/demo/status")
     public R demoStatus(Integer rgvNo){
+        Map<String,Object> map = new HashMap<>();
         if (Cools.isEmpty(rgvNo)){
-            return R.ok("X");
+            map.put("demo","X");
+            map.put("rgvMode",0);
+            return R.ok().add(map);
         }
         String demo = "X";
+        Integer rgvMode = 0;
 //        List<Map<String, Object>> res = new ArrayList<>();
         for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-            if (rgvSlave.getId() == rgvNo){
+            SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvSlave.getId().equals(rgvNo)){
                demo = rgvSlave.getDemo()?"Y":"N";
+               rgvSlave.setRgvMode(rgvProtocol.getMode().intValue());
+               rgvMode = rgvProtocol.getMode().intValue();
             }
         }
-        return R.ok(demo);
+        map.put("demo",demo);
+        map.put("rgvMode",rgvMode);
+        return R.ok().add(map);
     }
 
     @GetMapping("/demo/status/true")
@@ -189,18 +199,27 @@
                        break;
                    case 12://鎵嬪姩
                        DB="5.3";
+                       rgvSlave.setRgvMode(3);
                        break;
                    case 13://鎵嬪姩瀹氫綅
                        DB="5.4";
                        break;
                    case 14://鍗曟満
                        DB="5.5";
+                       rgvSlave.setRgvMode(2);
                        break;
                    case 15://鑱旀満
                        DB="5.6";
+                       rgvSlave.setRgvMode(1);
                        break;
                    case 16://璐у弶瀹氫綅鍥炰腑
                        DB="5.7";
+                       break;
+                   case 17://鎭㈠鑱旀満浠诲姟
+                       DB="6.0";
+                       break;
+                   case 18://娓呮鑱旀満浠诲姟
+                       DB="6.1";
                        break;
                    default:
                        return R.error("鎸夐挳涓嶅瓨鍦紵锛燂紵锛燂紒锛侊紒");
@@ -260,6 +279,68 @@
 
         return rgvControl(command)? R.ok(): R.error();
     }
+
+
+    @ManagerAuth(memo = "鍙�")
+    @PostMapping("/operator/single/step/one/put")
+    public R rgvFetchSingleStepOnePut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,1)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "鏀�")
+    @PostMapping("/operator/single/step/two/put")
+    public R rgvFetchSingleStepTwoPut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,2)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "X杩愯")
+    @PostMapping("/operator/single/step/three/put")
+    public R rgvFetchSingleStepThreePut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,3)?R.ok():R.error();
+    }
+
+    @ManagerAuth(memo = "鍙栨斁")
+    @PostMapping("/operator/single/step/four/put")
+    public R rgvFetchSingleStepFourPut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,4)?R.ok():R.error();
+    }
+
+    public boolean rgvFetchSingleStepPut(RgvOperatorParam param ,Integer type){
+        wrkNo++;
+        RgvCommand command = new RgvCommand();
+        RgvTaskModeType fetchPut = RgvTaskModeType.NONE;
+        switch (type){
+            case 1:
+                fetchPut = RgvTaskModeType.FETCH;
+                param.setSourceBay(0);
+                break;
+            case 2:
+                fetchPut = RgvTaskModeType.PUT;
+                param.setSourceRow(0);
+                break;
+            case 3:
+                fetchPut = RgvTaskModeType.X_MOVE;
+                break;
+            case 4:
+                fetchPut = RgvTaskModeType.FETCH_PUT;
+                break;
+            default:
+                return false;
+        }
+        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskNo1(wrkNo); // 宸ヤ綔鍙�
+        command.setTaskMode1(fetchPut); // 浠诲姟妯″紡: 鍙栨斁璐�
+        command.setSourceStaNo1(param.getSourceRow().shortValue()); // 婧愮珯
+        command.setDestinationStaNo1(param.getSourceBay().shortValue());  // 鐩爣绔�
+//        command.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
+//        command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+//        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+//        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
+        command.setCommand((short) 0);
+
+        return rgvControlD(command);
+    }
+
 
     @ManagerAuth(memo = "澶嶄綅")
     @PostMapping("/operator/reset")
@@ -542,4 +623,34 @@
         return false;
     }
 
+    private boolean rgvControlD(RgvCommand command){
+        if (command.getRgvNo() == null) {
+            throw new CoolException("璇烽�夋嫨RGV");
+        }
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            // 鑾峰彇RGV淇℃伅
+            if (command.getRgvNo().equals(rgv.getId())) {
+//                SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+//                if (rgvThread == null) {
+//                    throw new CoolException("RGV涓嶅湪绾�");
+//                }
+//                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+//                if (rgvProtocol == null) {
+//                    throw new CoolException("RGV涓嶅湪绾�");
+//                }
+                try{
+                    if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(11, command))) {
+                        return true;
+                    } else {
+                        throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                    }
+                }catch (Exception e){
+                    log.error("鍗曟浠诲姟涓嬪彂澶辫触锛屽紓甯革細"+e);
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+            }
+        }
+        return false;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1