Esempio n. 1
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);
        }
Esempio n. 2
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();
    }
        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);
        }
Esempio n. 4
0
        /// <summary>
        /// Initialize video processing
        /// </summary>
        private void InitializeVideo()
        {
            videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
            videoPacketDecoderWorker.Start();
            videoPacketDecoderWorker.UnhandledException += UnhandledException;

            timerVideoUpdate.Enabled = true;
        }
Esempio n. 5
0
        public static void VideoWorkerBinder()
        {
            //Let's do video Inputs
            VideoPacketDecoderWorker = new VideoPacketDecoderWorker(AR.Drone.Video.PixelFormat.BGR24, true, OnVideoPacketDecoded);
            VideoPacketDecoderWorker.Start();

            HorizontalCamera();
        }
Esempio n. 6
0
        public PlayerForm()
        {
            InitializeComponent();

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

            tmrVideoUpdate.Enabled = true;

            _videoPacketDecoderWorker.UnhandledException += UnhandledException;
        }
Esempio n. 7
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;
            }
        }
Esempio n. 8
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;
        }
Esempio n. 9
0
        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;
        }
Esempio n. 10
0
    /// <summary>
    /// Use this for initialization
    /// </summary>
    void Start()
    {
        Debug.Log("Start DroneObserver");
        // initialize data array
        data          = new byte[width * height * 3];
        cameraTexture = new Texture2D(width, height);
        // Initialize drone
        videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.RGB24, true, OnVideoPacketDecoded);
        videoPacketDecoderWorker.Start();

        droneClient = new DroneClient("192.168.1.1");
        //droneClient = new DroneClient ("127.0.0.1");
        droneClient.UnhandledException     += HandleUnhandledException;
        droneClient.VideoPacketAcquired    += OnVideoPacketAcquired;
        droneClient.NavigationDataAcquired += navData => navigationData = navData;

        droneClient.FlatTrim();

        videoPacketDecoderWorker.UnhandledException += HandleUnhandledException;
        droneClient.Start();

        Settings settings = new Settings();

        settings.Video.Codec = VideoCodecType.H264_720P;
        droneClient.Send(settings);
        droneClient.AckControlAndWaitForConfirmation();

        switchDroneCamera(AR.Drone.Client.Configuration.VideoChannelType.Horizontal);

        isDroneConnected = droneClient.IsConnected;

        if (!isDroneConnected)
        {
            Debug.LogError("Drone not Connected. Retry!!!");
        }
        if (isDroneConnected)
        {
            Debug.LogWarning("Drone Connected!!!");
        }

        // determine connection
        wlanClient = new WlanClient();
    }
Esempio n. 11
0
        public ARDrone2()
        {
            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
            _videoPacketDecoderWorker.Start();

            string path   = string.Format("flight_{0:yyyy-MM-dd-HH-mm}.ardrone", DateTime.Now);
            var    stream = new FileStream(path, FileMode.OpenOrCreate);

            _packetRecorderWorker = new PacketRecorder(stream);
            _packetRecorderWorker.Start();

            _droneClient = new DroneClient();
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.ConfigurationUpdated     += OnConfigurationUpdated;
            _droneClient.Active = true;

            //tmrStateUpdate.Enabled = true;
            //tmrVideoUpdate.Enabled = true;
        }
Esempio n. 12
0
        public MainForm()
        {
            InitializeComponent();

            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, OnVideoPacketDecoded);
            _videoPacketDecoderWorker.Start();

            string path = string.Format("flight_{0:yyyy-MM-dd-HH-mm}.ardrone", DateTime.Now);

            _packetRecorderWorker = new PacketRecorderWorker(path);
            _packetRecorderWorker.Start();

            _droneClient = new DroneClient();
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.Active = true;

            tmrStateUpdate.Enabled = true;
            tmrVideoUpdate.Enabled = true;
        }
Esempio n. 13
0
        public DroneController()
        {
            //this.image = new ImageBrush();

            _client  = new DroneClient("192.168.1.1");
            settings = new Settings();

            outDoor(false);
            flightWithoutShell(false);

            _battery                  = new Battery();
            _battery.Percentage       = 100;
            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(AR.Drone.Video.PixelFormat.BGR24, true, OnVideoPacketDecoded);
            _videoPacketDecoderWorker.Start();
            _client.VideoPacketAcquired += OnVideoPacketAcquired;

            tmrVideoUpdate          = new System.Windows.Forms.Timer();
            tmrVideoUpdate.Interval = 20;
            tmrVideoUpdate.Tick    += new System.EventHandler(this.tmrVideoUpdate_Tick);
            tmrVideoUpdate.Enabled  = true;
            _videoPacketDecoderWorker.UnhandledException += UnhandledException;
        }
Esempio n. 14
0
        public MainForm()
        {
            InitializeComponent();

            last    = DateTime.UtcNow;
            bytes   = 0;
            running = true;

            // initialize video packet decoder.
            videoDecoder = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnFrameDecoded);
            videoDecoder.UnhandledException += (delegate(object sender, Exception ex)
            {
                Console.WriteLine(ex);
                Process.GetCurrentProcess().Kill();
            });
            videoDecoder.Start();

            videoClient = new TcpClient(Environment.GetCommandLineArgs()[1], 1994);
            new Thread(VideoRecvLoop).Start();

            videoTimer.Enabled = true;
        }
Esempio n. 15
0
        protected override void LoadContent()
        {
            renderTarget = new RenderTarget2D(GraphicsDevice, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            spriteBatch  = new SpriteBatch(GraphicsDevice);
            hudFontSmall = Content.Load <SpriteFont>(@"Fonts\FontSmall");
            if (drawTestImage)
            {
                videoTexture = Content.Load <Texture2D>(@"test");
            }
            else
            {
                videoTexture = new Texture2D(GraphicsDevice, 640, 360, false, SurfaceFormat.Color);
            }

            colorData = new Microsoft.Xna.Framework.Color[640 * 360];
            videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
            videoPacketDecoderWorker.Start();
            droneClient = new DroneClient();
            droneClient.VideoPacketAcquired  += OnVideoPacketAcquired;
            droneClient.ConfigurationUpdated += OnConfigurationUpdated;
            droneClient.Active = true;
            try
            {
                kinect = new KinectClient("it-IT");
                kinect.VoiceCommandRecognized   += OnVoiceCommandRecognized;
                kinect.VoiceCommandRejected     += OnVoiceCommandRejected;
                kinect.GestureCommandRecognized += OnGestureRecognized;
                kinectMessage = "Kinect trovato. Riconoscimento vocale e comandi attivi...";
            }
            catch (Exception e)
            {
                kinectMessage = e.Message;
            }
            oculusRiftDistortionShader = Content.Load <Effect>("Shaders/OculusRift");
            oculusClient = new OculusClient();
            UpdateResolutionAndRenderTargets();
            screenType = ScreenType.Splash; //The splash show commands
        }
Esempio n. 16
0
        void configDrone()
        {
            if (droneClient != null)
            {
                droneClient.VideoPacketAcquired -= OnVideoPacketAcquired;
            }
            droneClient?.Stop();
            droneClient?.Dispose();
            iotController = null;
            autoPilot?.Stop();
            autoPilot = null;
            videoPacketDecoderWorker?.Stop();
            videoPacketDecoderWorker?.Dispose();

            Logger.LogInfo($"Configuring Drone at {config.DroneIP}");
            droneClient = new DroneClient(config.DroneIP);
            droneClient.VideoPacketAcquired += OnVideoPacketAcquired;
            videoPacketDecoderWorker         = new VideoPacketDecoderWorker(AR.Drone.Video.PixelFormat.BGR24, true, OnVideoPacketDecoded);
            videoPacketDecoderWorker.Start();

            iotController = new IoTHubController(droneClient, analyzerOutput, bitmaps);
            autoPilot     = new Pilot.Controller(droneClient, analyzerOutput, config, iotController);
        }
Esempio n. 17
0
        /// <summary>
        /// Connects with the drone
        /// </summary>
        private DroneController()
        {
            // Sets paths
            DataPath = "Data/";
            LivePath = DataPath + "Live/";

            // Starts the video stream
            _videoPacketDecoderWorker = new VideoPacketDecoderWorker(PixelFormat.BGR24, true, OnVideoPacketDecoded);
            _videoPacketDecoderWorker.Start();

            // Connects with the drone
            _droneClient = new DroneClient("192.168.1.1");

            _frameNumber = 0;
            DateTime dt = DateTime.Now;

            _frameTag = dt.Year.ToString() + dt.Month.ToString("00") + dt.Day.ToString("00") + dt.Hour.ToString("00") + dt.Minute.ToString("00") + "_";

            // Enable navigation data
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.NavigationDataAcquired   += data => _navigationData = data;
        }
Esempio n. 18
0
        public MainForm()
        {
            InitializeComponent();

            Text += Environment.Is64BitProcess ? " [64-bit]" : " [32-bit]";

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

            string path   = string.Format("flight_{0:yyyy-MM-dd-HH-mm}.ardrone", DateTime.Now);
            var    stream = new FileStream(path, FileMode.OpenOrCreate);

            _packetRecorderWorker = new PacketRecorder(stream);
            _packetRecorderWorker.Start();

            _droneClient = new DroneClient();
            _droneClient.NavigationPacketAcquired += OnNavigationPacketAcquired;
            _droneClient.VideoPacketAcquired      += OnVideoPacketAcquired;
            _droneClient.ConfigurationUpdated     += OnConfigurationUpdated;
            _droneClient.Active = true;

            tmrStateUpdate.Enabled = true;
            tmrVideoUpdate.Enabled = true;
        }