package com.zy.core.model.protocol;
|
|
import com.zy.asrs.entity.BasSte;
|
import com.zy.core.enums.SteHisTaskStatusType;
|
import com.zy.core.enums.SteLocaType;
|
import com.zy.core.enums.SteStatusType;
|
import lombok.Data;
|
|
/**
|
* Created by vincent on 2020/8/7
|
*/
|
@Data
|
public class SteProtocol {
|
|
/**
|
* 设备号
|
*/
|
private Short steNo;
|
|
/**
|
* 1 = 联机模式
|
* 0 = 脱机模式
|
*/
|
public Short mode;
|
|
/**
|
IDLE(0, "空闲"),
|
MOVING(1, "作业中"),
|
SOS(2, "报警"),
|
WAITING(3, "任务完成等待WCS确认"),
|
*/
|
public Short status;
|
|
public SteStatusType statusType;
|
|
/**
|
* 任务号
|
*/
|
public Short taskNo = 0;
|
|
/**
|
* 正在执行任务
|
*/
|
public Boolean execute;
|
|
/**
|
* 任务完成,等待WCS确认
|
*/
|
public Boolean waiting;
|
|
|
/**
|
* 异常码1
|
*/
|
public Short alarm;
|
|
|
/**
|
* 异常码2
|
*/
|
public Short alarm0;
|
|
/**
|
* 电池电量
|
*/
|
public Float charge = 0.0F;
|
|
/**
|
* 满电
|
*/
|
public Boolean fullCharge;
|
|
/**
|
* 低电量
|
*/
|
public Boolean lowCharge;
|
|
/**
|
* 电池馈电 0,欠电,1低电 2满电
|
*/
|
public Short feed;
|
|
/**
|
* 当前位置 1,近点,2远点,3A点,4B点
|
*/
|
public Short loca;
|
|
public SteLocaType locaType;
|
|
/**
|
* 近点距离
|
*/
|
public Double closer;
|
|
/**
|
* 当前速度
|
*/
|
public Double speed = 0.0D;
|
|
/**
|
* 高低位 0,低位,1高位
|
*/
|
public Short pos;
|
|
/**
|
* 有货 0,没货,1有货
|
*/
|
public Short load;
|
|
/**
|
* 在轨道上 0不在,1在
|
*/
|
public Short track;
|
|
/**
|
* 任务类型
|
*/
|
public Short taskType;
|
|
/**
|
* 排
|
*/
|
public Short row;
|
|
/**
|
* 列
|
*/
|
public Short bay;
|
|
/**
|
* 层
|
*/
|
public Short lev;
|
|
/**
|
* 过账指令任务号
|
*/
|
public Integer hisTaskNo;
|
|
/**
|
* 过账指令状态
|
* 0初始 1执行完成 2删除
|
*/
|
public Short hisTaskStatus;
|
|
public SteHisTaskStatusType hisTaskStatusType;
|
|
/**
|
* 盘点数量
|
*/
|
public Short checkQty;
|
|
/**
|
* 就绪状态 0未就绪 1就绪
|
*/
|
public Short ready;
|
|
/**
|
* 打开充电桩号
|
*/
|
public Short chargeNo;
|
|
/**
|
* 心跳指令 1-2每秒切换一次
|
*/
|
public Short heart;
|
|
/**
|
* 堆垛机禁止运行 1运行,0禁止
|
*/
|
public Short crnStopRun;
|
|
/**
|
* 堆垛机禁止伸叉 1运行,0禁止
|
*/
|
public Short crnStopFork;
|
|
/**
|
* 堆垛机搬移允许 0不允许 1允许
|
*/
|
public Short crnAllowRun;
|
|
public void setStatus(Short status){
|
this.status = status;
|
this.statusType = SteStatusType.get(status);
|
}
|
|
public void setStatus(SteStatusType type){
|
this.statusType = type;
|
this.status = SteStatusType.get(type).id.shortValue();
|
}
|
|
public void setLoca(Short loca){
|
this.loca = loca;
|
this.locaType = SteLocaType.get(loca);
|
}
|
|
public void setLoca(SteLocaType type){
|
this.locaType = type;
|
this.loca = SteLocaType.get(type).id.shortValue();
|
}
|
|
public void setHisTaskStatus(Short hisTaskStatus){
|
this.hisTaskStatus = hisTaskStatus;
|
this.hisTaskStatusType = SteHisTaskStatusType.get(hisTaskStatus);
|
}
|
|
public void setHisTaskStatus(SteHisTaskStatusType type){
|
this.hisTaskStatusType = type;
|
this.hisTaskStatus = SteHisTaskStatusType.get(type).id.shortValue();
|
}
|
|
/**
|
* 最近一次入出库类型
|
* I:入库
|
* O:出库
|
*/
|
private String lastIo = "I";
|
|
private String pakMk = "-";
|
|
public BasSte toSqlModel(BasSte basSte){
|
if (alarm!=null) {
|
basSte.setSteErr(alarm.longValue());
|
}
|
basSte.setWrkNo(taskNo.intValue());
|
return basSte;
|
}
|
|
// 是否处于空闲待命状态
|
public Boolean isIdle() {
|
return this.statusType.equals(SteStatusType.IDLE)
|
&& this.pakMk.equals("N")
|
&& !isAlarm();
|
}
|
|
// 是否处于报警状态
|
public Boolean isAlarm() {
|
return this.alarm > 0;
|
}
|
|
}
|