package com.dji.sdk.mqtt.drc; import com.dji.sdk.cloudapi.control.*; import com.dji.sdk.mqtt.ChannelName; import com.fasterxml.jackson.core.type.TypeReference; import java.util.Arrays; /** * @author sean * @version 1.1 * @date 2022/6/1 */ public enum DrcUpMethodEnum { DRONE_CONTROL("drone_control", ChannelName.INBOUND_DRC_UP_DRONE_CONTROL, new TypeReference>() {}), DRONE_EMERGENCY_STOP("drone_emergency_stop", ChannelName.INBOUND_DRC_UP_DRONE_EMERGENCY_STOP, new TypeReference() {}), HEART_BEAT("heart_beat", ChannelName.INBOUND_DRC_UP_HEART_BEAT, new TypeReference() {}), HSI_INFO_PUSH("hsi_info_push", ChannelName.INBOUND_DRC_UP_HSI_INFO_PUSH, new TypeReference() {}), DELAY_INFO_PUSH("delay_info_push", ChannelName.INBOUND_DRC_UP_DELAY_INFO_PUSH, new TypeReference() {}), OSD_INFO_PUSH("osd_info_push", ChannelName.INBOUND_DRC_UP_OSD_INFO_PUSH, new TypeReference() {}), UNKNOWN("", ChannelName.DEFAULT, new TypeReference<>() {}); private final String method; private final String channelName; private final TypeReference classType; DrcUpMethodEnum(String method, String channelName, TypeReference classType) { this.method = method; this.channelName = channelName; this.classType = classType; } public String getMethod() { return method; } public String getChannelName() { return channelName; } public TypeReference getClassType() { return classType; } public static DrcUpMethodEnum find(String method) { return Arrays.stream(DrcUpMethodEnum.values()) .filter(methodEnum -> methodEnum.method.equals(method)) .findAny().orElse(UNKNOWN); } }