You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.3 KiB
53 lines
1.3 KiB
package com.dji.sdk.mqtt.state; |
|
|
|
import com.dji.sdk.cloudapi.device.*; |
|
import com.dji.sdk.cloudapi.livestream.DockLivestreamAbilityUpdate; |
|
import com.dji.sdk.exception.CloudSDKException; |
|
|
|
import java.util.Arrays; |
|
import java.util.Collections; |
|
import java.util.Set; |
|
|
|
/** |
|
* |
|
* @author sean.zhou |
|
* @date 2021/11/18 |
|
* @version 0.1 |
|
*/ |
|
public enum RcStateDataKeyEnum { |
|
|
|
FIRMWARE_VERSION(Set.of("firmware_version"), RcFirmwareVersion.class), |
|
|
|
LIVE_CAPACITY(Set.of("live_capacity"), DockLivestreamAbilityUpdate.class), |
|
|
|
CONTROL_SOURCE(Set.of("control_source"), RcDroneControlSource.class), |
|
|
|
LIVE_STATUS(Set.of("live_status"), RcLiveStatus.class), |
|
|
|
PAYLOAD_FIRMWARE(PayloadModelConst.getAllModelWithPosition(), PayloadFirmwareVersion.class), |
|
; |
|
|
|
private final Set<String> keys; |
|
|
|
private final Class classType; |
|
|
|
|
|
RcStateDataKeyEnum(Set<String> keys, Class classType) { |
|
this.keys = keys; |
|
this.classType = classType; |
|
} |
|
|
|
public Class getClassType() { |
|
return classType; |
|
} |
|
|
|
public Set<String> getKeys() { |
|
return keys; |
|
} |
|
|
|
public static RcStateDataKeyEnum find(Set<String> keys) { |
|
return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny() |
|
.orElseThrow(() -> new CloudSDKException(RcStateDataKeyEnum.class, keys)); |
|
} |
|
|
|
}
|
|
|