| | |
| | | try { |
| | | readStatus(); |
| | | |
| | | //提升机处于运行状态,将标记置为true |
| | | //提升机处于运行状态,将标记置为false |
| | | if (liftProtocol.getBusy()) { |
| | | liftProtocol.setPakMk(true); |
| | | liftProtocol.setPakMk(false); |
| | | } |
| | | |
| | | //提升机处于未运行、就绪、标记true、有任务号 |
| | | if (!liftProtocol.getBusy() |
| | | && liftProtocol.getPakMk() |
| | | && !liftProtocol.getPakMk() |
| | | && liftProtocol.getTaskNo() != 0) { |
| | | //还有未完成的命令 |
| | | executeWork(liftProtocol.getTaskNo()); |
| | |
| | | //已完成任务号 |
| | | liftProtocol.setCompleteTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6)); |
| | | //当前楼层 |
| | | liftProtocol.setLev(siemensS7Net.getByteTransform().TransInt16(result1.Content, 8)); |
| | | short lev = siemensS7Net.getByteTransform().TransInt16(result1.Content, 8); |
| | | if (lev >= 7 && lev <= 9) { |
| | | lev -= 2; |
| | | } else if (lev >= 12 && lev <= 14) { |
| | | lev -= 4; |
| | | } |
| | | liftProtocol.setLev(lev); |
| | | |
| | | //将提升机状态保存至数据库 |
| | | BasLiftService liftService = SpringUtils.getBean(BasLiftService.class); |
| | |
| | | return false; |
| | | } |
| | | |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING); |
| | | News.info("提升机命令下发成功,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | |
| | | //将标记置为false(防止重发) |
| | | liftProtocol.setPakMk(false); |
| | | //将标记置为true(防止重发) |
| | | liftProtocol.setPakMk(true); |
| | | |
| | | //保存数据到数据库做流水 |
| | | BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class); |
| | |
| | | null, |
| | | null, |
| | | JSON.toJSONString(command), |
| | | JSON.toJSONString(commandArr), |
| | | JSON.toJSONString(liftProtocol) |
| | | ); |
| | | liftOptService.insert(opt); |
| | |
| | | News.info("提升机任务执行下发完成等待执行结束,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | } |
| | | |
| | | if (redisCommand.getAssignCommand().getTaskMode() == NyLiftTaskModelType.RESET.id.shortValue()) { |
| | | //复位命令 |
| | | //工作号清零 |
| | | liftProtocol.setTaskNo((short) 0); |
| | | //令牌清零 |
| | | liftProtocol.setToken(0); |
| | | //设置提升机为空闲状态 |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); |
| | | //任务指令清零 |
| | | liftProtocol.setAssignCommand(null); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |