package com.dji.sdk.cloudapi.log.api; import com.dji.sdk.cloudapi.log.*; import com.dji.sdk.config.version.GatewayManager; import com.dji.sdk.mqtt.ChannelName; import com.dji.sdk.mqtt.MqttReply; import com.dji.sdk.mqtt.events.EventsDataRequest; 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 com.fasterxml.jackson.core.type.TypeReference; 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/6/28 */ public abstract class AbstractLogService { @Resource private ServicesPublish servicesPublish; /** * Inform of file uploading progress * @param request data * @param headers The headers for a {@link Message}. * @return events_reply */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FILEUPLOAD_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS) public TopicEventsResponse fileuploadProgress(TopicEventsRequest> request, MessageHeaders headers) { throw new UnsupportedOperationException("fileuploadProgress not implemented"); } /** * Get file list of uploadable device * @param gateway * @param request data * @return services_reply */ public TopicServicesResponse> fileuploadList(GatewayManager gateway, FileUploadListRequest request) { return servicesPublish.publish( new TypeReference() {}, gateway.getGatewaySn(), LogMethodEnum.FILE_UPLOAD_LIST.getMethod(), request); } /** * Start the log file uploading * @param gateway * @param request data * @return services_reply */ public TopicServicesResponse fileuploadStart(GatewayManager gateway, FileUploadStartRequest request) { return servicesPublish.publish( gateway.getGatewaySn(), LogMethodEnum.FILE_UPLOAD_START.getMethod(), request); } /** * Update the uploding state * @param gateway * @param request data * @return services_reply */ public TopicServicesResponse fileuploadUpdate(GatewayManager gateway, FileUploadUpdateRequest request) { return servicesPublish.publish( gateway.getGatewaySn(), LogMethodEnum.FILE_UPLOAD_UPDATE.getMethod(), request); } }