From fb71586ebc7e25452187a7e38b325ce9aa4db786 Mon Sep 17 00:00:00 2001 From: lizw-2015 <1183409807@qq.com> Date: Fri, 25 Jul 2025 10:11:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(lcc):=20=E4=BF=AE=E6=94=B9=20lcc=20loca?= =?UTF-8?q?tion=20=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 lcc location 路径从相对路径修改为绝对路径 - 新路径为 '/home/galaxis/.jenkins/workspace/yvan-lcc-bench/lcc-map' --- servo/src/main/resources/application-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servo/src/main/resources/application-prod.yml b/servo/src/main/resources/application-prod.yml index 800f796..4915ae3 100644 --- a/servo/src/main/resources/application-prod.yml +++ b/servo/src/main/resources/application-prod.yml @@ -11,7 +11,7 @@ app: root-path: '/home/galaxis/.jenkins/workspace/yvan-lcc-bench' lcc: - location: './lcc-map' + location: '/home/galaxis/.jenkins/workspace/yvan-lcc-bench/lcc-map' autoStart: # - projectUuid: tw_test # envId: 1 From 2539b03c7195c652f9fcae4bbf8b18dbe0716371 Mon Sep 17 00:00:00 2001 From: yuliang <398780299@qq.com> Date: Fri, 25 Jul 2025 13:44:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=98=89=E5=85=B4=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/galaxis/rcs/amr/AmrAgvItem.java | 29 +++++++++++++++------- .../main/java/com/galaxis/rcs/amr/PtrAgvItem.java | 10 +++++++- .../com/galaxis/rcs/amr/PtrConnectorThread.java | 14 ----------- .../com/galaxis/rcs/connector/amr/cl2/Cl2Item.java | 12 +++++++++ .../connector/amr/fm600/Fm600DeviceConnector.java | 15 +++-------- .../galaxis/rcs/connector/amr/fm600/Fm600Item.java | 26 +++++++++++++++++++ .../com/yvan/logisticsModel/LogisticsRuntime.java | 2 +- 7 files changed, 71 insertions(+), 37 deletions(-) delete mode 100644 servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java diff --git a/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java b/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java index a7f38f4..aa5c8c9 100644 --- a/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java +++ b/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java @@ -78,7 +78,7 @@ public abstract class AmrAgvItem extends ExecutorItem { /** * 当前执行的设备任务列表 */ - final BlockingQueue deviceTaskQueue = Queues.newArrayBlockingQueue(BLOCKING_QUEUE_CAPACITY); + public final BlockingQueue deviceTaskQueue = Queues.newArrayBlockingQueue(BLOCKING_QUEUE_CAPACITY); final AmrDeviceConnector amrDeviceConnector = new AmrDeviceConnector(this.runtime); @@ -87,7 +87,7 @@ public abstract class AmrAgvItem extends ExecutorItem { /** * 连接器线程 */ - public final AmrConnectorThread connectorThread; + public AmrConnectorThread connectorThread; public AmrAgvItem(LogisticsRuntime logisticsRuntime, Map raw) { super(logisticsRuntime, raw); @@ -775,12 +775,11 @@ public abstract class AmrAgvItem extends ExecutorItem { d.chargeLocation = deviceTaskList.get(lastIndex).chargeLocation; } } - - deviceTaskQueue.addAll(deviceTaskList); - String json = JsonWrapper.toJson(deviceTaskList); - log.info("deviceTaskList: {}", json); + handelDeviceTask(deviceTaskList); } + abstract public void handelDeviceTask(List deviceTaskList); + public boolean isSamePosition(PosDirection startPos) { return this.logicX == startPos.logicX() && this.logicY == startPos.logicY() && PathUtils.getDirectionByArmDirection(this.direction) == startPos.direction(); @@ -794,21 +793,33 @@ public abstract class AmrAgvItem extends ExecutorItem { } - private static class COperationType { + public static class COperationType { + // 移动 public static final short move = 0; + // 载货 public static final short load = 1; - public static final short unpick = 2; + // 卸货 + public static final short unload = 2; + // 充电 public static final short charge = 3; + // 移载取放货 public static final short transplantLoadAndUnload = 4; + // 滚轮取放货 public static final short rollerLoadAndUnload = 5; } - private static class CPickMode { + public static class CPickMode { + // 无动作 public static final short normal = 0; + // 载货 public static final short load = 1; + // 卸货 public static final short unload = 2; + // 调高 public static final short adjustHeight = 3; + // 调高准备取货 public static final short adjustHeightToLoad = 5; + // 调高准备卸货 public static final short adjustHeightToUnload = 6; } diff --git a/servo/src/main/java/com/galaxis/rcs/amr/PtrAgvItem.java b/servo/src/main/java/com/galaxis/rcs/amr/PtrAgvItem.java index 4b602c2..6400cc8 100644 --- a/servo/src/main/java/com/galaxis/rcs/amr/PtrAgvItem.java +++ b/servo/src/main/java/com/galaxis/rcs/amr/PtrAgvItem.java @@ -3,6 +3,7 @@ package com.galaxis.rcs.amr; import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage; import com.yvan.logisticsModel.LogisticsRuntime; import lombok.extern.slf4j.Slf4j; +import org.clever.core.json.JsonWrapper; import java.util.*; @@ -10,7 +11,7 @@ import java.util.*; * 侧叉式AGV执行器 */ @Slf4j -public class PtrAgvItem extends AmrAgvItem { +public abstract class PtrAgvItem extends AmrAgvItem { public PtrAgvItem(LogisticsRuntime logisticsRuntime, Map raw) { super(logisticsRuntime, raw); @@ -27,4 +28,11 @@ public class PtrAgvItem extends AmrAgvItem { content.MqRetryTime = 3; return content; } + + @Override + public void handelDeviceTask(List deviceTaskList) { + deviceTaskQueue.addAll(deviceTaskList); + String json = JsonWrapper.toJson(deviceTaskList); + log.info("ptr-deviceTaskList: {}", json); + } } diff --git a/servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java b/servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java deleted file mode 100644 index 34e7c1a..0000000 --- a/servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.galaxis.rcs.amr; - -import com.galaxis.rcs.connector.amr.PtrDeviceConnector; -import com.yvan.logisticsModel.LogisticsRuntime; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class PtrConnectorThread extends AmrConnectorThread { - - public PtrConnectorThread(PtrAgvItem ptrAgvItem, PtrDeviceConnector ptrDeviceConnector, LogisticsRuntime logisticsRuntime) { - super(ptrAgvItem, ptrDeviceConnector, logisticsRuntime); - - } -} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java b/servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java index d95c30c..325f560 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java @@ -1,11 +1,16 @@ package com.galaxis.rcs.connector.amr.cl2; +import com.galaxis.rcs.amr.AmrDeviceTask; import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage; import com.yvan.logisticsModel.LogisticsRuntime; import com.galaxis.rcs.amr.PtrAgvItem; +import lombok.extern.slf4j.Slf4j; +import org.clever.core.json.JsonWrapper; +import java.util.List; import java.util.Map; +@Slf4j public class Cl2Item extends PtrAgvItem { public Cl2Item(LogisticsRuntime logisticsRuntime, Map raw) { @@ -23,4 +28,11 @@ public class Cl2Item extends PtrAgvItem { content.MqRetryTime = 3; return content; } + + @Override + public void handelDeviceTask(List deviceTaskList) { + deviceTaskQueue.addAll(deviceTaskList); + String json = JsonWrapper.toJson(deviceTaskList); + log.info("cl-deviceTaskList: {}", json); + } } diff --git a/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600DeviceConnector.java b/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600DeviceConnector.java index 7931c89..0b0063e 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600DeviceConnector.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600DeviceConnector.java @@ -3,6 +3,7 @@ package com.galaxis.rcs.connector.amr.fm600; import com.fasterxml.jackson.core.JsonProcessingException; import com.galaxis.rcs.amr.sendEntity.RcsTaskMessage; import com.galaxis.rcs.amr.AmrMessageHandler; +import com.galaxis.rcs.connector.amr.AmrDeviceConnector; import com.yvan.logisticsModel.LogisticsRuntime; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.mqttv5.common.MqttException; @@ -11,19 +12,9 @@ import org.eclipse.paho.mqttv5.common.MqttException; * CL2 车型报文推送 */ @Slf4j -public class Fm600DeviceConnector { - private final AmrMessageHandler amrMessageHandler; +public class Fm600DeviceConnector extends AmrDeviceConnector { public Fm600DeviceConnector(LogisticsRuntime runtime) { - this.amrMessageHandler = runtime.amrMessageHandler; + super(runtime); } - - public void sendTask(String vehicleId, RcsTaskMessage rcsTaskMessage) throws MqttException, JsonProcessingException { - // var list = Splitter.on("\n").splitToList(JsonWrapper.toJsonPretty(rcsTaskMessage)); - // String[] ar = new String[list.size()]; - // list.toArray(ar); - // BannerUtils.printConfig(log, "CL2 发送报文", ar); - amrMessageHandler.sendCmdTask(vehicleId, rcsTaskMessage); - } - } diff --git a/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java b/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java index 6bd07ce..b708468 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java @@ -1,12 +1,17 @@ package com.galaxis.rcs.connector.amr.fm600; import com.galaxis.rcs.amr.AmrAgvItem; +import com.galaxis.rcs.amr.AmrDeviceTask; import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage; import com.yvan.logisticsModel.LogisticsRuntime; import com.galaxis.rcs.amr.PtrAgvItem; +import lombok.extern.slf4j.Slf4j; +import org.clever.core.json.JsonWrapper; +import java.util.List; import java.util.Map; +@Slf4j public class Fm600Item extends AmrAgvItem { public Fm600Item(LogisticsRuntime logisticsRuntime, Map raw) { @@ -24,4 +29,25 @@ public class Fm600Item extends AmrAgvItem { content.MqRetryTime = 3; return content; } + + @Override + public void handelDeviceTask(List deviceTaskList) { + + // 将移载任务转换为装载任务 + for (int i = deviceTaskList.size() - 1; i >= 0; i--) { + AmrDeviceTask d = deviceTaskList.get(i); + if (d.operationType == COperationType.transplantLoadAndUnload) { + if (d.pickMode == CPickMode.load) { + d.operationType = COperationType.load; + } else if (d.pickMode == CPickMode.unload) { + d.operationType = COperationType.unload; + } + d.pickMode = CPickMode.normal; + } + } + + deviceTaskQueue.addAll(deviceTaskList); + String json = JsonWrapper.toJson(deviceTaskList); + log.info("fm600-deviceTaskList: {}", json); + } } diff --git a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java index efb8056..f58bade 100644 --- a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java +++ b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java @@ -332,7 +332,7 @@ public class LogisticsRuntime { case "cl3": case "clx": case "cs1": - item = new PtrAgvItem(this, itemObject); + item = new Cl2Item(this, itemObject); this.executorItemMap.put(item.getId(), (ExecutorItem) item); break; case "fm600":