package com.dji.sdk.cloudapi.interconnection.api; import com.dji.sdk.annotations.CloudSDKVersion; import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionFromEsdk; import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionToEsdkRequest; import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionToPsdkRequest; import com.dji.sdk.cloudapi.interconnection.InterconnectionMethodEnum; import com.dji.sdk.config.version.CloudSDKVersionEnum; import com.dji.sdk.config.version.GatewayManager; import com.dji.sdk.config.version.GatewayTypeEnum; import com.dji.sdk.mqtt.ChannelName; import com.dji.sdk.mqtt.MqttReply; import com.dji.sdk.mqtt.events.TopicEventsRequest; import com.dji.sdk.mqtt.events.TopicEventsResponse; import com.dji.sdk.mqtt.services.ServicesPublish; import com.dji.sdk.mqtt.services.ServicesReplyData; import com.dji.sdk.mqtt.services.TopicServicesResponse; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import javax.annotation.Resource; /** * @author sean * @version 1.7 * @date 2023/10/16 */ public abstract class AbstractInterconnectionService { @Resource private ServicesPublish servicesPublish; /** * cloud-custom data transmit from esdk * @param request data * @param headers The headers for a {@link Message}. * @return events_reply */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_CUSTOM_DATA_TRANSMISSION_FROM_ESDK, outputChannel = ChannelName.OUTBOUND_EVENTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) public TopicEventsResponse customDataTransmissionFromEsdk(TopicEventsRequest request, MessageHeaders headers) { throw new UnsupportedOperationException("customDataTransmissionFromEsdk not implemented"); } /** * cloud-custom data transmit to esdk * @param gateway gateway device * @return services_reply */ @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC) public TopicServicesResponse customDataTransmissionToEsdk(GatewayManager gateway, CustomDataTransmissionToEsdkRequest request) { return servicesPublish.publish( gateway.getGatewaySn(), InterconnectionMethodEnum.CUSTOM_DATA_TRANSMISSION_TO_ESDK.getMethod(), request); } /** * cloud-custom data transmit from psdk * @param request data * @param headers The headers for a {@link Message}. * @return events_reply */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_CUSTOM_DATA_TRANSMISSION_FROM_PSDK, outputChannel = ChannelName.OUTBOUND_EVENTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) public TopicEventsResponse customDataTransmissionFromPsdk(TopicEventsRequest request, MessageHeaders headers) { throw new UnsupportedOperationException("customDataTransmissionFromPsdk not implemented"); } /** * cloud-custom data transmit to psdk * @param gateway gateway device * @return services_reply */ @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC) public TopicServicesResponse customDataTransmissionToPsdk(GatewayManager gateway, CustomDataTransmissionToPsdkRequest request) { return servicesPublish.publish( gateway.getGatewaySn(), InterconnectionMethodEnum.CUSTOM_DATA_TRANSMISSION_TO_PSDK.getMethod(), request); } }