From a37eb3393b65933105a6f23a1713a2b14b835d16 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 23 五月 2025 12:53:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java |   63 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
index 10900c0..e795ce3 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
@@ -285,6 +285,25 @@
     }
 
     @Override
+    public CommandResponse move(ForkLiftCommand command) {
+        CommandResponse response = new CommandResponse(false);
+
+        short[] array = new short[4];
+        array[0] = command.getTaskNo();//浠诲姟鍙�
+        array[1] = command.getMode();//浠诲姟妯″紡
+        array[2] = command.getPick();//鍙栬揣鏁版嵁
+        array[3] = command.getPut();//鏀捐揣鏁版嵁
+        OperateResult result = siemensS7Net.Write("DB103.0", array);
+        if (result.IsSuccess) {
+            OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
+            if (result2.IsSuccess) {
+                response.setResult(true);
+            }
+        }
+        return response;
+    }
+
+    @Override
     public CommandResponse reset() {
         CommandResponse response = new CommandResponse(false);
         OperateResult result = siemensS7Net.Write("DB103.10", (short) 1);
@@ -300,6 +319,7 @@
         if (this.forkLiftProtocol.getTaskNo() == null
                 || this.forkLiftProtocol.getProtocolStatus() == null
                 || this.forkLiftProtocol.getModel() == null
+                || this.forkLiftProtocol.getErrorCode() == null
         ) {
             return false;
         }
@@ -307,7 +327,9 @@
         boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
                 && this.forkLiftProtocol.getWrkNo() == 0
                 && this.forkLiftProtocol.getTaskNo() == 0
-                && this.forkLiftProtocol.getModel() == 2;
+                && this.forkLiftProtocol.getModel() == 2
+                && this.forkLiftProtocol.getErrorCode() == 0
+                ;
         return res;
     }
 
@@ -328,13 +350,16 @@
         if (this.forkLiftProtocol.getTaskNo() == null
                 || this.forkLiftProtocol.getProtocolStatus() == null
                 || this.forkLiftProtocol.getModel() == null
+                || this.forkLiftProtocol.getErrorCode() == null
         ) {
             return false;
         }
 
         boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
                 && this.forkLiftProtocol.getWrkNo() == 0
-                && this.forkLiftProtocol.getModel() == 2;
+                && this.forkLiftProtocol.getModel() == 2
+                && this.forkLiftProtocol.getErrorCode() == 0
+                ;
         return res;
     }
 
@@ -365,13 +390,16 @@
 
     @Override
     public List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) {
+        Integer realPick = pick % 1000;
+        Integer realPut = put % 1000;
+
         List<ForkLiftCommand> commands = new ArrayList<>();
         ForkLiftCommand command = new ForkLiftCommand();
         command.setLiftNo(slave.getId());
         command.setTaskNo(taskNo.shortValue());
         command.setMode(ForkLiftTaskModeType.PICK_PUT.id.shortValue());
-        command.setPick(pick.shortValue());
-        command.setPut(put.shortValue());
+        command.setPick(realPick.shortValue());
+        command.setPut(realPut.shortValue());
         command.setConfirm((short) 1);
 
         commands.add(command);
@@ -379,14 +407,35 @@
     }
 
     @Override
-    public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer originLev, Integer targetLev) {
+    public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put) {
+        Integer realPick = pick % 1000;
+        Integer realPut = put % 1000;
+
         List<ForkLiftCommand> commands = new ArrayList<>();
         ForkLiftCommand command = new ForkLiftCommand();
         command.setLiftNo(slave.getId());
         command.setTaskNo(taskNo.shortValue());
         command.setMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
-        command.setPick(originLev.shortValue());
-        command.setPut(targetLev.shortValue());
+        command.setPick(realPick.shortValue());
+        command.setPut(realPut.shortValue());
+        command.setConfirm((short) 1);
+
+        commands.add(command);
+        return commands;
+    }
+
+    @Override
+    public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
+        Integer realPick = pick % 1000;
+        Integer realPut = put % 1000;
+
+        List<ForkLiftCommand> commands = new ArrayList<>();
+        ForkLiftCommand command = new ForkLiftCommand();
+        command.setLiftNo(slave.getId());
+        command.setTaskNo(taskNo.shortValue());
+        command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
+        command.setPick(realPick.shortValue());
+        command.setPut(realPut.shortValue());
         command.setConfirm((short) 1);
 
         commands.add(command);

--
Gitblit v1.9.1