public void WriteCommand(Azioni azione, Pinza pinza, Stazioni stazione, PosizioneSchedaForRobot pos) { CommandPending = true; byte[] msg = Encoding.ASCII.GetBytes($"[{(int)azione},{(int)pinza},{(int)stazione},{(int)pos}]"); _handlerMain.Send(msg); _data = null; // An incoming connection needs to be processed. while (true) { _bytes = new byte[1024]; int bytesRec = _handlerMain.Receive(_bytes); _data = null; _data += Encoding.ASCII.GetString(_bytes, 0, bytesRec); if (_data.IndexOf("cmd_ok#") > -1) { Console.WriteLine("Comando Ricevuto da Robot"); } else if (_data.IndexOf("cmd_end#") > -1) { Console.WriteLine("Comando Completato dal Robot"); CommandPending = false; break; } } }
private void executeCommand(Azioni azione, Pinza pinza, Stazioni stazione, PosizioneSchedaForRobot posizione) { if (_robot != null && _robot.AreCommandsEnabled && !_robot.CommandPending) { _robot.WriteCommand(azione, pinza, stazione, posizione); } else if (_robot != null) { MessageBox.Show("Definire istanza Robot"); } else if (_robot.CommandPending) { MessageBox.Show("Attendere la fine del comando in esecuzione dal robot"); } }