| | |
| | | import com.zy.asrs.wcs.rcs.cache.SlaveConnection; |
| | | import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; |
| | | import com.zy.asrs.wcs.rcs.entity.Device; |
| | | import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; |
| | | import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType; |
| | | import com.zy.asrs.wcs.rcs.model.enums.SlaveType; |
| | | import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol; |
| | | import com.zy.asrs.wcs.rcs.thread.LiftThread; |
| | |
| | | } |
| | | |
| | | //判断提升机是否空闲 |
| | | if (!liftThread.isIdle()) { |
| | | if (!liftThread.isDeviceIdle()) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | |
| | | if (commandStep != 0) { |
| | | LiftCommand command = commands.get(commandStep - 1); |
| | | |
| | | //目前没有判断,直接判定上一条指令完成 |
| | | command.setComplete(true); |
| | | if (command.getMode() == LiftCommandModeType.MOVE.id) { |
| | | //提升机升降 |
| | | if (liftProtocol.getLev() == command.getTargetLev()) { |
| | | command.setComplete(true); |
| | | } |
| | | } else if (command.getMode() == LiftCommandModeType.MOVE_CAR.id) { |
| | | //提升机升降小车 |
| | | if (liftProtocol.getLev() == command.getTargetLev()) { |
| | | command.setComplete(true); |
| | | } |
| | | } else if (command.getMode() == LiftCommandModeType.PALLET_INOUT.id) { |
| | | //托盘出入 |
| | | if (liftProtocol.getLev() == command.getTargetLev()) { |
| | | command.setComplete(true); |
| | | } |
| | | } else if (command.getMode() == LiftCommandModeType.RESET.id) { |
| | | //复位 |
| | | command.setComplete(true); |
| | | } else if (command.getMode() == LiftCommandModeType.LOCK.id) { |
| | | //复位 |
| | | command.setComplete(true); |
| | | } else if (command.getMode() == LiftCommandModeType.UNLOCK.id) { |
| | | //复位 |
| | | command.setComplete(true); |
| | | } |
| | | |
| | | // 更新redis数据 |
| | | redisUtil.set(DeviceRedisConstant.LIFT_WORK_FLAG + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand)); |
| | | redisUtil.set(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo, JSON.toJSONString(redisCommand)); |
| | | |
| | | if (!command.getComplete()) { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | //判断是否为最后一条命令且命令执行完成,抛出等待确认状态 |
| | | LiftCommand endCommand = commands.get(commands.size() - 1); |
| | | if (endCommand.getComplete()) { |
| | | News.info("提升机任务执行下发完成等待执行结束,提升机号={},任务数据={}", liftProtocol.getLiftNo(), JSON.toJSON(commands)); |
| | | |
| | | //对主线程抛出等待确认状态waiting |
| | | liftThread.setProtocolStatus(LiftProtocolStatusType.WAITING); |
| | | redisUtil.del(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo); |
| | | return false;//禁止再下发命令 |
| | | } |
| | | } |
| | |
| | | News.info("提升机命令下发成功,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | } |
| | | |
| | | redisUtil.del(DeviceRedisConstant.LIFT_WORK_FLAG + command.getTaskNo()); |
| | | liftThread.setProtocolStatus(LiftProtocolStatusType.WORKING); |
| | | commandStep++; |
| | | //更新redis数据 |
| | | redisCommand.setCommandStep(commandStep); |
| | | // 更新redis数据 |
| | | redisUtil.set(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo, JSON.toJSONString(redisCommand)); |
| | | return true; |
| | | } |
| | | |