Ejemplo n.º 1
0
 public WatchdogWorker(DroneClient droneClient, WorkerBase[] workers)
 {
     foreach (WorkerBase wb in workers)
     {
         _Workers.Add(wb);
     }
 }
Ejemplo n.º 2
0
        //private StorageFile commandHistoryFile;

        public CommandWorker(DroneClient droneClient)
        {
            _DroneClient = droneClient;
            _NormalPriorityCommandQueue = new Queue <string>();
            _HighPriorityCommandQueue   = new Queue <string>();
            _ConfigCommandList          = new Queue <string>();
        }
Ejemplo n.º 3
0
    // Use this for initialization
    void Start()
    {
        Debug.Log("Start");
        // initialize data array
        data = new byte[width * height * 3];

        // set textures
        MainRenderer.material.mainTexture      = cameraTexture;
        SecondaryRenderer.material.mainTexture = blackTexture;
        cameraTexture = new Texture2D(width, height);
        blackTexture  = new Texture2D(1, 1);
        blackTexture.SetPixel(0, 0, Color.black);
        blackTexture.Apply();

        // Initialize drone
        videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
        videoPacketDecoderWorker.Start();
        droneClient = new DroneClient("192.168.1.1");
        droneClient.UnhandledException              += HandleUnhandledException;
        droneClient.VideoPacketAcquired             += OnVideoPacketAcquired;
        droneClient.NavigationDataAcquired          += navData => navigationData = navData;
        videoPacketDecoderWorker.UnhandledException += HandleUnhandledException;
        droneClient.Start();

        // activate main drone camera
        switchDroneCamera(AR.Drone.Client.Configuration.VideoChannelType.Vertical);

        // determine connection
        client = new WlanClient();
    }
        public ConfigurationPage()
        {
            InitializeComponent();

            _droneClient     = DroneClient.Instance;
            this.DataContext = _droneClient;
        }
Ejemplo n.º 5
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            InitializeLocationManager();

            SetContentView(Resource.Layout.Main);

            FindViewById <Button>(Resource.Id.MyButtonLand).Click    += LandButtonClick;
            FindViewById <Button>(Resource.Id.ButtonEmergency).Click += EmergencyButtonClicked;
            FindViewById <Button>(Resource.Id.buttonReset).Click     += (sender, args) => _client.ResetEmergency();
            _checkBox = FindViewById <CheckBox>(Resource.Id.executeCommandsCheckBox);
            _checkBox.CheckedChange += CheckBoxOnCheckedChange;

            _logTextView       = FindViewById <TextView>(Resource.Id.logTextView);
            _dronStateTextView = FindViewById <TextView>(Resource.Id.droneStateTextView);
            _websocketTextView = FindViewById <TextView>(Resource.Id.serviceStateTextView);

            _client = new DroneClient("192.168.1.248");
            _client.Start();

            //_client.NavigationDataAcquired += ClientOnNavigationDataAcquired;

            _receiver = new CommandReceiver();
            _receiver.CommandReceived       += ReceiverOnCommandReceived;
            _receiver.WebSocketStateChanged += ReceiverOnWebSocketStateChanged;
            _receiver.Start();

            var droneConnectionChecker = new Thread(ConnectionCheckRunner)
            {
                Name = "Drone Checker"
            };

            droneConnectionChecker.Start();
        }
Ejemplo n.º 6
0
 public XBox360JoystickProvider(DroneClient droneClient)
 {
     if (droneClient == null)
         throw new ArgumentNullException("DroneClient");
     _DroneClient = droneClient;
     _Controller = new Controller(0);
 }
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            tmrStatusUpdate           = new DispatcherTimer();
            tmrStatusUpdate.Interval  = TimeSpan.FromMilliseconds(100);
            tmrStatusUpdate.IsEnabled = true;
            tmrStatusUpdate.Tick     += tmrStatusUpdate_Tick;

            tmrVideoUpdate           = new DispatcherTimer();
            tmrVideoUpdate.Interval  = TimeSpan.FromMilliseconds(20);
            tmrVideoUpdate.IsEnabled = true;
            tmrVideoUpdate.Tick     += tmrVideoUpdate_Tick;

            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(AR.Drone.Video.PixelFormat.BGR24, true, OnVideoPacketDecoded);
            //_videoPacketDecoderWorker.Start();

            _droneClient = new DroneClient("192.168.1.1");
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += _droneClient_VideoPacketAcquired;
            _droneClient.NavigationDataAcquired   += data => _navigationData = data;

            //InitializeAviationControls();
            w = AttitudeMeter.ActualWidth;
            h = AttitudeMeter.ActualHeight;

            SetAttitudeIndicatorParameters(pitch.Value, roll.Value);
        }
Ejemplo n.º 8
0
        public MovementCommand ComputeBehavior(DroneClient drone)
        {
            //Console.WriteLine("Velocity forward: {0} Velocity sideways: {1}",
            //    drone.NavigationData.Velocity.X,
            //    drone.NavigationData.Velocity.Y);

            // Forward/Backward
            //Console.Write("Pitch: ");
            var pitch = ComputeCorrection(drone.NavigationData.Pitch, TargetVelocity.Forward, drone.NavigationData.Velocity.Y, 0.025f);

            // Left/Right
            //Console.Write("Roll: ");
            var roll = 0;
            //Console.WriteLine("0");
            //var roll = ComputeCorrection(drone.NavigationData.Roll, TargetVelocity.Left, drone.NavigationData.Velocity.X, 0.1f);

            // Turn left/turn right
            //Console.Write("Yaw: ");
            var yaw = 0;

            //Console.WriteLine("0");
            //var yaw = ComputeCorrection(drone.NavigationData.Yaw, TargetVelocity.TurnLeft, drone.NavigationData.Velocity.Z, 0.01f);


            return(new MovementCommand()
            {
                Pitch = pitch,
                Roll = roll,
                Yaw = yaw
            });
        }
Ejemplo n.º 9
0
        public FlyPage()
        {
            this.InitializeComponent();
            //if (Application.Current.Resources.ContainsKey("DroneClient"))
            //{
            //    _droneClient = (DroneClient)Application.Current.Resources["DroneClient"];
            //}
            //else
            //{
            //    _droneClient = new DroneClient();
            //}
            _droneClient = DroneClient.Instance;
            //Register joysticks
            if (_droneClient.InputProviders.Count == 0)
            {
                _droneClient.InputProviders.Add(new XBox360JoystickProvider(_droneClient));
                _droneClient.InputProviders.Add(new SoftJoystickProvider(_droneClient, RollPitchJoystick, YawGazJoystick));
            }
            this.DataContext = _droneClient;
            this.DefaultViewModel["Messages"] = _droneClient.Messages;
            _Timer          = new DispatcherTimer();
            _Timer.Tick    += _Timer_Tick;
            _Timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
            _Timer.Start();

            this.ControlMap.PointerPressedOverride += MyMap_PointerPressedOverride;
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            var droneClient = new DroneClient("192.168.1.1");

            SleepAndPaint(droneClient);

            droneClient.Start();

            SleepAndPaint(droneClient);

            droneClient.Takeoff();

            SleepAndPaint(droneClient);


            droneClient.Progress(FlightMode.Progressive, yaw: -0.05f);

            System.Console.WriteLine("Yaw -0.05");
            SleepAndPaint(droneClient);

            droneClient.Hover();
            SleepAndPaint(droneClient);

            droneClient.Land();

            SleepAndPaint(droneClient);

            droneClient.Stop();

            SleepAndPaint(droneClient);

            System.Console.ReadLine();

            droneClient.Dispose();
        }
Ejemplo n.º 11
0
        void Inititialize()
        {
            tmrStatusUpdate           = new DispatcherTimer();
            tmrStatusUpdate.Interval  = TimeSpan.FromMilliseconds(100);
            tmrStatusUpdate.IsEnabled = true;
            tmrStatusUpdate.Tick     += tmrStatusUpdate_Tick;

            tmrVideoUpdate           = new DispatcherTimer();
            tmrVideoUpdate.Interval  = TimeSpan.FromMilliseconds(20);
            tmrVideoUpdate.IsEnabled = true;
            tmrVideoUpdate.Tick     += tmrVideoUpdate_Tick;

            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(AR.Drone.Video.PixelFormat.BGR24, true, OnVideoPacketDecoded);
            _videoPacketDecoderWorker.Start();

            _droneClient = new DroneClient("192.168.1.1");
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.NavigationDataAcquired   += data => _navigationData = data;

            // commands
            Command_Connect             = new RelayCommand(CommandConnect);
            Command_Disconnect          = new RelayCommand(CommandDisconnect);
            Command_ShowDrownLayer      = new RelayCommand <bool>(CommandShowDrownLayer);
            Command_UpdateDroneSettings = new RelayCommand(CommandUpdateDroneSettings);
        }
        private void btn_link_Click(object sender, RoutedEventArgs e)
        {
            string host = tb_ip.Text;

            if (host.Equals(""))
            {
                DroneClient drone = new DroneClient();
                MainForm    form  = new MainForm(drone);
                drone.Start();
                _drones.Add(drone);

                WindowInteropHelper helper = new WindowInteropHelper(this);

                form.Show(new WindowWrapper(helper.Handle));
            }
            else
            {
                DroneClient drone = new DroneClient(host);
                MainForm    form  = new MainForm(drone);
                drone.Start();
                _drones.Add(drone);

                WindowInteropHelper helper = new WindowInteropHelper(this);

                form.Show(new WindowWrapper(helper.Handle));
            }
        }
Ejemplo n.º 13
0
 public XBox360JoystickProvider(DroneClient droneClient)
 {
     if (droneClient == null)
         throw new ArgumentNullException("DroneClient");
     _DroneClient = droneClient;
     _Controller = new Controller(0);
     _Timer = ThreadPoolTimer.CreatePeriodicTimer(new TimerElapsedHandler(timerElapsedHandler), TimeSpan.FromMilliseconds(1000 / 12));
 }
Ejemplo n.º 14
0
 public FlightsController(DroneClient drones, LocationClient locations, OperatorClient operators, FlightClient flights, IMapper mapper)
 {
     _drones    = drones;
     _locations = locations;
     _operators = operators;
     _flights   = flights;
     _mapper    = mapper;
 }
Ejemplo n.º 15
0
        // command

        public Form1()
        {
            _controller        = new Controller("192.168.1.1");
            _droneClient       = new DroneClient();
            _cancellationToken = new CancellationTokenSource();

            InitializeComponent();
        }
Ejemplo n.º 16
0
    public Master(string ip)
    {
        InitializeComponent();
        _droneClient = new DroneClient("192.168.1." + ip);
        ip_drone     = "192.168.1." + ip;
        Point p2 = arena.posicao_desej();

        posicao_desejada = p2;
    }
Ejemplo n.º 17
0
        public void SendTo(DroneClient client)
        {
            ATCommand command;

            while (_queue.TryDequeue(out command))
            {
                client.Send(command);
            }
        }
Ejemplo n.º 18
0
 public IoTHubController(DroneClient client, AnalyzerOutput output, Bitmaps bitmaps)
 {
     this.bitmaps        = bitmaps;
     droneClient         = client;
     this.analyzerOutput = output;
     droneClient.NavigationDataAcquired += DroneClient_NavigationDataAcquired;
     cancelTokenSource = new CancellationTokenSource();
     init(cancelTokenSource.Token);
 }
Ejemplo n.º 19
0
        public FlyPage()
        {
            InitializeComponent();

            _droneClient = DroneClient.Instance;
            _droneClient.Messages.CollectionChanged += Messages_CollectionChanged;

            this.DataContext = _droneClient;
        }
Ejemplo n.º 20
0
 public Controller(DroneClient client, AnalyzerOutput output, Config configuration, IoTHubController hubController)
 {
     analyzer = output;
     analyzer.PropertyChanged += Analyzer_PropertyChanged;
     droneClient        = client;
     this.hubController = hubController;
     autoPilot          = new Autopilot(client);
     config             = configuration;
 }
Ejemplo n.º 21
0
 public XBox360JoystickProvider(DroneClient droneClient)
 {
     if (droneClient == null)
     {
         throw new ArgumentNullException("DroneClient");
     }
     _DroneClient = droneClient;
     _Controller  = new Controller(0);
 }
Ejemplo n.º 22
0
        /// <summary>
        /// Initializes the Autopilot object and associates it with provided DroneClient and sets DeafultObjective
        /// </summary>
        /// <param name="aDroneClient">DroneClient object which Autopilot will be controlling</param>
        /// <param name="aDefaultObjective">DefaultObjective to execute when ObjectiveQeueue is depleted</param>
        /// <remarks>Using this constructor will force DeafultObjective to be 'Hover'</remarks>
        public Autopilot(DroneClient aDroneClient, Objective aDefaultObjective)
        {
            DroneClient      = aDroneClient;
            DefaultObjective = aDefaultObjective;

            ObjectiveQueue       = new ConcurrentQueue <Objective>();
            ApparatusOutputQueue = new ConcurrentQueue <Apparatus.Output>();

            BoundToClient = false;
        }
Ejemplo n.º 23
0
 /// <summary>
 /// Create a new Mission for the drone.
 /// </summary>
 /// <param name="droneClient">The DroneClient controlling the drone in question.</param>
 /// <param name="missionAction">The action to carry out in the Mission.</param>
 /// <param name="onMissionStatusChange">The DroneStatus change event handler.</param>
 public Mission(DroneClient droneClient, Action <DroneClient> missionAction, Action <DroneClient, MissionEventArguments> onMissionStatusChange = null)
 {
     _droneClient   = droneClient;
     _missionAction = missionAction;
     if (onMissionStatusChange != null)
     {
         _onMissionStatusChange = onMissionStatusChange;
     }
     _missionStatus = MissionStatus.WaitingEnque;
 }
Ejemplo n.º 24
0
 public SoftJoystickProvider(DroneClient droneClient, IJoystickControl rollPitchThumb, IJoystickControl yawGazThumb)
 {
     if (droneClient == null)
     {
         throw new ArgumentNullException("DroneClient");
     }
     _DroneClient    = droneClient;
     _RollPitchThumb = rollPitchThumb;
     _YawGazThumb    = yawGazThumb;
 }
Ejemplo n.º 25
0
        public DroneControls(DroneClient client, AnalyzerOutput output, Config configuration, Pilot.Controller autopilot)
        {
            InitializeComponent();
            analyzerOutput = output;
            config         = configuration;
            droneClient    = client;
            droneClient.NavigationDataAcquired += DroneClient_NavigationDataAcquired;
            droneController = autopilot;

            this.KeyDown += DroneControls_KeyDown;
        }
Ejemplo n.º 26
0
        public SettingsForm(DroneClient droneClient)
        {
            this.droneClient = droneClient;

            InitializeComponent();

            ReadDroneConfig();

            keyboardSettingsBindingSource.Add(KeyboardSettings.Default);
            myoSettingsBindingSource.Add(MyoSettings.Default);
        }
Ejemplo n.º 27
0
        static void StartVideo(DroneClient client)
        {
            Console.Write("Starting video...");
            var sender = new VideoPacketSender();

            sender.Start();
            Console.WriteLine("done.");

            Console.Write("Connecting VideoPacketAcquired event...");
            client.VideoPacketAcquired += sender.EnqueuePacket;
            Console.WriteLine("done.");
        }
Ejemplo n.º 28
0
        public MainForm(DroneClient droneClient)
        {
            InitializeComponent();

            InitApp();

            //创建新的无人机连接
            _droneClient = droneClient;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.NavigationDataAcquired   += data => _navigationData = data;
            //视频解码设置
            if (_isVedio)
            {
                _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
                _videoPacketDecoderWorker.Start();
                _videoPacketDecoderWorker.UnhandledException += UnhandledException;
                tmrVideoUpdate.Enabled = true;
            }



            if (_isNavadata)
            {
                //导航数据获取事件,添加事件响应

                //定时器更新允许
                tmrStateUpdate.Enabled = true;
            }


            _playerForms = new List <PlayerForm>();



            //点到点部分
            //数据初始化
            if (_isViconRead)
            {
                _viconClient      = new ViconClient();
                _viconPositionGet = new MyViconPosition(_viconClient);
                _viconPositionGet.OnViconPositionRecieve += OnViconPositionRecieve;

                //写文件线程
                //_pwrite = new PositionWrite(System.Environment.CurrentDirectory, string.Format(@"vicon_{0:yyyy_MM_dd_HH_mm}.txt", DateTime.Now));
            }
            else
            {
                _positionClient   = new PositionClient();
                _viconPositionGet = new MyViconPosition(_positionClient);
                _viconPositionGet.OnViconPositionRecieve += OnViconPositionRecieve;
            }
        }
Ejemplo n.º 29
0
        static void Main(string[] args)
        {
            DroneClient drone = new DroneClient();

            drone.NavigationDataAcquired += HandleNavigationDataAcquired;

            JoystickFlightController controller = new JoystickFlightController();

            controller.Client = drone;
            drone.Start();
            drone.FlatTrim();
            controller.Start();
        }
Ejemplo n.º 30
0
        public MainForm()
        {
            InitializeComponent();

            // innitialize video packet decoder.
            videoDecoder = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnFrameDecoded);
            videoDecoder.UnhandledException += VideoDecoder_UnhandledException;
            videoDecoder.Start();

            // Initalize drone.
            drone = new DroneClient();
            drone.VideoPacketAcquired += OnVideoPacketAqcuired;
            drone.Start();
            drone.ResetEmergency();
            drone.FlatTrim();


            JoystickFlightController controller = new JoystickFlightController();

            controller.Client = drone;
            controller.Start();

            /*
             * // Initialize joystick.
             * joystick = new JoystickDevice();
             * joystick.InputReceived += Joystick_InputReceived;
             * joystick.Initialize("/dev/input/js0");
             *
             * // Initialize height maintainer.
             * heightMaintainer = new HeightMaintainer();
             *          heightMaintainer.TargetHeight = 0.25f; //meter
             *
             * // Initialize velocity maintainer.
             * velocityMaintainer = new VelocityMaintainer();
             *          velocityMaintainer.TargetVelocity.Forward = -1.0f;
             * velocityMaintainer.TargetVelocity.Left = 0.0f;
             * velocityMaintainer.TargetVelocity.TurnLeft = 0.0f;
             *
             * // Initialize flight controller.
             * controller = new CompositeFlightController();
             * controller.Drone = drone;
             * controller.FlightBehaviors.Add(velocityMaintainer);
             * controller.FlightBehaviors.Add(heightMaintainer);
             *          controller.FlightBehaviors.Add(new JoystickBehavior(joystick));
             * controller.ControlCycleStarting += () => joystick.ProcessEvents();
             *
             * controller.Start();
             */

            videoTimer.Enabled = true;
        }
Ejemplo n.º 31
0
        private Drone()
        {
            Logger.WriteLine("DroneClient()");
            if (!enabled)
            {
                return;
            }
            droneClient = DroneClient.Instance;
            droneClient.NavigationDataViewModel.PropertyChanged += NavigationDataViewModel_PropertyChanged;
            droneClient.Messages.CollectionChanged += Messages_CollectionChanged;

            // commandTimer.Interval = TimeSpan.FromMilliseconds(50);
            // commandTimer.Tick += OnCommandTimerTick;
        }
Ejemplo n.º 32
0
        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            if (this._viewModel != null)
            {
                this._viewModel.OnNavigatedTo();
            }

            _droneClient = DroneClient.Instance;

            _timer          = new DispatcherTimer();
            _timer.Tick    += _Timer_Tick;
            _timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
            _timer.Start();
        }
Ejemplo n.º 33
0
 public void SendTo(DroneClient client)
 {
     ATCommand command;
     while (_queue.TryDequeue(out command)) client.Send(command);
 }
 public ConfigurationAcquisition(DroneClient client)
 {
     _client = client;
 }