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); }; }
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); }