guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickControlModeEnabled) else {
DJISDKManager.keyManager()?.setValue(NSNumber(value: enabled), for: virtualStickKey, withCompletion: { (error: Error?) in
//MARK: Start Advanced Virtual Stick
func startAdvancedVirtualStick(enabled: Bool = true) {
guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickAdvancedControlModeEnabled) else {
return;
}
DJISDKManager.keyManager()?.setValue(NSNumber(value: enabled), for: virtualStickKey, withCompletion: { (error: Error?) in
if error != nil {
print("Error start advanced virtual stick")
}
print("Start advanced virtual stick \(enabled)")
})
}
//MARK: Stop Virtual Stick
func stopVirtualStick() {
guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickControlModeEnabled) else {
return;
}
DJISDKManager.keyManager()?.setValue(NSNumber(value: false), for: virtualStickKey, withCompletion: { (error: Error?) in
if error != nil {
print("Error stop virtual stick")
}
print("Stop virtual stick")
})
}
//MARK: Stop Advanced Virtual Stick
func stopAdvancedVirtualStick() {
guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickAdvancedControlModeEnabled) else {
return;
}
DJISDKManager.keyManager()?.setValue(NSNumber(value: false), for: virtualStickKey, withCompletion: { (error: Error?) in
if error != nil {
print("Error stop advanced virtual stick")
}
print("Stop advanced virtual stick")
})
}
//MARK: Is Virtual Stick
func isVirtualStick() -> Bool {
guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickControlModeEnabled) else {
return false
}
guard let vs = DJISDKManager.keyManager()?.getValueFor(virtualStickKey) else {
return false
}
let vsValue = vs.boolValue
print("Virtual Stick on: \(vsValue)")
return vsValue
}
//MARK: Is Advanced Virtual Stick
func isVirtualStickAdvanced() -> Bool {
guard let virtualStickKey = DJIFlightControllerKey(param: DJIFlightControllerParamVirtualStickAdvancedControlModeEnabled) else {
return false
}
guard let vs = DJISDKManager.keyManager()?.getValueFor(virtualStickKey) else {
return false
}
let vsValue = vs.boolValue
print("Advanced Virtual Stick on: \(vsValue)")
return vsValue
}
//MARK: Prepare Virtual Stick
func prepareVirtualStick() {
let fc = ProductCommunicationManager.shared.fetchFlightController()
if fc != nil {
let fcMode = DJIFlightOrientationMode.aircraftHeading
fc?.setFlightOrientationMode(fcMode, withCompletion: { (error: Error?) in
if error != nil {
print("Error setting FlightController Orientation Mode");
}
})
fc?.setMultipleFlightModeEnabled(true, withCompletion: { (error: Error?) in
if error != nil {
print("Error setting multiple flight mode");
}
})
}
}