diff --git a/servo/build.gradle.kts b/servo/build.gradle.kts index 8f21f5c..4738706 100644 --- a/servo/build.gradle.kts +++ b/servo/build.gradle.kts @@ -18,6 +18,8 @@ dependencies { // api("org.clever:clever-task") // api("org.clever:clever-task-ext") api("org.clever:clever-js-graaljs") + api("org.eclipse.paho:org.eclipse.paho.mqttv5.client:1.2.5") + runtimeOnly("org.postgresql:postgresql") runtimeOnly("mysql:mysql-connector-java") runtimeOnly("com.oracle.database.jdbc:ojdbc8") diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2Connector.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2Connector.java index 96fd255..54a2dc8 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2Connector.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2Connector.java @@ -1,4 +1,21 @@ package com.galaxis.rcs.connector.cl2; public interface Cl2Connector { + // RCS发往CL2的指令 + + // 0 运输 + public int transport(); + + // 1 接货 + public int pickup(); + + // 2 卸货 + public int unload(); + + // 3 充电 + public int charge(); + + // 4:提升移载取货或卸货 + public int lift(); + } diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/Cmd10010.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/Cmd10010.java new file mode 100644 index 0000000..582c255 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/Cmd10010.java @@ -0,0 +1,60 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import java.util.List; + +public class Cmd10010 { + // 作业序号 UInt32 + public long SeqNo; + // 作业类型 UInt8 0:运输 1:接货 2:卸货 3:充电 4:提升移栽取货或卸货 5:滚筒取货或卸货(双向作业) + public byte OperationType; + //充电桩朝向UseBriefLocation UInt8 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 + public byte ChargeDirection; + // 充电工位坐标和充电桩之间距离 UInt16 单位:mm + public int ChargeLocation; + // 目标货架编号 String 仅做校验使用(仅接货用) + public String StorageRacksNo; + // 小车起始X坐标 UInt16 + public int StartX; + // 小车起始Y坐标 UInt16 + public int StartY; + // 小车目标X坐标 UInt16 + public int EndX; + // 小车目标Y坐标 UInt16 + public int EndY; + // 任务是否立即执行 bool 默认为true + public boolean GoNow; + // 路径分段数 UInt8 + public short LinkCounts; + // 路径分段信息 + public List Links; + // AMR内置货位ID(仅对多层移栽有意义)UInt8 1~N + public byte BuiltinSlotNo; + // 提升移栽货物拣货模式 UInt8 0:不控制(无动作) 1:从货架上取货 2:将货物放到货架上 3:仅调整托盘高度(不进行取放货操作) 4:调整车身货物(仅供调试,RCS勿发送此命令) 5:仅调整载货台到取货高度,但是不动作 6:仅调整载货台到放货高度,但是不动作 + public byte PickMode; + // 目标货位相对于地面的绝对高度 UInt16 单位:mm + public int GoodsSlotHeight; + // 目标货位朝向 UInt8 朝向定义与充电桩朝向相同。 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 + public byte GoodsSlotDirection; + // 多机构^[1]^的拣货模式 UInt8[3] 数组形式,意义同"PickMode" + public byte[] MPickMode ; + // 多机构^[1]^的目标货位高度 UInt16[3] 单位:mm + public int[] MGoodsSlotHeight; + // 多机构^[1]^的目标货位朝向 UInt8[3] 朝向定义与充电桩朝向相同。 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 + public byte[] MGoodsSlotDirection; + // 多机构的目标货箱ID String[3] 仅做校验使用(仅接货用) + public String[] MStorageRacksNo; + // 滚筒1 运动操作 对于左右滚动的双滚筒机型,此滚筒为靠近车头的滚筒。 对于前后滚动的双滚筒机型,此滚筒为车身左侧的滚筒。 UInt8 0:不控制(无动作) 1:从货架上取货 2:将货物放到货架上 3:仅调整托盘高度(不进行取放货操作) 4:调整车身货物(仅供调试,RCS勿发送此命令) 5:仅调整载货台到取货高度,但是不动作 6:仅调整载货台到放货高度,但是不动作 + public byte Roll1Motion; + // 滚筒2 运动操作 对于左右滚动的双滚筒机型,此滚筒为靠近车尾的滚筒。 对于前后滚动的双滚筒机型,此滚筒为车身右侧的滚筒。 对于单滚筒机型,此参数无意义。 UInt8 0:不控制(无动作) 1:从货架上取货 2:将货物放到货架上 3:仅调整托盘高度(不进行取放货操作) 4:调整车身货物(仅供调试,RCS勿发送此命令) 5:仅调整载货台到取货高度,但是不动作 6:仅调整载货台到放货高度,但是不动作 + public byte Roll2Motion; + + static class Link { + //该段目标点X坐标 UInt16 逻辑单位,乘以一定系数才是物理距离 + public int X; + //该段目标点Y坐标 UInt16 逻辑单位,乘以一定系数才是物理距离 + public int Y; + // 该段行驶速度 Int16 mm/s + public int Speed; + + } +}