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.

55 lines
1.4 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.Optional;
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(PayloadModelEnum.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 Optional<RcStateDataKeyEnum> find(Set<String> keys) {
return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny();
//.orElseThrow(() -> new CloudSDKException(RcStateDataKeyEnum.class, keys));
}
}