|  |  |  | 
|---|
|  |  |  | liftProtocol.setTaskNo(assignCommand.getTaskNo()); | 
|---|
|  |  |  | switch (assignCommand.getTaskMode()) { | 
|---|
|  |  |  | case 1://上升一层 | 
|---|
|  |  |  | command.setRun((short) 1);//升降 | 
|---|
|  |  |  | command.setDistPosition(++lev); | 
|---|
|  |  |  | command = getLiftUpDownCommand(++lev);//获取提升机上升下降命令 | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2://下降一层 | 
|---|
|  |  |  | command.setRun((short) 1);//下降 | 
|---|
|  |  |  | command.setDistPosition(--lev); | 
|---|
|  |  |  | command = getLiftUpDownCommand(--lev);//获取提升机上升下降命令 | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3://有货正转 | 
|---|
|  |  |  | command.setRun((short) 6); | 
|---|
|  |  |  | command = getLiftTurnCommand(1);//获取提升机转动命令 | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4://有货反转 | 
|---|
|  |  |  | command.setRun((short) 3); | 
|---|
|  |  |  | command = getLiftTurnCommand(2);//获取提升机转动命令 | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5://复位 | 
|---|
|  |  |  | command.setRun((short) 0); | 
|---|
|  |  |  | command.setLiftLock(false); | 
|---|
|  |  |  | command = getResetCommand();//获取复位命令 | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //下发一条提升机解锁命令 | 
|---|
|  |  |  | LiftCommand liftCommand = new LiftCommand(); | 
|---|
|  |  |  | liftCommand.setRun((short) 0); | 
|---|
|  |  |  | liftCommand.setLiftNo(command.getLiftNo()); | 
|---|
|  |  |  | liftCommand.setLiftLock(false); | 
|---|
|  |  |  | if (write(liftCommand)) { | 
|---|
|  |  |  | LiftCommand unlockCommand = getUnlockCommand(command.getLiftNo()); | 
|---|
|  |  |  | if (write(unlockCommand)) { | 
|---|
|  |  |  | News.info("提升机状态已解锁,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取提升机解锁命令 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getUnlockCommand(Short liftNo) { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun((short) 0); | 
|---|
|  |  |  | command.setLiftNo(liftNo); | 
|---|
|  |  |  | command.setLiftLock(false); | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取复位命令 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getResetCommand() { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun((short) 0); | 
|---|
|  |  |  | command.setLiftLock(false); | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取提升机上升下降命令 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getLiftUpDownCommand(Short lev) { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun((short) 1);//升降 | 
|---|
|  |  |  | command.setDistPosition(lev); | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取提升机上升下降命令 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getLiftUpDownCommand(Short liftNo, Short taskNo, Short lev) { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun((short) 1);//升降 | 
|---|
|  |  |  | command.setLiftNo(liftNo);//提升机号 | 
|---|
|  |  |  | command.setTaskNo(taskNo);//任务号 | 
|---|
|  |  |  | command.setDistPosition(lev);//目标楼层1层 | 
|---|
|  |  |  | command.setLiftLock(true);//锁定提升机 | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取提升机转动命令,direction:1=》有货正转,2=》有货反转 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getLiftTurnCommand(Integer direction) { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun(direction == 1 ? (short) 6 : (short) 3); | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取提升机转动命令,direction:1=》有货正转,2=》有货反转 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public LiftCommand getLiftTurnCommand(Short liftNo, Short taskNo, Integer direction) { | 
|---|
|  |  |  | LiftCommand command = new LiftCommand(); | 
|---|
|  |  |  | command.setRun(direction == 1 ? (short) 6 : (short) 3); | 
|---|
|  |  |  | command.setLiftNo(liftNo);//提升机号 | 
|---|
|  |  |  | command.setTaskNo(taskNo);//任务号 | 
|---|
|  |  |  | command.setLiftLock(true);//锁定提升机 | 
|---|
|  |  |  | return command; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 初始化提升机 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void initLift() { | 
|---|