package com.zy.core.model.protocol; import com.zy.asrs.entity.BasCrnp; import com.zy.core.enums.CrnForkPosType; import com.zy.core.enums.CrnLiftPosType; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.CrnStatusType; import lombok.Data; /** * Created by vincent on 2020/8/7 */ @Data public class CrnProtocol { private Integer crnNo; /** * 1 = 手动模式 * 2 = 自动模式 * 3 = 电脑模式 */ public Short mode; public CrnModeType modeType; /** * 1 = 急停 */ public Short eStop; /** * 异常码 */ public Short alarm; public Short alarmTwo; /** * 任务号 */ public Short taskNo = 0; public Short taskNoTwo = 0; /** * 堆垛机当前状态 * -1:未知 * 0:空闲,无任务 * 1:取货定位中 * 2:取货中 * 3:取货完成,放货定位中 * 4:放货中 * 5:回原点中 * 6:反原点 * 7:库位移位 * 90:任务完成等待WCS确认 * 99:报警 * 100:其他100 * 101:未知101 */ public Short status = -1; public Short statusTwo = -1; /** * 状态枚举 */ public CrnStatusType statusType; public CrnStatusType statusTypeTwo; /** * 堆垛机当前列号 */ public Short bay; public Short bayTwo; /** * 堆垛机当前层号 */ public Short level; public Short levelTwo; /** * 当前货叉位置 * 0 = 货叉原位 * 1 = 货叉在左侧 * 2 = 货叉在右侧 */ public Short forkPos; public Short forkPosTwo; public CrnForkPosType forkPosType; public CrnForkPosType forkPosTypeTwo; /** * 当前载货台位置 * 0 = 下定位 * 1 = 上定位 */ public Short liftPos; public Short liftPosTwo; public CrnLiftPosType liftPosType; public CrnLiftPosType liftPosTypeTwo; /** * 走行在定位 * 0 = 在定位 * 1 = 不在定位 */ public Short walkPos; public Short walkPosTwo; /** * 载货台有物 */ public Short loaded; public Short loadedTwo; private Short temp1; private CrnTemp1 crnTemp1; private Short temp2; private Short temp3; private Short temp4; /** * 异常1 */ private boolean[] error1; private CrnError1 crnError1; /** * 异常2 */ private boolean[] error2; private CrnError2 crnError2; /** * 异常3 */ private boolean[] error3; private CrnError3 crnError3; /** * 异常4 */ private boolean[] error4; private CrnError4 crnError4; /** * 异常5 */ private boolean[] error5; private CrnError5 crnError5; /** * 异常6 */ private boolean[] error6; private CrnError6 crnError6; /** * X行走线速度m/min */ private Float xSpeed; /** * Y行走线速度m/min */ private Float ySpeed; /** * Z行走线速度m/min */ private Float zSpeed; /** * 堆垛机累计走行距离km */ public Float xDistance; /** * 堆垛机累计升降距离km */ public Float yDistance; /** * 堆垛机累计走行时长h */ public Float xDuration; /** * 堆垛机累计升降时长h */ public Float yDuration; public void setMode(Short mode) { this.mode = mode; this.modeType = CrnModeType.get(mode); } public void setMode(CrnModeType type) { this.modeType = type; this.mode = CrnModeType.get(type).id.shortValue(); } public void setForkPos(Short forkPos) { this.forkPos = forkPos; this.forkPosType = CrnForkPosType.get(forkPos); } public void setForkPos(CrnForkPosType type) { this.forkPosType = type; this.forkPos = CrnForkPosType.get(type).id.shortValue(); } public void setForkPosTwo(Short forkPosTwo) { this.forkPosTwo = forkPosTwo; this.forkPosTypeTwo = CrnForkPosType.get(forkPosTwo); } public void setForkPosTwo(CrnForkPosType typeTwo) { this.forkPosTypeTwo = typeTwo; this.forkPosTwo = CrnForkPosType.get(typeTwo).id.shortValue(); } public void setLiftPos(Short liftPos) { this.liftPos = liftPos; this.liftPosType = CrnLiftPosType.get(liftPos); } public void setLiftPos(CrnLiftPosType type) { this.liftPosType = type; this.liftPos = CrnLiftPosType.get(type).id.shortValue(); } public void setLiftPosTwo(Short liftPosTwo) { this.liftPosTwo = liftPosTwo; this.liftPosTypeTwo = CrnLiftPosType.get(liftPosTwo); } public void setLiftPosTwo(CrnLiftPosType typeTwo) { this.liftPosTypeTwo = typeTwo; this.liftPosTwo = CrnLiftPosType.get(typeTwo).id.shortValue(); } public void setStatus(Short status){ this.status = status; this.statusType = CrnStatusType.get(status); } public void setStatusTwo(Short statusTwo){ this.statusTwo = statusTwo; this.statusTypeTwo = CrnStatusType.get(statusTwo); } public void setStatus(CrnStatusType type){ this.statusType = type; this.status = CrnStatusType.get(type).id.shortValue(); } public Short getTemp1() { return temp1; } public void setTemp1(Short temp1) { this.temp1 = temp1; } /** * 最近一次入出库类型 * I:入库 * O:出库 */ private String lastIo = "I"; public BasCrnp toSqlModel(BasCrnp basCrnp){ if (alarm!=null) { basCrnp.setCrnErr(alarm.longValue()); } basCrnp.setWrkNo(taskNo.intValue()); basCrnp.setWrkNoTwo(taskNoTwo.intValue()); basCrnp.setCrnStatusOne(status.intValue()); basCrnp.setCrnStatusTwo(statusTwo.intValue()); return basCrnp; } public void setxSpeed(Short xSpeed) { this.xSpeed = Float.valueOf(xSpeed); } public void setySpeed(Short ySpeed) { this.ySpeed = Float.valueOf(ySpeed); } public void setzSpeed(Short zSpeed) { this.zSpeed = Float.valueOf(zSpeed); } public void setxDistance(Short xDistance) { this.xDistance = Float.valueOf(xDistance); } public void setyDistance(Short yDistance) { this.yDistance = Float.valueOf(yDistance); } public void setxDuration(Short xDuration) { this.xDuration = Float.valueOf(xDuration); } public void setyDuration(Short yDuration) { this.yDuration = Float.valueOf(yDuration); } }