| | |
| | | import com.ard.work.component.netty.command.wayline.*; |
| | | import com.ard.work.component.netty.handler.ErrorCodeEnum; |
| | | import com.ard.work.component.netty.protobuf.TelemetryDataPB; |
| | | import com.ard.work.component.websocket.utils.WebSocketUtil; |
| | | import com.ard.work.domain.cache.UavSignalInfoCache; |
| | | import com.ard.work.domain.cache.UavStateCache; |
| | | import com.ard.work.domain.cache.UavTelemetryDataCache; |
| | |
| | | import com.ard.work.domain.dto.wayline.*; |
| | | import com.ard.work.domain.entity.ArdDroneInfo; |
| | | import com.ard.work.domain.entity.ArdServerInfo; |
| | | import com.ard.work.domain.message.BaseMessage; |
| | | import com.ard.work.domain.message.ServerReplyMessage; |
| | | import com.ard.work.domain.message.UavControlType; |
| | | import com.ard.work.domain.receiver.*; |
| | | import com.ard.work.service.IArdDroneInfoService; |
| | |
| | | */ |
| | | @Override |
| | | public List<BoxInfoReceiver> getBoxList() { |
| | | List<ArdServerInfo> ardServerInfos = ardServerService.selectArdServerInfoList(new ArdServerInfo()); |
| | | List<ArdServerInfo> ardServerInfos = ardServerService.selectArdServerInfoList(new ArdServerInfo() {{ setUseDataScope(false); }}); |
| | | return getBoxList(ardServerInfos); |
| | | } |
| | | |
| | |
| | | @Override |
| | | public List<BoxInfoReceiver> getBoxList(String serverId) { |
| | | TyHttpCommonReceiver<List<BoxInfoReceiver>> boxList = tyClient.getBoxList(serverId); |
| | | return boxList.getContent(); |
| | | return boxList == null ? null : boxList.getContent(); |
| | | } |
| | | |
| | | /** |
| | |
| | | ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxHistoryDTO.getBoxSn()); |
| | | TyHttpCommonReceiver<List<BoxHistoryReceiver>> boxHistory = tyClient.getBoxHistory(ardDroneInfo.getServerId(), |
| | | boxHistoryDTO); |
| | | return boxHistory.getContent(); |
| | | return boxHistory == null ? null : boxHistory.getContent(); |
| | | } |
| | | |
| | | /** |
| | |
| | | ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxPhotosDTO.getBoxSn()); |
| | | TyHttpCommonReceiver<List<BoxPhotosReceiver>> boxPhotos = tyClient.getBoxPhotos(ardDroneInfo.getServerId(), |
| | | boxPhotosDTO); |
| | | return boxPhotos.getContent(); |
| | | return boxPhotos == null ? null : boxPhotos.getContent(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public UavState getUavState(String boxSn) { |
| | | return UavStateCache.getUavState(boxSn); |
| | | return UavStateCache.get(boxSn); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public TelemetryData getUavTelemetryData(String boxSn) { |
| | | return UavTelemetryDataCache.getUavTelemetryData(boxSn); |
| | | return UavTelemetryDataCache.get(boxSn); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public SignalInfo getSignalInfo(String boxSn) { |
| | | return UavSignalInfoCache.getUavSignalInfo(boxSn); |
| | | return UavSignalInfoCache.get(boxSn); |
| | | } |
| | | |
| | | /** |
| | |
| | | case (byte) 0xA8: |
| | | // 处理无人机状态消息 |
| | | UavStateCmd uavStateCmd = (UavStateCmd) tyCommand; |
| | | UavStateCache.putUavState(uavStateCmd.getUavState()); |
| | | UavStateCache.put(uavStateCmd.getUavState()); |
| | | //logPrint("无人机状态", uavStateCmd.getUavState().getBoxSn()); |
| | | // WebSocketUtil.sendMessageAll(uavStateCmd.getUavState()); |
| | | break; |
| | | case (byte) 0xA9: |
| | | // 处理无人机遥测消息 |
| | | UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand; |
| | | UavTelemetryDataCache.putUavTelemetryData(uavTelemetryDataCmd.getTelemetryData()); |
| | | UavTelemetryDataCache.put(uavTelemetryDataCmd.getTelemetryData()); |
| | | //logPrint("无人机遥测", uavTelemetryDataCmd.getTelemetryData().getBoxSn()); |
| | | //WebSocketUtil.sendMessageAll(uavTelemetryDataCmd.getTelemetryData()); |
| | | break; |
| | |
| | | case (byte) 0x0C: |
| | | // 处理无人机信道质量数据 |
| | | SignalInfoCmd signalInfoCmd = (SignalInfoCmd) tyCommand; |
| | | UavSignalInfoCache.putUavSignalInfoCache(signalInfoCmd.getSignalInfo()); |
| | | UavSignalInfoCache.put(signalInfoCmd.getSignalInfo()); |
| | | //logPrint("无人机信道质量", signalInfoCmd.getSignalInfo().getBoxSn()); |
| | | break; |
| | | case (byte) 0xD1: |
| | |
| | | |
| | | //公共日志打印 |
| | | private void logPrint(String message, Object obj) { |
| | | log.debug("收到{}回复{}", message, obj); |
| | | String text = String.format("收到%s回复 %s", message, obj); |
| | | ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build(); |
| | | WebSocketUtil.sendMessage("reply", serverReplyMessage); |
| | | log.debug(text); |
| | | } |
| | | |
| | | //公共日志打印 |
| | | private void logPrint(String message, byte result, Integer errorCode) { |
| | | log.info("收到{}回复:{} 错误码:{}【{}】", |
| | | String text = String.format( |
| | | "收到%s回复 状态码:%d【%s】", |
| | | message, |
| | | ByteUtils.byteToHex(result), |
| | | //ByteUtils.byteToHex(result), |
| | | errorCode, |
| | | ErrorCodeEnum.getDescByCode(errorCode)); |
| | | ErrorCodeEnum.getDescByCode(errorCode) |
| | | ); |
| | | ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build(); |
| | | WebSocketUtil.sendMessage("reply", serverReplyMessage); |
| | | log.debug(text); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送消息 |
| | | * 发送tcp消息 |
| | | */ |
| | | private void sendMessage(String key, BaseCmd msg) { |
| | | TcpClientUtil.sendMessage(key, msg); |