| | |
| | | @Resource |
| | | private RedisCache redisCache; |
| | | |
| | | /* ===================== 1️⃣ 申请控制 ===================== */ |
| | | |
| | | /** |
| | | * 申请控制 |
| | | */ |
| | | public void sendControlRequest(Long controllerId, String boxSn, String type, Long requesterId) { |
| | | |
| | | SysUser requester = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + requesterId); |
| | |
| | | WebSocketUtil.sendMessage(controllerId, JSON.toJSONString(base)); |
| | | } |
| | | |
| | | /* ===================== 2️⃣ 同意控制 ===================== */ |
| | | |
| | | /** |
| | | * 同意控制 |
| | | */ |
| | | public void sendControlApproval(Long requesterId, String boxSn, String type, Long controllerId) { |
| | | |
| | | SysUser controller = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + controllerId); |
| | |
| | | WebSocketUtil.sendMessage(requesterId, JSON.toJSONString(base)); |
| | | } |
| | | |
| | | /* ===================== 3️⃣ 拒绝控制 ===================== */ |
| | | |
| | | /** |
| | | * 拒绝控制 |
| | | */ |
| | | public void sendControlRejection(Long requesterId, String boxSn, String type, Long controllerId) { |
| | | |
| | | SysUser controller = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + controllerId); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 发送控制释放通知 |
| | | * 控制权接管 |
| | | */ |
| | | public void sendControlRelease(String boxSn, String type, Long operatorId) { |
| | | SysUser operator = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + operatorId); |
| | | |
| | | UavControlMessage message = new UavControlMessage(); |
| | | message.setBoxSn(boxSn); |
| | | message.setType(type); |
| | | message.setAction("release"); |
| | | message.setOperatorId(operatorId); |
| | | message.setOperator(operator); |
| | | |
| | | BaseMessage<UavControlMessage> baseMessage = new BaseMessage<>("control", message); |
| | | WebSocketUtil.sendMessageAll(JSON.toJSONString(baseMessage)); |
| | | } |
| | | |
| | | /* ===================== 4️⃣ 控制权接管 ===================== */ |
| | | |
| | | public void sendControlTakeover(Long oldControllerId, Long newControllerId, String boxSn, String type) { |
| | | |
| | | SysUser newController = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + newControllerId); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 控制权释放 |
| | | */ |
| | | public void sendControlRelease(String boxSn, String type, Long operatorId) { |
| | | SysUser operator = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + operatorId); |
| | | |
| | | UavControlMessage message = new UavControlMessage(); |
| | | message.setBoxSn(boxSn); |
| | | message.setType(type); |
| | | message.setAction("release"); |
| | | message.setOperatorId(operatorId); |
| | | message.setOperator(operator); |
| | | |
| | | BaseMessage<UavControlMessage> baseMessage = new BaseMessage<>("control", message); |
| | | WebSocketUtil.sendMessageAll(JSON.toJSONString(baseMessage)); |
| | | } |
| | | |
| | | /** |
| | | * 获取指定设备的当前操作者信息 |
| | | * 该方法重写自父类,用于获取无人机和载荷的当前控制者用户ID |
| | | * |