コード例 #1
0
        public void Connect()
        {
            try
            {
                DisposeWorkersAndTimer();

                ControlWorker = WorkerFactory.CreateControlWorker();
                ControlWorker.Disconnected += ControlSocketOnDisconnected;

                CommandWorker = WorkerFactory.CreateCommandWorker();

                NavDataWorker = WorkerFactory.CreateNavDataWorker();
                NavDataWorker.NavDataReceived += NavDataWorkerOnNavDataReceived;

                ControlWorker.Run();
                CommandWorker.Run();

                CommandTimer = TimerFactory.CreateTimer();

                NavDataWorker.Run();

                QueueInitialCommands();

                Connected = true;
            }
            catch
            {
                Disconnect();
                throw;
            }
        }
コード例 #2
0
 private void DisposeNavDataWorker()
 {
     if (NavDataWorker != null)
     {
         NavDataWorker.Dispose();
         NavDataWorker = null;
     }
 }
コード例 #3
0
 public void InitializeTests()
 {
     _mockUdpSocket      = new Mock <IUdpSocket>();
     _mockNavDataFactory = new Mock <NavDataFactory>();
     _mockTimerFactory   = new Mock <TimerFactory>();
     _mockTimer          = new Mock <IDisposable>();
     _target             = new NavDataWorker {
         Socket = _mockUdpSocket.Object, NavDataFactory = _mockNavDataFactory.Object, TimerFactory = _mockTimerFactory.Object
     };
 }
コード例 #4
0
        public DroneClient()
        {
            _NavigationDataViewModel = new ViewModel.NavigationDataViewModel();
            _configuration           = new DroneConfiguration();

            _CommandWorker       = new CommandWorker(this);
            _NavDataWorker       = new NavDataWorker(this);
            _ConfigurationWorker = new ConfigurationWorker(this);
            //TODO ajouter le _configurationAcquisitionWorker
            _WatchdogWorker = new WatchdogWorker(this, new WorkerBase[] { _NavDataWorker, _CommandWorker });
            _InputTimer     = ThreadPoolTimer.CreatePeriodicTimer(new TimerElapsedHandler(InputTimerElapsedHandler), TimeSpan.FromMilliseconds(1000 / 12));
        }
コード例 #5
0
        public virtual NavDataWorker CreateNavDataWorker()
        {
            var socket       = SocketFactory.GetUdpSocket(ConnectParams.NetworkAddress, ConnectParams.NavDataPort);
            var timerFactory = new TimerFactory();
            var worker       = new NavDataWorker
            {
                Socket         = socket,
                NavDataFactory = new NavDataFactory(),
                TimerFactory   = timerFactory
            };

            timerFactory.TimerCallback = worker.CheckTimeout;
            timerFactory.Period        = NavDataWorker.Timeout;
            return(worker);
        }