private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { //register the application to the DJI Windows SDK if (resultCode == SDKError.NO_ERROR) { System.Diagnostics.Debug.WriteLine("Register app successfully."); //The product connection state will be updated when it changes here. DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += async delegate(object sender, ProductTypeMsg? value) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { if (value != null && value?.value != ProductType.UNRECOGNIZED) { System.Diagnostics.Debug.WriteLine("The Aircraft is connected now."); IsConnected.Text = "The Aircraft is connected now."; this.AirCraftConnected = true; } else { System.Diagnostics.Debug.WriteLine("The Aircraft is disconnected now."); IsConnected.Text = "The Aircraft is disconnected now."; this.AirCraftConnected = false; } }); }; } else { System.Diagnostics.Debug.WriteLine("Register SDK failed, the error is: "); System.Diagnostics.Debug.WriteLine(resultCode.ToString()); } }
private async void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { if (SDKError.NO_ERROR == errorCode && SDKRegistrationState.Succeeded == state) { var videoFeeder = DJISDKManager.Instance.VideoFeeder.GetPrimaryVideoFeed(0); var cameraHandler = DJISDKManager.Instance.ComponentManager.GetCameraHandler(0, 0); if (null != videoFeeder) { videoParser = new Parser(); videoParser.Initialize((byte[] data) => { return(DJISDKManager.Instance.VideoFeeder.ParseAssitantDecodingInfo(0, data)); }); videoParser.SetSurfaceAndVideoCallback(0, 0, LiveFeedPanel, OnFrameParsed); videoFeeder.VideoDataUpdated += VideoFeeder_VideoDataUpdated; } if (null != cameraHandler) { var res = await cameraHandler.GetCameraTypeAsync(); cameraHandler.CameraTypeChanged += CalibrationPage_CameraTypeChanged; if (res.error == SDKError.NO_ERROR) { CalibrationPage_CameraTypeChanged(null, res.value); } } // wait until action done Thread.Sleep(300); } }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { if (errorCode == SDKError.NO_ERROR) { if (_componentMgr == null) { this._componentMgr = DJISDKManager.Instance.ComponentManager; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).VelocityChanged += DJIDrone_VelocityChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AttitudeChanged += DJIDrone_AttitudeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AltitudeChanged += DJIDrone_AltitudeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AircraftLocationChanged += DJIDrone_AircraftLocationChanged; DJISDKManager.Instance.ComponentManager.GetBatteryHandler(0, 0).VoltageChanged += DJIDrone_VoltageChanged; DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += DJIDrone_ProductTypeChanged; } if (_mgr.Active == null) { _mgr.SetActive(new Core.Models.ConnectedUas(this, new DJITransport(this))); } Debug.WriteLine("Product Registered"); } else { Debug.WriteLine(errorCode.ToString()); } }
//Callback of SDKRegistrationEvent private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { if (resultCode == SDKError.NO_ERROR) { System.Diagnostics.Debug.WriteLine("Register app successfully."); //Must in UI thread await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { //Raw data and decoded data listener if (videoParser == null) { videoParser = new DJIVideoParser.Parser(); videoParser.Initialize(delegate(byte[] data) { //Note: This function must be called because we need DJI Windows SDK to help us to parse frame data. return(DJISDKManager.Instance.VideoFeeder.ParseAssitantDecodingInfo(0, data)); }); //Set the swapChainPanel to display and set the decoded data callback. videoParser.SetSurfaceAndVideoCallback(0, 0, swapChainPanel, ReceiveDecodedData); DJISDKManager.Instance.VideoFeeder.GetPrimaryVideoFeed(0).VideoDataUpdated += OnVideoPush; } //get the camera type and observe the CameraTypeChanged event. DJISDKManager.Instance.ComponentManager.GetCameraHandler(0, 0).CameraTypeChanged += OnCameraTypeChanged; var type = await DJISDKManager.Instance.ComponentManager.GetCameraHandler(0, 0).GetCameraTypeAsync(); OnCameraTypeChanged(this, type.value); }); } else { System.Diagnostics.Debug.WriteLine("SDK register failed, the error is: "); System.Diagnostics.Debug.WriteLine(resultCode.ToString()); } }
private void DjiSdkManager_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { lock (sdkLock) { _isSdkRegistered = state == SDKRegistrationState.Succeeded && errorCode == SDKError.NO_ERROR; if (_isSdkRegistered) { var productHandler = DJISDKManager.Instance.ComponentManager.GetProductHandler(0); if (null != productHandler) { var isConnectedTask = productHandler.GetConnectionAsync(); isConnectedTask.Wait(); _isDroneConnected = (isConnectedTask.Result.value ?? default(BoolMsg)).value; productHandler.ConnectionChanged += ProductHandler_ConnectionChanged; } // TODO: handle the case that product handler is not available, // we need to check the connectivity between the drone and app at some point. } } }
private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { activateStateTextBlock.Text = state == SDKRegistrationState.Succeeded ? "Activated." : "Not Activated."; activationInformation.Text = resultCode == SDKError.NO_ERROR ? "Register success" : resultCode.ToString(); }); }
private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Debug.WriteLine(state == SDKRegistrationState.Succeeded ? "Activated." : "Not Activated."); Debug.WriteLine(resultCode == SDKError.NO_ERROR ? "Register success" : resultCode.ToString()); }); }
private async void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { if (SDKError.NO_ERROR == errorCode && SDKRegistrationState.Succeeded == state) { PosController.Instance.PoseUpdated += PosController_PoseUpdated; // wait until action done Thread.Sleep(300); } }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { var isRegistered = state == SDKRegistrationState.Succeeded && errorCode == SDKError.NO_ERROR; if (isRegistered) { PosController.Instance.PoseUpdated += Instance_PoseUpdated; QrcodeDetector.Instance.QrcodeDetected += Instance_QrcodeDetected; Commander.MissionUpdated += Commander_MissionUpdated; } }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { if (state == SDKRegistrationState.Succeeded) { //InitializeWindowsSDK(); InitializeParser(); } else { viewModel.OutputLog("SDKRegistrationState = " + state.ToString()); } }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { var isReg = errorCode == SDKError.NO_ERROR; if (_isRunning) { return; } _thread.Start(); _isRunning = true; }
//Callback of SDKRegistrationEvent private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { if (resultCode == SDKError.NO_ERROR) { System.Diagnostics.Debug.WriteLine("Register app successfully."); setup(); } else { System.Diagnostics.Debug.WriteLine("SDK register failed, the error is: "); System.Diagnostics.Debug.WriteLine(resultCode.ToString()); } }
private void Connection_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { if (resultCode == SDKError.NO_ERROR) { //System.Diagnostics.Debug.WriteLine("Register app successfully."); //The product connection state will be updated when it changes here. //DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += async delegate (object sender, ProductTypeMsg? value) DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += Connection_isProductTypeChangedEvent; } else { isRegisterErrorOccurredEvent("Register SDK failed, the error is: " + resultCode.ToString()); } }
private void OnSdkRegistrationStateChanged(SDKRegistrationState state, SDKError error) { _isSdkRegistered = SDKError.NO_ERROR == error && state == SDKRegistrationState.Succeeded; if (_isSdkRegistered) { _isWorkerEnabled = true; ConfigDroneAsync(); fcHandler = DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0); var videoFeeder = DJISDKManager.Instance.VideoFeeder.GetPrimaryVideoFeed(0); var cameraHandler = DJISDKManager.Instance.ComponentManager.GetCameraHandler(0, 0); if (null != videoFeeder) { VideoParser = new Parser(); VideoParser.Initialize((byte[] data) => { return(DJISDKManager.Instance.VideoFeeder.ParseAssitantDecodingInfo(0, data)); }); VideoParser.SetSurfaceAndVideoCallback(0, 0, null, OnFrameParsed); videoFeeder.VideoDataUpdated += Drone_VideoDataUpdated;; } if (null != cameraHandler) { var res = cameraHandler.GetCameraTypeAsync(); res.Wait(); if (res.Result.error == SDKError.NO_ERROR) { Drone_CameraTypeChanged(null, res.Result.value); } cameraHandler.CameraTypeChanged += Drone_CameraTypeChanged;; } } else { _isWorkerEnabled = false; fcHandler = null; } Thread.Sleep(300); }
private async void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { TB_active.Text = state == SDKRegistrationState.Succeeded ? "Api Key Activated" : "Api Key Not Activated"; if (errorCode == SDKError.NO_ERROR) { return; } else { Debug.WriteLine(errorCode); } }); }
private async void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { var isReg = state == SDKRegistrationState.Succeeded && errorCode == SDKError.NO_ERROR; if (_isRunning) { return; } if (isReg) { List <String> labels = new List <String> { "Box", "Nobox" }; objectDetection = new ObjectDetection(labels, 10, 0.45F, 0.45F); await init_onnx(); var gimbal = await DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).GetGimbalAttitudeAsync(); if (gimbal.value == null || gimbal.value.Value.pitch == 0) { //for (; ; ) //{ var err0r1 = DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).RotateByAngleAsync(new GimbalAngleRotation { mode = GimbalAngleRotationMode.ABSOLUTE_ANGLE, pitch = -16.9, roll = 0, yaw = 0, pitchIgnored = false, rollIgnored = true, yawIgnored = true, duration = 1.0 }); // if (err0r1.Result == SDKError.NO_ERROR) // { // break; // } //} } _isRunning = true; Thread.Sleep(2000); workerThread.Start(); } }
private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { if (resultCode == SDKError.NO_ERROR) { Debug.WriteLine("Register app successfully."); DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += Get_Aircraft; DJISDKManager.Instance.ComponentManager.GetBatteryHandler(0, 0).ChargeRemainingInPercentChanged += Get_Battery; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AltitudeChanged += Get_Altitude; //The product connection state will be updated when it changes here. DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += async delegate(object sender, ProductTypeMsg? value) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { if (value != null && value?.value != ProductType.UNRECOGNIZED) { Debug.WriteLine("The Aircraft is connected now."); //You can load/display your pages according to the aircraft connection state here. } else { Debug.WriteLine("The Aircraft is disconnected now."); //You can hide your pages according to the aircraft connection state here, or show the connection tips to the users. } }); }; //If you want to get the latest product connection state manually, you can use the following code var productType = (await DJISDKManager.Instance.ComponentManager.GetProductHandler(0).GetProductTypeAsync()).value; if (productType != null && productType?.value != ProductType.UNRECOGNIZED) { Debug.WriteLine("The Aircraft is connected now."); //You can load/display your pages according to the aircraft connection state here. } } else { Debug.WriteLine("Register SDK failed, the error is: "); Debug.WriteLine(resultCode.ToString()); } }
private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { if (resultCode == SDKError.NO_ERROR) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { for (int i = 1; i < navigationModules.Count; ++i) { var module = navigationModules[i]; NavView.MenuItems.Add(new NavigationViewItemHeader() { Content = module.header }); foreach (var item in module.items) { NavView.MenuItems.Add(item.Key); } } }); } }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { if (errorCode == SDKError.NO_ERROR) { if (_componentMgr == null) { this._componentMgr = DJISDKManager.Instance.ComponentManager; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).VelocityChanged += DJIDrone_VelocityChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AreMotorsOnChanged += DJIDrone_AreMotorsOnChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).CompassHasErrorChanged += DJIDrone_CompassHasErrorChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).FlightTimeInSecondsChanged += DJIDrone_FlightTimeInSecondsChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).IsLowBatteryWarningChanged += DJIDrone_IsLowBatteryWarningChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AttitudeChanged += DJIDrone_AttitudeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).IsSeriousLowBatteryWarningChanged += DJIDrone_IsSeriousLowBatteryWarningChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AttitudeChanged += DJIDrone_AttitudeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).IsFlyingChanged += DJIDrone_IsFlyingChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AltitudeChanged += DJIDrone_AltitudeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).AircraftLocationChanged += DJIDrone_AircraftLocationChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).SatelliteCountChanged += DJIDrone_SatelliteCountChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).GPSSignalLevelChanged += DJIDrone_GPSSignalLevelChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).RemainingFlightTimeChanged += DJIDrone_RemainingFlightTimeChanged; DJISDKManager.Instance.ComponentManager.GetFlightControllerHandler(0, 0).IsLandingConfirmationNeededChanged += DJIDrone_IsLandingConfirmationNeededChanged; DJISDKManager.Instance.ComponentManager.GetFlightAssistantHandler(0, 0).IsAscentLimitedByObstacleChanged += DJIDrone_IsAscentLimitedByObstacleChanged; DJISDKManager.Instance.ComponentManager.GetFlightAssistantHandler(0, 0).VissionDetectionStateChanged += DJIDrone_VissionDetectionStateChanged; DJISDKManager.Instance.ComponentManager.GetBatteryHandler(0, 0).VoltageChanged += DJIDrone_VoltageChanged; DJISDKManager.Instance.ComponentManager.GetBatteryHandler(0, 0).ChargeRemainingInPercentChanged += DJIDrone_ChargeRemainingInPercentChanged; DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += DJIDrone_ProductTypeChanged; } } else { Debug.WriteLine("REG: " + errorCode.ToString()); } }
private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (state == SDKRegistrationState.Succeeded) { Debug.WriteLine("Activated."); } else { Debug.WriteLine("Not Activated."); } if (resultCode == SDKError.NO_ERROR) { Debug.WriteLine("Register success."); activateStateTextBlock.Text = "Register Success"; } else { Debug.WriteLine(resultCode.ToString()); activateStateTextBlock.Text = resultCode.ToString(); } }); }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { isSdkRegistered = SDKRegistrationState.Succeeded == state && SDKError.NO_ERROR == errorCode; }
private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode) { var isReg = errorCode == SDKError.NO_ERROR; _thread.Start(); }