package com.zy.core.model.protocol;
|
|
import com.zy.core.enums.LiftProtocolStatusType;
|
import com.zy.core.model.command.LiftAssignCommand;
|
import lombok.Data;
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* 提升机
|
*/
|
@Slf4j
|
@Data
|
public class LiftProtocol {
|
|
/**
|
* 提升机号
|
*/
|
private Short liftNo;
|
|
/**
|
* 任务号
|
*/
|
private Short taskNo = 0;
|
|
/**
|
* 四向穿梭车号
|
*/
|
private Short shuttleNo = 0;
|
|
/**
|
* 当前提升机状态(内部自我维护)
|
*/
|
private Integer protocolStatus = 1;
|
|
/**
|
* 当前提升机状态枚举
|
*/
|
private LiftProtocolStatusType protocolStatusType = LiftProtocolStatusType.IDLE;
|
|
/**
|
* 模式
|
*/
|
private Boolean model;
|
|
/**
|
* 忙闲
|
*/
|
private Boolean busy;
|
|
/**
|
* 前超限
|
*/
|
private Boolean frontOverrun;
|
|
/**
|
* 后超限
|
*/
|
private Boolean backOverrun;
|
|
/**
|
* 左超限
|
*/
|
private Boolean leftOverrun;
|
|
/**
|
* 右超限
|
*/
|
private Boolean rightOverrun;
|
|
/**
|
* 超高
|
*/
|
private Boolean overHeight;
|
|
/**
|
* 超重
|
*/
|
private Boolean overWeight;
|
|
/**
|
* 有托盘
|
*/
|
private Boolean hasTray;
|
|
/**
|
* 有小车
|
*/
|
private Boolean hasCar;
|
|
/**
|
* 设备故障
|
*/
|
private Boolean deviceError;
|
|
/**
|
* 任务地址
|
*/
|
private Short taskAddress;
|
|
/**
|
* 目的地址
|
*/
|
private Short distAddress;
|
|
/**
|
* 已完成的任务号
|
*/
|
private Short completeTaskNo;
|
|
/**
|
* 层
|
*/
|
private Short lev;
|
|
/**
|
* 作业标记
|
*/
|
private Boolean pakMk = true;
|
|
/**
|
* 任务命令
|
*/
|
private LiftAssignCommand assignCommand;
|
|
/**
|
* 设置提升机状态
|
*/
|
public void setProtocolStatus(Integer status) {
|
this.protocolStatus = status;
|
this.protocolStatusType = LiftProtocolStatusType.get(status);
|
}
|
|
/**
|
* 设置提升机状态
|
*/
|
public void setProtocolStatus(LiftProtocolStatusType status) {
|
this.protocolStatus = status.id;
|
this.protocolStatusType = status;
|
}
|
|
// 是否处于空闲待命状态
|
public Boolean isIdle(Short taskNo) {
|
if(this.taskNo == null
|
|| this.busy == null
|
|| this.model == null
|
|| this.deviceError == null
|
|| this.pakMk == null
|
){
|
return false;
|
}
|
|
boolean res = (this.taskNo == 0 || this.taskNo.intValue() == taskNo.intValue())
|
&& !this.busy
|
&& this.model
|
&& this.pakMk.equals(true)
|
&& !this.deviceError
|
;
|
return res;
|
}
|
|
// 是否处于空闲待命状态
|
public Boolean isIdle() {
|
if(this.taskNo == null
|
|| this.busy == null
|
|| this.model == null
|
|| this.deviceError == null
|
|| this.pakMk == null
|
){
|
return false;
|
}
|
|
boolean res = this.taskNo == 0
|
&& !this.busy
|
&& this.model
|
&& this.pakMk.equals(true)
|
&& !this.deviceError
|
;
|
return res;
|
}
|
|
// 是否处于空闲待命状态,不判断任务号
|
public Boolean isIdleNoTask() {
|
if(this.taskNo == null
|
|| this.busy == null
|
|| this.model == null
|
|| this.deviceError == null
|
|| this.pakMk == null
|
){
|
return false;
|
}
|
|
boolean res = !this.busy
|
&& this.model
|
&& this.pakMk.equals(true)
|
&& !this.deviceError
|
;
|
return res;
|
}
|
|
|
}
|