rain
2024-08-21 2db1aa88e8ab53096a936163d686b90d8e056a99
src/main/java/com/dji/sample/manage/service/IDeviceService.java
@@ -1,18 +1,23 @@
package com.dji.sample.manage.service;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.component.mqtt.model.CommonTopicReceiver;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.component.mqtt.model.CommonTopicResponse;
import com.dji.sample.component.websocket.config.ConcurrentWebSocketSession;
import com.dji.sample.manage.model.dto.DeviceDTO;
import com.dji.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import com.dji.sample.manage.model.dto.TopologyDeviceDTO;
import com.dji.sample.manage.model.enums.DeviceModeCodeEnum;
import com.dji.sample.manage.model.enums.DeviceSetPropertyEnum;
import com.dji.sample.manage.model.enums.DockModeCodeEnum;
import com.dji.sample.manage.model.param.DeviceQueryParam;
import com.dji.sample.manage.model.receiver.FirmwareVersionReceiver;
import com.dji.sample.manage.model.receiver.StatusGatewayReceiver;
import org.springframework.messaging.MessageHeaders;
import com.fasterxml.jackson.databind.JsonNode;
import org.springframework.messaging.Message;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
@@ -31,10 +36,10 @@
    /**
     * The device goes offline.
     * @param gatewaySn
     * @param gateway
     * @return Whether the offline is successful.
     */
    Boolean deviceOffline(String gatewaySn);
    Boolean deviceOffline(StatusGatewayReceiver gateway);
    /**
     * The aircraft goes offline.
@@ -64,6 +69,7 @@
    /**
     * Obtain device data according to different query conditions.
     * 根据不同的查询条件获取设备数据。
     * @param param query parameters
     * @return
     */
@@ -81,7 +87,7 @@
     * @param workspaceId
     * @return
     */
    List<DeviceDTO> getDevicesTopoForWeb(String workspaceId);
    List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String reserveId);
    /**
     * Set the remote controller and payloads information of the drone.
@@ -131,10 +137,9 @@
    /**
     * Handle messages from the osd topic.
     * @param topic     osd
     * @param payload
     * @param message     osd
     */
    void handleOSD(String topic, byte[] payload);
    void handleOSD(Message<?> message);
    /**
     * Update the device information.
@@ -150,24 +155,6 @@
    Boolean bindDevice(DeviceDTO device);
    /**
     * Handle dock binding status requests.
     * Note: If your business does not need to bind the dock to the organization,
     *       you can directly reply to the successful message without implementing business logic.
     * @param receiver
     * @param headers
     */
    void bindStatus(CommonTopicReceiver receiver, MessageHeaders headers);
    /**
     * Handle dock binding requests.
     * Note: If your business does not need to bind the dock to the organization,
     *       you can directly reply to the successful message without implementing business logic.
     * @param receiver
     * @param headers
     */
    void bindDevice(CommonTopicReceiver receiver, MessageHeaders headers);
    /**
     * Get the binding devices list in one workspace.
     * @param workspaceId
     * @param page
@@ -175,7 +162,7 @@
     * @param domain
     * @return
     */
    PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, String domain);
    PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain);
    /**
     * Unbind device base on device's sn.
@@ -185,14 +172,73 @@
    /**
     * Get device information based on device's sn.
     * 根据设备码获取设备信息
     * @param sn device's sn
     * @return device
     */
    Optional<DeviceDTO> getDeviceBySn(String sn);
    /**
     * Update the firmware version information of the device or payload.
     * @param receiver
     * Create job for device firmware updates.
     * @param workspaceId
     * @param upgradeDTOS
     * @return
     */
    void updateFirmwareVersion(FirmwareVersionReceiver receiver);
}
    ResponseResult createDeviceOtaJob(String workspaceId, List<DeviceFirmwareUpgradeDTO> upgradeDTOS);
    /**
     * Set the property parameters of the drone.
     * @param workspaceId
     * @param dockSn
     * @param propertyEnum
     * @param param
     */
    void devicePropertySet(String workspaceId, String dockSn, DeviceSetPropertyEnum propertyEnum, JsonNode param);
    /**
     * Set the property parameters of the drone.
     * @param workspaceId
     * @param dockSn
     * @param param
     * @return
     */
    int devicePropertySet(String workspaceId, String dockSn, JsonNode param);
    /**
     * Set one property parameters of the drone.
     * @param topic
     * @param propertyEnum
     * @param value
     */
    void deviceOnePropertySet(String topic, DeviceSetPropertyEnum propertyEnum, Map.Entry<String, Object> value);
    /**
     * Check the working status of the dock.
     * @param dockSn
     * @return
     */
    DockModeCodeEnum getDockMode(String dockSn);
    /**
     * Query the working status of the aircraft.
     * 查询飞行器的工作状态
     * @param deviceSn
     * @return
     */
    DeviceModeCodeEnum getDeviceMode(String deviceSn);
    /**
     * Check if the dock is in drc mode.
     * @param dockSn
     * @return
     */
    Boolean checkDockDrcMode(String dockSn);
    /**
     * Check if the device has flight control.
     * @param gatewaySn
     * @return
     */
    Boolean checkAuthorityFlight(String gatewaySn);
}