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