package com.example.agvcontroller.protocol;
|
|
/**
|
* 标识枚举
|
* Created by vincent on 2019-04-02
|
*/
|
public enum ProtocolType implements ICodedStatus {
|
|
// 下行 -------------------------------------------------------------------
|
|
PATH_COMMAND(0x01, "路径数据包", DirectionType.DOWN),
|
|
ACTION_COMMAND(0x02, "动作命令包", DirectionType.DOWN),
|
|
HEARTBEAT_COMMAND(0x03, "心跳包", DirectionType.DOWN),
|
|
FAULT_CLEAR_COMMAND(0x04, "故障命令包", DirectionType.DOWN),
|
|
ACTIVATION_COMMAND(0x80, "激活包", DirectionType.DOWN),
|
|
LOGIN_ACK(0xF0, "登录应答包", DirectionType.DOWN),
|
|
ACTION_SUCCESS_ACK(0xA1, "动作完成成功应答", DirectionType.DOWN),
|
|
ACTION_FAIL_ACK(0xA0, "动作完成失败应答", DirectionType.DOWN),
|
|
// 上行 -------------------------------------------------------------------
|
|
PATH_ACK(0x01, "路径应答包", DirectionType.UP),
|
|
COMMAND_ACK(0x02, "命令应答包", DirectionType.UP),
|
|
ACTION_COMPLETE(0x11, "动作完成包", DirectionType.UP),
|
|
DATA_CODE_REPORT(0x12, "有码实时数据包", DirectionType.UP),
|
|
DATA_WITHOUT_CODE_REPORT(0x13, "无码实时数据包", DirectionType.UP),
|
|
HEARTBEAT_REPORT(0x03, "心跳包", DirectionType.UP),
|
|
FAULT_REPORT(0x04, "故障数据包", DirectionType.UP),
|
|
HANDLE_FALUT_ACK(0x14, "故障清除应答包", DirectionType.UP),
|
|
SILO_REPORT(0x70, "料仓信息包", DirectionType.UP),
|
|
LOGIN_REPORT(0xF0, "机器人登陆数据包", DirectionType.UP),
|
|
;
|
|
private final int code; // 编码
|
private final String des; // 描述
|
private final DirectionType direction;
|
|
ProtocolType(int code, String des, DirectionType direction) {
|
this.code = code;
|
this.des = des;
|
this.direction = direction;
|
}
|
|
public int getCode() {
|
return code;
|
}
|
|
public String getDes() {
|
return des;
|
}
|
|
public DirectionType getDirection() {
|
return direction;
|
}
|
|
public static ProtocolType getByCode(int code, DirectionType direction) {
|
for (ProtocolType type : ProtocolType.values()) {
|
if (type.getCode() == code && type.getDirection() == direction) {
|
return type;
|
}
|
}
|
return null;
|
}
|
|
}
|