package com.dji.sample.control.service; import com.dji.sample.common.model.ResponseResult; import com.dji.sample.component.mqtt.model.CommonTopicReceiver; import com.dji.sample.control.model.enums.DroneAuthorityEnum; import com.dji.sample.control.model.param.*; import org.springframework.messaging.MessageHeaders; /** * @author sean * @version 1.2 * @date 2022/7/29 */ public interface IControlService { /** * Remotely debug the dock via commands. * @param sn * @param serviceIdentifier * @param param * @return */ ResponseResult controlDockDebug(String sn, String serviceIdentifier, RemoteDebugParam param); /** * Make the drone fly to the target point. * @param sn * @param param * @return */ ResponseResult flyToPoint(String sn, FlyToPointParam param); /** * End the mission of flying the drone to the target point. * @param sn * @return */ ResponseResult flyToPointStop(String sn); /** * Handle progress result notifications for fly to target point. * @param receiver * @param headers * @return */ CommonTopicReceiver handleFlyToPointProgress(CommonTopicReceiver receiver, MessageHeaders headers) throws Exception; /** * Control the drone to take off. * @param sn * @param param * @return */ ResponseResult takeoffToPoint(String sn, TakeoffToPointParam param); /** * Handle progress result notifications for takeoff to target point. * @param receiver * @param headers * @return */ CommonTopicReceiver handleTakeoffToPointProgress(CommonTopicReceiver receiver, MessageHeaders headers); /** * Seize the control authority of the drone or the payload control authority. * 抢占无人机控制权限或有效载荷控制权限 * @param sn * @param authority * @param param * @return */ ResponseResult seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param); /** * Control the payload of the drone. * @param param * @return */ ResponseResult payloadCommands(PayloadCommandsParam param) throws Exception; ResponseResult requestsConfig(String sn,String method, RequestsParam param); /** * 拍照 * @param sn * @param payloadIndex * @return * @throws Exception */ ResponseResult takePhoto(String sn,String payloadIndex) throws Exception; }