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; } }
private void DisposeNavDataWorker() { if (NavDataWorker != null) { NavDataWorker.Dispose(); NavDataWorker = null; } }
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 }; }
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)); }
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); }