rain
2024-08-21 2db1aa88e8ab53096a936163d686b90d8e056a99
src/main/java/com/dji/sample/manage/service/IDeviceService.java
@@ -2,19 +2,18 @@
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.component.mqtt.model.CommonTopicReceiver;
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 com.fasterxml.jackson.databind.JsonNode;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import java.util.Collection;
import java.util.List;
@@ -70,6 +69,7 @@
    /**
     * Obtain device data according to different query conditions.
     * 根据不同的查询条件获取设备数据。
     * @param param query parameters
     * @return
     */
@@ -87,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.
@@ -155,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
@@ -190,16 +172,11 @@
    /**
     * 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
     */
    void updateFirmwareVersion(FirmwareVersionReceiver receiver);
    /**
     * Create job for device firmware updates.
@@ -219,6 +196,15 @@
    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
@@ -227,9 +213,32 @@
    void deviceOnePropertySet(String topic, DeviceSetPropertyEnum propertyEnum, Map.Entry<String, Object> value);
    /**
     * Determine if the device is online.
     * @param sn
     * Check the working status of the dock.
     * @param dockSn
     * @return
     */
    Boolean checkDeviceOnline(String sn);
}
    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);
}