public MainForm() { InitializeComponent(); _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded); _videoPacketDecoderWorker.Start(); _droneClient = new DroneClient("192.168.1.1"); _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired; _droneClient.VideoPacketAcquired += OnVideoPacketAcquired; _droneClient.NavigationDataAcquired += data => _navigationData = data; tmrStateUpdate.Enabled = true; tmrVideoUpdate.Enabled = true; _playerForms = new List<PlayerForm>(); _videoPacketDecoderWorker.UnhandledException += UnhandledException; controls = new GamepadState(0); DirectInput dinput = new DirectInput(); myList = dinput.GetDevices(DeviceClass.GameController, DeviceEnumerationFlags.AttachedOnly); DeviceInstance myJoyInput = (DeviceInstance)myList[0]; Guid myGuid = myJoyInput.InstanceGuid; myJoy = new Joystick(dinput, myGuid); myJoy.Acquire(); yawMultiplier = (float)yawMultSetBox.Value; }
public MainForm() { InitializeComponent(); face = new HaarCascade("haarcascade_frontalface_default.xml"); // grabber = new Capture(); // grabber.QueryFrame(); // Application.Idle += new EventHandler(FrameGrabber); this.WindowState = FormWindowState.Maximized; _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded); _videoPacketDecoderWorker.Start(); _droneClient = new DroneClient("192.168.1.1"); _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired; _droneClient.VideoPacketAcquired += OnVideoPacketAcquired; _droneClient.NavigationDataAcquired += data => _navigationData = data; tmrStateUpdate.Enabled = true; tmrVideoUpdate.Enabled = true; _playerForms = new List<PlayerForm>(); _videoPacketDecoderWorker.UnhandledException += UnhandledException; _droneClient.Start(); }
public DroneClient(string hostname) { _networkConfiguration = new NetworkConfiguration(hostname); _commandQueue = new ConcurrentQueue<ATCommand>(); _navigationData = new NavigationData(); _commandSender = new CommandSender(NetworkConfiguration, _commandQueue); _navdataAcquisition = new NavdataAcquisition(NetworkConfiguration, OnNavdataPacketAcquired, OnNavdataAcquisitionStarted, OnNavdataAcquisitionStopped); _videoAcquisition = new VideoAcquisition(NetworkConfiguration, OnVideoPacketAcquired); }
public static bool TryParse(ref NavigationPacket packet, out NavigationData navigationData) { navigationData = new NavigationData(); NavdataBag navdataBag; if (NavdataBagParser.TryParse(ref packet, out navdataBag)) { navigationData = NavdataConverter.ToNavigationData(navdataBag); return true; } return false; }
public static bool TryParse(ref NavigationPacket packet, out NavigationData navigationData) { navigationData = new NavigationData(); NavdataBag navdataBag; if (NavdataBagParser.TryParse(ref packet, out navdataBag)) { navigationData = NavdataConverter.ToNavigationData(navdataBag); return(true); } return(false); }
public static NavigationData ToNavigationData(NavdataBag navdataBag) { var navigationData = new NavigationData(); var ardroneState = (def_ardrone_state_mask_t)navdataBag.ardrone_state; UpdateStateUsing(ardroneState, ref navigationData.State); var ctrlState = (CTRL_STATES)(navdataBag.demo.ctrl_state >> 0x10); UpdateStateUsing(ctrlState, ref navigationData.State); navigationData.Yaw = DegreeToRadian * (navdataBag.demo.psi / 1000.0f); navigationData.Pitch = DegreeToRadian * (navdataBag.demo.theta / 1000.0f); navigationData.Roll = DegreeToRadian * (navdataBag.demo.phi / 1000.0f); navigationData.Altitude = navdataBag.demo.altitude / 1000.0f; navigationData.Time = navdataBag.time.time; navigationData.Velocity.X = navdataBag.demo.vx / 1000.0f; navigationData.Velocity.Y = navdataBag.demo.vy / 1000.0f; navigationData.Velocity.Z = navdataBag.demo.vz / 1000.0f; navigationData.Battery.Low = ardroneState.HasFlag(def_ardrone_state_mask_t.ARDRONE_VBAT_LOW); navigationData.Battery.Percentage = navdataBag.demo.vbat_flying_percentage; navigationData.Battery.Voltage = navdataBag.raw_measures.vbat_raw / 1000.0f; navigationData.Magneto.Rectified.X = navdataBag.magneto.magneto_rectified.x; navigationData.Magneto.Rectified.Y = navdataBag.magneto.magneto_rectified.y; navigationData.Magneto.Rectified.Z = navdataBag.magneto.magneto_rectified.z; navigationData.Magneto.Offset.X = navdataBag.magneto.magneto_offset.x; navigationData.Magneto.Offset.Y = navdataBag.magneto.magneto_offset.y; navigationData.Magneto.Offset.Z = navdataBag.magneto.magneto_offset.z; navigationData.Video.FrameNumber = navdataBag.video_stream.frame_number; navigationData.Wifi.LinkQuality = 1.0f - ConversionHelper.ToSingle(navdataBag.wifi.link_quality); navigationData.GPS.latitude = navdataBag.gps.latitude; navigationData.GPS.longitude = navdataBag.gps.longitude; navigationData.GPS.latFuse = navdataBag.gps.latFuse; navigationData.GPS.lonFuse = navdataBag.gps.lonFuse; return(navigationData); }
public static void InitializeDrone() { _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded); _videoPacketDecoderWorker.Start(); _droneClient = new DroneClient("192.168.1.1"); _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired; _droneClient.VideoPacketAcquired += OnVideoPacketAcquired; _droneClient.NavigationDataAcquired += data => _navigationData = data; _videoPacketDecoderWorker.UnhandledException += UnhandledException; _droneClient.Start(); _droneClient.ResetEmergency(); _droneClient.FlatTrim(); _droneUnity = new ReceiveUdpModel(); }
public static NavigationData ToNavigationData(NavdataBag navdataBag) { var navigationData = new NavigationData(); var ardroneState = (def_ardrone_state_mask_t) navdataBag.ardrone_state; UpdateStateUsing(ardroneState, ref navigationData.State); var ctrlState = (CTRL_STATES) (navdataBag.demo.ctrl_state >> 0x10); UpdateStateUsing(ctrlState, ref navigationData.State); navigationData.Yaw = DegreeToRadian*(navdataBag.demo.psi/1000.0f); navigationData.Pitch = DegreeToRadian*(navdataBag.demo.theta/1000.0f); navigationData.Roll = DegreeToRadian*(navdataBag.demo.phi/1000.0f); navigationData.Altitude = navdataBag.demo.altitude/1000.0f; navigationData.Time = navdataBag.time.time; navigationData.Velocity.X = navdataBag.demo.vx/1000.0f; navigationData.Velocity.Y = navdataBag.demo.vy/1000.0f; navigationData.Velocity.Z = navdataBag.demo.vz/1000.0f; navigationData.Battery.Low = ardroneState.HasFlag(def_ardrone_state_mask_t.ARDRONE_VBAT_LOW); navigationData.Battery.Percentage = navdataBag.demo.vbat_flying_percentage; navigationData.Battery.Voltage = navdataBag.raw_measures.vbat_raw/1000.0f; navigationData.Magneto.Rectified.X = navdataBag.magneto.magneto_rectified.x; navigationData.Magneto.Rectified.Y = navdataBag.magneto.magneto_rectified.y; navigationData.Magneto.Rectified.Z = navdataBag.magneto.magneto_rectified.z; navigationData.Magneto.Offset.X = navdataBag.magneto.magneto_offset.x; navigationData.Magneto.Offset.Y = navdataBag.magneto.magneto_offset.y; navigationData.Magneto.Offset.Z = navdataBag.magneto.magneto_offset.z; navigationData.Magneto.heading_angle = navdataBag.magneto.heading_unwrapped; navigationData.Video.FrameNumber = navdataBag.video_stream.frame_number; navigationData.Wifi.LinkQuality = 1.0f - ConversionHelper.ToSingle(navdataBag.wifi.link_quality); navigationData.raw = navdataBag; return navigationData; }
public MainForm() { InitializeComponent(); _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded); _videoPacketDecoderWorker.Start(); _droneClient = new DroneClient("192.168.1.1"); _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired; _droneClient.VideoPacketAcquired += OnVideoPacketAcquired; _droneClient.NavigationDataAcquired += data => _navigationData = data; tmrStateUpdate.Enabled = true; tmrVideoUpdate.Enabled = true; _playerForms = new List<PlayerForm>(); _videoPacketDecoderWorker.UnhandledException += UnhandledException; }
public MainForm() { InitializeComponent(); uISettingsBindingSource.Add(UISettings.Default); droneClient = new DroneClient(); droneClient.NavigationDataAcquired += data => navigationData = data; droneClient.VideoPacketAcquired += OnVideoPacketAcquired; droneClient.Start(); InitializeVideo(); LoadFontAwesome(); InitInput(); timerInput.Enabled = true; timerStatusUpdate.Enabled = true; }
// Event method for 'DroneClient.NavigationPacketAcquired' action private void NavigationDataAcquired(NavigationData aPacket) { if (Active) { var data = new Apparatus.Output {Navigation = aPacket, LastInput = LastInput}; EnqueueOutput(data); } }
private void UpdateNavigationData(NavigationPacket packet) { NavigationData navigationData; if (NavigationPacketParser.TryParse(ref packet, out navigationData)) { OnNavigationDataAcquired(navigationData); _navigationData = navigationData; ProcessStateTransitions(navigationData.State); } }
private void OnNavigationDataAcquired(NavigationData navigationData) { if (NavigationDataAcquired != null) NavigationDataAcquired(navigationData); }
private void OnNavigationData(NavigationData data) { if (_initialized) return; if (data.State.HasFlag(NavigationState.Command)) { _client.Send(new ControlCommand(ControlMode.AckControlMode)); } else { _client.Send(new ControlCommand(ControlMode.CfgGetControlMode)); _initialized = true; } }
private void UpdateNavigationData(NavigationPacket packet) { NavigationData navigationData; if (NavigationPacketParser.TryParse(ref packet, out navigationData)) { _navigationData = navigationData; ProcessTransition(); if (NavigationDataUpdated != null) NavigationDataUpdated(_navigationData); } }
private void OnButtonActivateClicked(object sender, EventArgs e) { if (IsIpAddress(textBoxHost.Text)) hostname = textBoxHost.Text; droneClient = new DroneClient(hostname); droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired; droneClient.VideoPacketAcquired += OnVideoPacketAcquired; droneClient.NavigationDataAcquired += data => navigationData = data; droneClient.Start(); videoPacketDecoderWorker.Start(); buttonActivate.Enabled = false; textBoxHost.Enabled = false; buttonDeactivate.Enabled = true; groupBoxControlPanel.Enabled = true; pictureBoxVideo.Enabled = true; buttonSwitchCamera.Enabled = true; }
private void ProcessNavigationData(NavigationData data) { _navigationData = data; }