private void btnAffichage_Click(object sender, EventArgs e) { if (btnAffichage.Text == "Lancer l'affichage") { _linkDisplay = ThreadManager.CreateThread(link => DisplayInfos()); _linkDisplay.Name = "Affichage des données"; _linkDisplay.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 100)); Dessinateur.Start(); btnAffichage.Text = "Stopper l'affichage"; btnAffichage.Image = GoBot.Properties.Resources.Pause16; } else { _linkDisplay?.Cancel(); _linkDisplay?.WaitEnd(); _linkDisplay = null; Dessinateur.Stop(); btnAffichage.Text = "Lancer l'affichage"; btnAffichage.Image = GoBot.Properties.Resources.Play16; } }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Down) { _moveVertical = -1; } else if (keyData == Keys.Up) { _moveVertical = 1; } else if (keyData == Keys.Left) { _moveHorizontal = -1; } else if (keyData == Keys.Right) { _moveHorizontal = 1; } if ((_moveVertical != 0 || _moveHorizontal != 0) && _moveLoop == null) { _moveLoop = ThreadManager.CreateThread(o => ZoomStep()); _moveLoop.StartInfiniteLoop(20); } return(base.ProcessCmdKey(ref msg, keyData)); }
private void btnLaunch_Click(object sender, EventArgs e) { if (_linkPolling == null) { btnLaunch.Text = "Stopper"; btnLaunch.Image = Properties.Resources.Pause16; _linkPolling = ThreadManager.CreateThread(link => Measure()); _linkPolling.StartInfiniteLoop(new TimeSpan(0)); _linkDrawing = ThreadManager.CreateThread(link => DrawMeasures()); _linkDrawing.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 50)); } else { btnLaunch.Text = "Lancer"; btnLaunch.Image = Properties.Resources.Play16; _linkPolling.Cancel(); _linkDrawing.Cancel(); _linkPolling.WaitEnd(); _linkDrawing.WaitEnd(); _linkPolling = null; _linkDrawing = null; } }
private void btnLateral_Click(object sender, EventArgs e) { _isOnLeft = !_isOnLeft; if (_linkAnimation != null) { _linkAnimation.Cancel(); _linkAnimation.WaitEnd(); } if (!_isOnLeft) { Actionneur.ElevatorRight.DoPushInside(); btnLateral.Image = Properties.Resources.BigArrow; } else { Actionneur.ElevatorRight.DoPushOutside(); Bitmap bmp = new Bitmap(Properties.Resources.BigArrow); bmp.RotateFlip(RotateFlipType.RotateNoneFlipX); btnLateral.Image = bmp; } _linkAnimation = ThreadManager.CreateThread(link => ThreadLateral(!_isOnLeft ? -4 : 4)); _linkAnimation.StartInfiniteLoop(15); picStorage.Focus(); }
protected override bool StartLoop() { _linkMeasures = ThreadManager.CreateThread(link => DoMeasure()); _linkMeasures.Name = "Mesure Hokuyo " + _id.ToString(); _linkMeasures.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 100)); return(true); }
public override void Init() { Historique = new Historique(IDRobot); PositionsHistorical = new List <Position>(); Position = new Position(GoBot.Recalibration.StartPosition); PositionTarget = null; _linkAsserv.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, _highResolutionAsservissement ? 1 : 16)); _linkLogPositions.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 100)); }
private void btnUp_Click(object sender, EventArgs e) { if (_linkAnimation != null) { _linkAnimation.Cancel(); _linkAnimation.WaitEnd(); } _linkAnimation = ThreadManager.CreateThread(link => ThreadVertical(4)); _linkAnimation.StartInfiniteLoop(10); picStorage.Focus(); }
private void switchButtonPort_ValueChanged(object sender, bool value) { if ((switchButtonPortA.Value || switchButtonPortB.Value || switchButtonPortC.Value) && _link == null) { _link = ThreadManager.CreateThread(link => AskValues()); _link.Name = "Ports numériques " + _board.ToString(); _link.StartInfiniteLoop(50); } if (!switchButtonPortA.Value & !switchButtonPortB.Value & !switchButtonPortC.Value & _link != null) { _link.Cancel(); _link.WaitEnd(); _link = null; } }
private void btnOnOff_ValueChanged(object sender, bool value) { if (value) { ledState.Color = Robots.MainRobot.ReadSensorOnOff(_sensor) ? Color.LimeGreen : Color.Red; _linkPolling = ThreadManager.CreateThread(link => PollingSensor()); _linkPolling.RegisterName(nameof(PollingSensor) + " " + lblName.Text); _linkPolling.StartInfiniteLoop(50); } else { _linkPolling.Cancel(); _linkPolling.WaitEnd(); _linkPolling = null; ledState.Color = Color.Gray; } }
protected override bool StartLoop() { bool ok; if (_manager.CreateChannelUDP()) { _feedLink = ThreadManager.CreateThread(link => FeedWatchDog()); _feedLink.Name = "R2000 Watchdog"; _feedLink.StartInfiniteLoop(1000); ok = true; } else { ok = false; } return(ok); }
private void boxTorque_ValueChanged(object sender, bool value) { if (value) { _linkPolling = ThreadManager.CreateThread(link => GetServoInfos()); _linkPolling.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 20)); _linkDrawing = ThreadManager.CreateThread(link => DrawTorqueCurve()); _linkDrawing.StartInfiniteLoop(new TimeSpan(0, 0, 0, 0, 100)); } else { _linkPolling.Cancel(); _linkDrawing.Cancel(); _linkPolling.WaitEnd(); _linkDrawing.WaitEnd(); _linkPolling = null; _linkDrawing = null; } }
private void btnDown_Click(object sender, EventArgs e) { if (_linkAnimation != null) { _linkAnimation.Cancel(); _linkAnimation.WaitEnd(); } List <Color> colors = _isOnLeft ? _leftStorage : _rightStorage; int index = 0; if (colors[2] != Color.Transparent) { _verticalPosition = 450 - 290; index = 2; } else if (colors[1] != Color.Transparent) { _verticalPosition = 450 - 220; index = 1; } else if (colors[0] != Color.Transparent) { _verticalPosition = 450 - 150; index = 0; } btnSpawnGreen.Visible = false; btnSpawnRed.Visible = false; _onGround = colors[index]; colors[index] = Color.Transparent; _linkAnimation = ThreadManager.CreateThread(link => ThreadVertical(-4)); _linkAnimation.StartInfiniteLoop(10); picStorage.Focus(); }
private void switchBouton_ValueChanged(object sender, bool value) { if (value) { _linkPolling = ThreadManager.CreateThread(link => AskValues()); _linkPolling.Name = "Ports analogiques " + Carte.ToString(); _linkPolling.StartInfiniteLoop(50); _linkDraw = ThreadManager.CreateThread(link => ctrlGraphique.DrawCurves()); _linkDraw.Name = "Graph ports analogiques " + Carte.ToString(); _linkDraw.StartInfiniteLoop(100); } else { _linkPolling.Cancel(); _linkPolling.WaitEnd(); _linkPolling = null; _linkDraw.Cancel(); _linkDraw.WaitEnd(); _linkDraw = null; } }
private void PagePanda_Load(object sender, EventArgs e) { if (!Execution.DesignMode) { Connections.AllConnections.ForEach(c => c.ConnectionChecker.ConnectionStatusChange += ConnectionChecker_ConnectionStatusChange); AllDevices.LidarAvoid.ConnectionChecker.ConnectionStatusChange += LidarAvoid_ConnectionStatusChange; SetPicImage(picLidar, Devices.AllDevices.LidarAvoid.ConnectionChecker.Connected); SetPicImage(picIO, Connections.ConnectionIO.ConnectionChecker.Connected); SetPicImage(picMove, Connections.ConnectionMove.ConnectionChecker.Connected); SetPicImage(picCAN, Connections.ConnectionCanBridge.ConnectionChecker.Connected); SetPicImage(picServo1, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo1].ConnectionChecker.Connected); SetPicImage(picServo2, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo2].ConnectionChecker.Connected); SetPicImage(picServo3, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo3].ConnectionChecker.Connected); SetPicImage(picServo4, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo4].ConnectionChecker.Connected); SetPicImage(picServo5, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo5].ConnectionChecker.Connected); SetPicImage(picServo6, Connections.ConnectionsCan[Communications.CAN.CanBoard.CanServo6].ConnectionChecker.Connected); _linkBattery = ThreadManager.CreateThread(link => UpdateBatteryIcon()); _linkBattery.StartInfiniteLoop(1000); pagePandaMatch.CalibrationDone += PagePandaMatch_CalibrationDone; } }
/// <summary> /// Initialise toutes les connexions /// </summary> public static void Init() { _connectionsCan = new Dictionary <CanBoard, CanSubConnection>(); EnableConnection = new Dictionary <Board, bool>(); UDPBoardConnection = new Dictionary <Board, Connection>(); AllConnections = new List <Connection>(); ConnectionIO = AddUDPConnection(Board.RecIO, IPAddress.Parse("10.1.0.14"), 12324, 12314); ConnectionIO.Name = Board.RecIO.ToString(); ConnectionMove = AddUDPConnection(Board.RecMove, IPAddress.Parse("10.1.0.11"), 12321, 12311); ConnectionMove.Name = Board.RecMove.ToString(); ConnectionCanBridge = AddUDPConnection(Board.RecCan, IPAddress.Parse("10.1.0.15"), 12325, 12315); ConnectionCanBridge.Name = Board.RecCan.ToString(); ConnectionCan = new CanConnection(Board.RecCan); _connectionsCan.Add(CanBoard.CanServo1, new CanSubConnection(ConnectionCan, CanBoard.CanServo1)); _connectionsCan.Add(CanBoard.CanServo2, new CanSubConnection(ConnectionCan, CanBoard.CanServo2)); _connectionsCan.Add(CanBoard.CanServo3, new CanSubConnection(ConnectionCan, CanBoard.CanServo3)); _connectionsCan.Add(CanBoard.CanServo4, new CanSubConnection(ConnectionCan, CanBoard.CanServo4)); _connectionsCan.Add(CanBoard.CanServo5, new CanSubConnection(ConnectionCan, CanBoard.CanServo5)); _connectionsCan.Add(CanBoard.CanServo6, new CanSubConnection(ConnectionCan, CanBoard.CanServo6)); ConnectionCanAlim = new CanSubConnection(ConnectionCan, CanBoard.CanAlim); _connectionsCan.Add(CanBoard.CanAlim, ConnectionCanAlim); _connectionsCan.Values.ToList().ForEach(o => AllConnections.Add(o)); // En remplacement des tests de connexion des ConnexionCheck, pour les syncroniser _linkTestConnections = ThreadManager.CreateThread(link => TestConnections()); _linkTestConnections.Name = "Tests de connexion"; _linkTestConnections.StartInfiniteLoop(); }
public static void StartMatch() { _linkStartZone = ThreadManager.CreateThread(link => CheckStartZonePresence()); _linkStartZone.StartInfiniteLoop(1000); _linkStartZone.Name = "Check zone départ"; }