package com.zy.acs.common.domain;
|
|
import com.zy.acs.framework.exception.CoolException;
|
import com.zy.acs.common.domain.protocol.IActionBody;
|
import com.zy.acs.common.enums.AgvActionCmdType;
|
import lombok.Data;
|
|
import java.io.Serializable;
|
|
/**
|
* 路径包 - 路径点
|
* Created by vincent on 2023/3/14
|
*/
|
@Data
|
public class AgvActionItem<T extends IActionBody> implements Serializable {
|
|
private static final long serialVersionUID = -6988765550778795176L;
|
|
// 地面码
|
private String qrCode;
|
|
// 动作码
|
private AgvActionCmdType actionCmdType;
|
|
// 属性值
|
private int val;
|
|
// 动作参数
|
private T actionBody;
|
|
public AgvActionItem() {
|
}
|
|
public AgvActionItem(Class<T> clazz) {
|
try {
|
actionBody = clazz.newInstance();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
this.actionCmdType = AgvActionCmdType.find(actionBody.getClass());
|
if (null == actionCmdType) {
|
throw new CoolException(clazz.getName() + "检索 AgvActionCmdType 枚举失败");
|
}
|
}
|
|
public AgvActionItem<T> setQrCode(String qrCode) {
|
this.qrCode = qrCode;
|
return this;
|
}
|
|
public AgvActionItem<T> setActionCmdType(AgvActionCmdType actionCmdType) {
|
this.actionCmdType = actionCmdType;
|
return this;
|
}
|
|
public AgvActionItem<T> setVal(int val) {
|
this.val = val;
|
return this;
|
}
|
|
public AgvActionItem<T> bodySync(DataSupport<T> dataSupport) {
|
dataSupport.sync(this.actionBody);
|
return this;
|
}
|
|
}
|