public JoyStickFlightTest(
            IRepository repository,
            ITransceiver transceiver,
            IReceiver stateReceiver,
            IReceiver videoReceiver)
        {
            this.tello      = new DroneMessenger(transceiver, stateReceiver, videoReceiver);
            this.repository = repository ?? throw new ArgumentNullException(nameof(repository));

            this.tello.Controller.ConnectionStateChanged += this.Controller_ConnectionStateChanged;
            this.tello.Controller.ExceptionThrown        += this.Controller_ExceptionThrown;
            this.tello.Controller.ResponseReceived       += this.Controller_ResponseReceived;

            this.tello.StateObserver.StateChanged     += this.StateObserver_StateChanged;
            this.tello.VideoObserver.VideoSampleReady += this.VideoObserver_VideoSampleReady;

            this.repository.CreateCatalog <Session>();
            this.repository.CreateCatalog <ObservationGroup>();
            this.repository.CreateCatalog <StateObservation>();
            this.repository.CreateCatalog <AirSpeedObservation>();
            this.repository.CreateCatalog <AttitudeObservation>();
            this.repository.CreateCatalog <BatteryObservation>();
            this.repository.CreateCatalog <HobbsMeterObservation>();
            this.repository.CreateCatalog <PositionObservation>();
            this.repository.CreateCatalog <ResponseObservation>();

            this.session = this.repository.NewEntity <Session>();
        }
Esempio n. 2
0
        public async void Init()
        {
            var transceiver   = new UdpTransceiver(IPAddress.Parse("192.168.10.1"), 8889);
            var stateReceiver = new UdpReceiver(8890);
            var videoReceiver = new UdpReceiver(11111);

            Tello = new DroneMessenger(transceiver, stateReceiver, videoReceiver);

            Tello.Controller.ConnectionStateChanged += Controller_ConnectionStateChanged;
            Tello.Controller.PositionChanged        += Controller_PositionChanged;
            Tello.StateObserver.StateChanged        += StateObserver_StateChanged;
            Tello.VideoObserver.VideoSampleReady    += VideoObserver_VideoSampleReady;

            await Tello.Controller.Connect();
        }
Esempio n. 3
0
        public MainViewModel(
            IUIDispatcher dispatcher,
            IUINotifier notifier,
            IRepository repository,
            ITransceiver transceiver,
            IReceiver stateReceiver,
            IReceiver videoReceiver)
            : base(dispatcher, notifier)
        {
            this.tello = new DroneMessenger(transceiver, stateReceiver, videoReceiver);

            repository.CreateCatalog <Session>();
            repository.CreateCatalog <ObservationGroup>();
            repository.CreateCatalog <StateObservation>();
            repository.CreateCatalog <AirSpeedObservation>();
            repository.CreateCatalog <AttitudeObservation>();
            repository.CreateCatalog <BatteryObservation>();
            repository.CreateCatalog <HobbsMeterObservation>();
            repository.CreateCatalog <PositionObservation>();
            repository.CreateCatalog <ResponseObservation>();

            var session = repository.NewEntity <Session>();

            this.StateViewModel = new TelloStateViewModel(
                dispatcher,
                notifier,
                this.tello.StateObserver,
                repository,
                session);

            this.VideoViewModel = new TelloVideoViewModel(
                dispatcher,
                notifier,
                this.tello.VideoObserver);

            this.ControllerViewModel = new TelloControllerViewModel(
                dispatcher,
                notifier,
                this.tello.Controller,
                repository,
                session);
        }