package com.dji.sdk.cloudapi.firmware.api; import com.dji.sdk.cloudapi.firmware.FirmwareMethodEnum; import com.dji.sdk.cloudapi.firmware.OtaCreateRequest; import com.dji.sdk.cloudapi.firmware.OtaCreateResponse; import com.dji.sdk.cloudapi.firmware.OtaProgress; 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 AbstractFirmwareService { @Resource private ServicesPublish servicesPublish; /** * Firmware upgrade progress * @param request data * @param headers The headers for a {@link Message}. */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_OTA_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS) public TopicEventsResponse otaProgress(TopicEventsRequest> request, MessageHeaders headers) { throw new UnsupportedOperationException("otaProgress not implemented"); } /** * Firmware upgrade * @param gateway * @param request data * @return services_reply */ public TopicServicesResponse> otaCreate(GatewayManager gateway, OtaCreateRequest request) { return servicesPublish.publish( new TypeReference() {}, gateway.getGatewaySn(), FirmwareMethodEnum.OTA_CREATE.getMethod(), request); } }