Browse Source

Merge remote-tracking branch 'origin/jx-test' into jx-test

jx-test
修宁 5 months ago
parent
commit
d57421a054
  1. 29
      servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java
  2. 10
      servo/src/main/java/com/galaxis/rcs/amr/PtrAgvItem.java
  3. 14
      servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java
  4. 12
      servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java
  5. 15
      servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600DeviceConnector.java
  6. 26
      servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java
  7. 2
      servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java
  8. 2
      servo/src/main/resources/application-prod.yml

29
servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java

@ -78,7 +78,7 @@ public abstract class AmrAgvItem extends ExecutorItem {
/** /**
* 当前执行的设备任务列表 * 当前执行的设备任务列表
*/ */
final BlockingQueue<AmrDeviceTask> deviceTaskQueue = Queues.newArrayBlockingQueue(BLOCKING_QUEUE_CAPACITY); public final BlockingQueue<AmrDeviceTask> deviceTaskQueue = Queues.newArrayBlockingQueue(BLOCKING_QUEUE_CAPACITY);
final AmrDeviceConnector amrDeviceConnector = new AmrDeviceConnector(this.runtime); 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<String, Object> raw) { public AmrAgvItem(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) {
super(logisticsRuntime, raw); super(logisticsRuntime, raw);
@ -775,12 +775,11 @@ public abstract class AmrAgvItem extends ExecutorItem {
d.chargeLocation = deviceTaskList.get(lastIndex).chargeLocation; d.chargeLocation = deviceTaskList.get(lastIndex).chargeLocation;
} }
} }
handelDeviceTask(deviceTaskList);
deviceTaskQueue.addAll(deviceTaskList);
String json = JsonWrapper.toJson(deviceTaskList);
log.info("deviceTaskList: {}", json);
} }
abstract public void handelDeviceTask(List<AmrDeviceTask> deviceTaskList);
public boolean isSamePosition(PosDirection startPos) { public boolean isSamePosition(PosDirection startPos) {
return this.logicX == startPos.logicX() && this.logicY == startPos.logicY() && return this.logicX == startPos.logicX() && this.logicY == startPos.logicY() &&
PathUtils.getDirectionByArmDirection(this.direction) == startPos.direction(); 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 move = 0;
// 载货
public static final short load = 1; 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 charge = 3;
// 移载取放货
public static final short transplantLoadAndUnload = 4; public static final short transplantLoadAndUnload = 4;
// 滚轮取放货
public static final short rollerLoadAndUnload = 5; public static final short rollerLoadAndUnload = 5;
} }
private static class CPickMode { public static class CPickMode {
// 无动作
public static final short normal = 0; public static final short normal = 0;
// 载货
public static final short load = 1; public static final short load = 1;
// 卸货
public static final short unload = 2; public static final short unload = 2;
// 调高
public static final short adjustHeight = 3; public static final short adjustHeight = 3;
// 调高准备取货
public static final short adjustHeightToLoad = 5; public static final short adjustHeightToLoad = 5;
// 调高准备卸货
public static final short adjustHeightToUnload = 6; public static final short adjustHeightToUnload = 6;
} }

10
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.galaxis.rcs.amr.sendEntity.RcsConfigMessage;
import com.yvan.logisticsModel.LogisticsRuntime; import com.yvan.logisticsModel.LogisticsRuntime;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.clever.core.json.JsonWrapper;
import java.util.*; import java.util.*;
@ -10,7 +11,7 @@ import java.util.*;
* 侧叉式AGV执行器 * 侧叉式AGV执行器
*/ */
@Slf4j @Slf4j
public class PtrAgvItem extends AmrAgvItem { public abstract class PtrAgvItem extends AmrAgvItem {
public PtrAgvItem(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) { public PtrAgvItem(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) {
super(logisticsRuntime, raw); super(logisticsRuntime, raw);
@ -27,4 +28,11 @@ public class PtrAgvItem extends AmrAgvItem {
content.MqRetryTime = 3; content.MqRetryTime = 3;
return content; return content;
} }
@Override
public void handelDeviceTask(List<AmrDeviceTask> deviceTaskList) {
deviceTaskQueue.addAll(deviceTaskList);
String json = JsonWrapper.toJson(deviceTaskList);
log.info("ptr-deviceTaskList: {}", json);
}
} }

14
servo/src/main/java/com/galaxis/rcs/amr/PtrConnectorThread.java

@ -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);
}
}

12
servo/src/main/java/com/galaxis/rcs/connector/amr/cl2/Cl2Item.java

@ -1,11 +1,16 @@
package com.galaxis.rcs.connector.amr.cl2; package com.galaxis.rcs.connector.amr.cl2;
import com.galaxis.rcs.amr.AmrDeviceTask;
import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage; import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage;
import com.yvan.logisticsModel.LogisticsRuntime; import com.yvan.logisticsModel.LogisticsRuntime;
import com.galaxis.rcs.amr.PtrAgvItem; 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; import java.util.Map;
@Slf4j
public class Cl2Item extends PtrAgvItem { public class Cl2Item extends PtrAgvItem {
public Cl2Item(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) { public Cl2Item(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) {
@ -23,4 +28,11 @@ public class Cl2Item extends PtrAgvItem {
content.MqRetryTime = 3; content.MqRetryTime = 3;
return content; return content;
} }
@Override
public void handelDeviceTask(List<AmrDeviceTask> deviceTaskList) {
deviceTaskQueue.addAll(deviceTaskList);
String json = JsonWrapper.toJson(deviceTaskList);
log.info("cl-deviceTaskList: {}", json);
}
} }

15
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.fasterxml.jackson.core.JsonProcessingException;
import com.galaxis.rcs.amr.sendEntity.RcsTaskMessage; import com.galaxis.rcs.amr.sendEntity.RcsTaskMessage;
import com.galaxis.rcs.amr.AmrMessageHandler; import com.galaxis.rcs.amr.AmrMessageHandler;
import com.galaxis.rcs.connector.amr.AmrDeviceConnector;
import com.yvan.logisticsModel.LogisticsRuntime; import com.yvan.logisticsModel.LogisticsRuntime;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.mqttv5.common.MqttException; import org.eclipse.paho.mqttv5.common.MqttException;
@ -11,19 +12,9 @@ import org.eclipse.paho.mqttv5.common.MqttException;
* CL2 车型报文推送 * CL2 车型报文推送
*/ */
@Slf4j @Slf4j
public class Fm600DeviceConnector { public class Fm600DeviceConnector extends AmrDeviceConnector {
private final AmrMessageHandler amrMessageHandler;
public Fm600DeviceConnector(LogisticsRuntime runtime) { 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);
}
} }

26
servo/src/main/java/com/galaxis/rcs/connector/amr/fm600/Fm600Item.java

@ -1,12 +1,17 @@
package com.galaxis.rcs.connector.amr.fm600; package com.galaxis.rcs.connector.amr.fm600;
import com.galaxis.rcs.amr.AmrAgvItem; import com.galaxis.rcs.amr.AmrAgvItem;
import com.galaxis.rcs.amr.AmrDeviceTask;
import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage; import com.galaxis.rcs.amr.sendEntity.RcsConfigMessage;
import com.yvan.logisticsModel.LogisticsRuntime; import com.yvan.logisticsModel.LogisticsRuntime;
import com.galaxis.rcs.amr.PtrAgvItem; 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; import java.util.Map;
@Slf4j
public class Fm600Item extends AmrAgvItem { public class Fm600Item extends AmrAgvItem {
public Fm600Item(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) { public Fm600Item(LogisticsRuntime logisticsRuntime, Map<String, Object> raw) {
@ -24,4 +29,25 @@ public class Fm600Item extends AmrAgvItem {
content.MqRetryTime = 3; content.MqRetryTime = 3;
return content; return content;
} }
@Override
public void handelDeviceTask(List<AmrDeviceTask> 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);
}
} }

2
servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java

@ -332,7 +332,7 @@ public class LogisticsRuntime {
case "cl3": case "cl3":
case "clx": case "clx":
case "cs1": case "cs1":
item = new PtrAgvItem(this, itemObject); item = new Cl2Item(this, itemObject);
this.executorItemMap.put(item.getId(), (ExecutorItem) item); this.executorItemMap.put(item.getId(), (ExecutorItem) item);
break; break;
case "fm600": case "fm600":

2
servo/src/main/resources/application-prod.yml

@ -11,7 +11,7 @@ app:
root-path: '/home/galaxis/.jenkins/workspace/yvan-lcc-bench' root-path: '/home/galaxis/.jenkins/workspace/yvan-lcc-bench'
lcc: lcc:
location: './lcc-map' location: '/home/galaxis/.jenkins/workspace/yvan-lcc-bench/lcc-map'
autoStart: autoStart:
# - projectUuid: tw_test # - projectUuid: tw_test
# envId: 1 # envId: 1

Loading…
Cancel
Save