Browse Source

嘉兴测试

jx-test
yuliang 5 months ago
parent
commit
2539b03c71
  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

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

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.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<String, Object> raw) {
super(logisticsRuntime, raw);
@ -27,4 +28,11 @@ public class PtrAgvItem extends AmrAgvItem {
content.MqRetryTime = 3;
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;
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<String, Object> raw) {
@ -23,4 +28,11 @@ public class Cl2Item extends PtrAgvItem {
content.MqRetryTime = 3;
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.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);
}
}

26
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<String, Object> raw) {
@ -24,4 +29,25 @@ public class Fm600Item extends AmrAgvItem {
content.MqRetryTime = 3;
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 "clx":
case "cs1":
item = new PtrAgvItem(this, itemObject);
item = new Cl2Item(this, itemObject);
this.executorItemMap.put(item.getId(), (ExecutorItem) item);
break;
case "fm600":

Loading…
Cancel
Save