zy-acs-common/src/main/java/com/zy/acs/common/hk/action/HkAction.java
@@ -1,9 +1,11 @@ package com.zy.acs.common.hk.action; import com.alibaba.fastjson.annotation.JSONField; import com.zy.acs.common.hk.action.type.HkActionType; import com.zy.acs.common.hk.action.type.HkBlockingType; import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.List; @@ -13,20 +15,26 @@ @Data public class HkAction implements Serializable { @Serial private static final long serialVersionUID = 9208981967595060577L; // 动作名称 @JSONField(ordinal = 1) private HkActionType actionType; // 动作 ID @JSONField(ordinal = 2) private String actionId; // 动作描述 @JSONField(ordinal = 3) private String actionDescription; // 动作阻塞类型:NONE、SOFT、HARD @JSONField(ordinal = 4) private HkBlockingType blockingType; // 动作参数数组 @JSONField(ordinal = 5) private List<HkActionParameter> actionParameters; } zy-acs-common/src/main/java/com/zy/acs/common/hk/action/HkActionParameter.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.action; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.io.Serializable; @@ -13,8 +14,10 @@ private static final long serialVersionUID = -6011550732051385556L; // 参数键 @JSONField(ordinal = 1) private String key; // 参数值 @JSONField(ordinal = 2) private Object value; } zy-acs-common/src/main/java/com/zy/acs/common/hk/base/HkMessageHeader.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.base; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.io.Serial; @@ -15,17 +16,22 @@ private static final long serialVersionUID = 2608659928820261100L; // 消息头 ID @JSONField(ordinal = 1) private Long headerId; // 消息时间戳,ISO 8601 UTC 格式 @JSONField(ordinal = 2) private String timestamp; // 协议版本号 @JSONField(ordinal = 3) private String version; // AGV 制造商 @JSONField(ordinal = 4) private String manufacturer; // AGV 车号 @JSONField(ordinal = 5) private String serialNumber; } zy-acs-common/src/main/java/com/zy/acs/common/hk/order/HkNodePosition.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.order; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.io.Serializable; @@ -13,12 +14,15 @@ private static final long serialVersionUID = 2188583893729134558L; // 节点在地图坐标系上的 x 坐标,单位 m @JSONField(ordinal = 1) private Double x; // 节点在地图坐标系上的 y 坐标,单位 m @JSONField(ordinal = 2) private Double y; // 节点在地图坐标系上的绝对角度,单位 rad @JSONField(ordinal = 3) private Double theta; } zy-acs-common/src/main/java/com/zy/acs/common/hk/order/HkOrderEdge.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.order; import com.alibaba.fastjson.annotation.JSONField; import com.zy.acs.common.hk.action.HkAction; import lombok.Data; @@ -15,50 +16,66 @@ private static final long serialVersionUID = -2771742971185587954L; // 路径段唯一标识 @JSONField(ordinal = 1) private String edgeId; // 路径段编号,用于确定节点和路径段顺序 @JSONField(ordinal = 2) private Long sequenceId; // 路径段描述 @JSONField(ordinal = 3) private String edgeDescription; // 路径段是否被释放发布 @JSONField(ordinal = 4) private Boolean released; // 起始节点 ID @JSONField(ordinal = 5) private String startNodeId; // 终点节点 ID @JSONField(ordinal = 6) private String endNodeId; // 允许 AGV 在该路径段的最大速度 @JSONField(ordinal = 7) private Double maxSpeed; // AGV 在路径段上的朝向角度 @JSONField(ordinal = 8) private Double orientation; // 朝向类型,例如 GLOBAL、TANGENTIAL @JSONField(ordinal = 9) private String orientationType; // 是否允许旋转 @JSONField(ordinal = 10) private Boolean rotationAllowed; // 最大旋转速度 @JSONField(ordinal = 11) private Double maxRotationSpeed; // 车辆最大限高 @JSONField(ordinal = 12) private Double maxHeight; // 执行机构最低限高 @JSONField(ordinal = 13) private Double minHeight; // 执行机构姿态信息,待协议细化 @JSONField(ordinal = 14) private Object actuator; // 轨迹对象,待协议细化 @JSONField(ordinal = 15) private Object trajectory; // 路径上的动作列表 @JSONField(ordinal = 16) private List<HkAction> actions; } zy-acs-common/src/main/java/com/zy/acs/common/hk/order/HkOrderMessage.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.order; import com.alibaba.fastjson.annotation.JSONField; import com.zy.acs.common.hk.base.HkMessageHeader; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,17 +17,22 @@ private static final long serialVersionUID = 1000719280604107938L; // 任务 ID @JSONField(ordinal = 6) private String orderId; // 任务更新 ID @JSONField(ordinal = 7) private Long orderUpdateId; // 区域地图集唯一标识 @JSONField(ordinal = 8) private String zoneSetId; // 任务节点数组 @JSONField(ordinal = 9) private List<HkOrderNode> nodes; // 任务路径段数组 @JSONField(ordinal = 10) private List<HkOrderEdge> edges; } zy-acs-common/src/main/java/com/zy/acs/common/hk/order/HkOrderNode.java
@@ -1,5 +1,6 @@ package com.zy.acs.common.hk.order; import com.alibaba.fastjson.annotation.JSONField; import com.zy.acs.common.hk.action.HkAction; import lombok.Data; @@ -15,35 +16,46 @@ private static final long serialVersionUID = -6654224020581088208L; // 节点唯一标识 @JSONField(ordinal = 1) private String nodeId; // 节点编号,用于确定节点和路径段顺序 @JSONField(ordinal = 2) private Long sequenceId; // 节点描述 @JSONField(ordinal = 3) private String nodeDescription; // 节点是否被释放发布 @JSONField(ordinal = 4) private Boolean released; // 节点位置 @JSONField(ordinal = 5) private HkNodePosition nodePosition; // 节点 xy 方向精度范围,单位 m @JSONField(ordinal = 6) private Double allowedDeviationXY; // 节点角度精度范围,单位 rad @JSONField(ordinal = 7) private Double allowedDeviationTheta; // 节点所在地图 ID @JSONField(ordinal = 8) private String mapId; // 地图描述 @JSONField(ordinal = 9) private String mapDescription; // 执行机构姿态信息,待协议细化 @JSONField(ordinal = 10) private Object actuator; // 节点上的动作列表 @JSONField(ordinal = 11) private List<HkAction> actions; }