Ejemplo n.º 1
0
        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());
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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());
            }
        }
Ejemplo n.º 4
0
        //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());
            }
        }
Ejemplo n.º 5
0
        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.
                }
            }
        }
Ejemplo n.º 6
0
 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();
     });
 }
Ejemplo n.º 7
0
 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());
     });
 }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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;
            }
        }
Ejemplo n.º 10
0
 private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode)
 {
     if (state == SDKRegistrationState.Succeeded)
     {
         //InitializeWindowsSDK();
         InitializeParser();
     }
     else
     {
         viewModel.OutputLog("SDKRegistrationState = " + state.ToString());
     }
 }
Ejemplo n.º 11
0
        private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode)
        {
            var isReg = errorCode == SDKError.NO_ERROR;

            if (_isRunning)
            {
                return;
            }

            _thread.Start();
            _isRunning = true;
        }
Ejemplo n.º 12
0
        //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());
            }
        }
Ejemplo n.º 13
0
        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());
            }
        }
Ejemplo n.º 14
0
        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);
         }
     });
 }
Ejemplo n.º 16
0
        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();
            }
        }
Ejemplo n.º 17
0
        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());
            }
        }
Ejemplo n.º 18
0
 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);
                 }
             }
         });
     }
 }
Ejemplo n.º 19
0
        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());
            }
        }
Ejemplo n.º 20
0
 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();
         }
     });
 }
Ejemplo n.º 21
0
 private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode)
 {
     isSdkRegistered = SDKRegistrationState.Succeeded == state && SDKError.NO_ERROR == errorCode;
 }
Ejemplo n.º 22
0
        private void Instance_SDKRegistrationStateChanged(SDKRegistrationState state, SDKError errorCode)
        {
            var isReg = errorCode == SDKError.NO_ERROR;

            _thread.Start();
        }