Обнаружено решение:
Mavic 2 Enterprise Dual имеет камеры двух типов: визуальные и тепловые. Чтобы изменить тип дисплея камеры, вы должны использовать тепловизор.
Код для получения тепловой камеры:
var cameraMode: String = ""
viewDidLoad() {
checkForMavic2Enterprise()
}
func checkForMavic2Enterprise() {
guard let product = DJISDKManager.product() else {
print("No product")
switchCameraButton.isHidden = true
return
}
if product.model == "Mavic 2 Enterprise Dual" {
let camera = fetchCamera()
camera!.setDisplayMode(DJICameraDisplayMode.visualOnly, withCompletion: nil)
cameraMode = "visual"
} else {
switchCameraButton.isHidden = true
}
}
// get the drone camera
func fetchCamera() -> DJICamera? {
if let product = DJISDKManager.product() {
if let productKind = product as? DJIAircraft {
if productKind.cameras!.count > 1 {
return productKind.cameras![1] // thermal
} else {
return productKind.camera
}
} else if let productKind = product as? DJIHandheld {
print("HANDHELD CAMERA: \(productKind.camera.debugDescription)")
return productKind.camera
}
}
return nil
}
@IBAction func switchCamera(_ sender: Any) {
let camera = fetchCamera()
switch cameraMode {
case "visual":
print("SWITCHING TO MSX")
camera!.setDisplayMode(DJICameraDisplayMode.MSX, withCompletion: nil)
cameraMode = "MSX"
break
case "MSX":
print("SWITCHING TO THERMAL")
camera!.setDisplayMode(DJICameraDisplayMode.thermalOnly, withCompletion: nil)
cameraMode = "thermal"
break
default:
print("SWITCHING TO VISUAL")
camera!.setDisplayMode(DJICameraDisplayMode.visualOnly, withCompletion: nil)
cameraMode = "visual"
break
}
}