aix
2024-08-13 128183e176aab3003a04b517b56162ba2ef780b0
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
@@ -331,6 +331,10 @@
            waylineJobQueryParam.setDockSn(deviceDTO.getDeviceSn());
            WaylineJobEntity latestJob = waylineJobService.getLatestJob(workspaceId, waylineJobQueryParam);
            deviceDTO.setLatestWaylineJob(latestJob);
            deviceDTO.setOnlineStatus(true);
            OsdDockReceiver osdDockReceiver = (OsdDockReceiver) RedisOpsUtils.get("osd:" + deviceDTO.getDeviceSn());
            deviceDTO.setLatitude(osdDockReceiver!=null? osdDockReceiver.getLatitude():null);
            deviceDTO.setLongitude(osdDockReceiver!=null? osdDockReceiver.getLongitude():null);
        });
        return devicesList;
@@ -1181,14 +1185,14 @@
    }
    /**
     * Handles messages in the state topic about basic drone data.
     *
     * Note: Only the data of the drone payload is handled here. You can handle other data from the drone
     * according to your business needs.
     * @param deviceBasic   basic drone data
     * 处理关于基本无人机数据的状态主题的消息。
     * 注:这里只处理无人机有效载荷的数据。你可以处理无人机的其他数据
     * *根据您的业务需要。
     * @param deviceBasic   无人机基本数据
     */
    @ServiceActivator(inputChannel = ChannelName.INBOUND_STATE_BASIC, outputChannel = ChannelName.INBOUND_STATE_PAYLOAD)
    public List<DevicePayloadReceiver> stateBasic(DeviceBasicReceiver deviceBasic) {
        log.info("无人机数据的状态主题的消息--DeviceBasicReceiver:{}",deviceBasic);
        Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(deviceBasic.getDeviceSn());
        if (deviceOpt.isEmpty()) {
            return deviceBasic.getPayloads();
@@ -1198,6 +1202,7 @@
            return deviceBasic.getPayloads();
        }
        DeviceDTO dock = dockOpt.get();
        log.info("redis dockOpt:{}",dockOpt);
        if (!deviceBasic.getControlSource().equals(dock.getControlSource())) {
            dock.setControlSource(deviceBasic.getControlSource());
            deviceRedisService.setDeviceOnline(dock);