Beispiel #1
0
        public DroneRpcFuntions()
        {
            var componentManager = DJISDKManager.Instance.ComponentManager;

            virtualRemoteController = DJISDKManager.Instance.VirtualRemoteController;

            flightAssistantHandler = componentManager.GetFlightAssistantHandler(0, 0);

            flightControllerHandler = componentManager.GetFlightControllerHandler(0, 0);

            flightControllerHandler.ConnectionChanged += (object sender, BoolMsg? value) => { OnflightControllerHandler_ConnectionChanged(sender, value); };
            flightControllerHandler.IsFlyingChanged   += (object sender, BoolMsg? value) => { OnflightControllerHandler_IsFlyingChanged(sender, value); };
            componentManager.GetBatteryHandler(0, 0).CurrentChanged += (object sender, IntMsg? value) => { OnbatteryHandler_CurrentChanged(sender, value); };
        }
Beispiel #2
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);
        }