Exemplo n.º 1
0
 public MainForm()
 {
     InitializeComponent();
     cbAvailablePorts.Items.AddRange(SerialPort.GetPortNames());
     cbAvailablePorts.SelectedIndex = 0;
     _status = ArduinoStatus.Disconnected;
 }
Exemplo n.º 2
0
 public MainForm()
 {
     InitializeComponent();
     cbAvailablePorts.Items.AddRange(SerialPort.GetPortNames());
     cbAvailablePorts.SelectedIndex = 0;
     _status = ArduinoStatus.Disconnected;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Constructeur de la Classe
 /// </summary>
 public MainFrame()
 {
     InitializeComponent();
     status = ArduinoStatus.DISCONNECTED;
     Maj();
     String[] items = SerialPort.GetPortNames();
     this.PortsBox.Items.AddRange(items);
     this.PortsBox.SelectedItem = PortsBox.Items[0];
 }
Exemplo n.º 4
0
 private void Form1_Load(object sender, EventArgs e)
 {
     ArduinoPort.PortName = "COM4";
     ArduinoPort.Open();
     Role1_Control_Button.ForeColor = Color.White;
     Role1_Control_Button.BackColor = Color.Red;
     button8.ForeColor = Color.White;
     button8.BackColor = Color.Red;
     ArduinoStatus.AppendText("Merhaba");
 }
Exemplo n.º 5
0
 private static void communicationTimedOut(Object state)
 {
     communicatorTask.Dispose();
     communicationTimer.Dispose();
     _status = ArduinoStatus.Idle;
     #region debug
     debugger.WriteLine(Debugger.DebugLevel.DebugLogic, "Arduino: Communicate(\"{0}\") ==> Timedout (after {1} millis)",
                        _command, _timeoutMillis);
     #endregion
     throw new ArduinoCommunicationException(string.Format("Timedout after {0} millis.", _timeoutMillis));
 }
Exemplo n.º 6
0
        public MainForm()
        {
            InitializeComponent();
            cbAvailablePorts.Items.AddRange(SerialPort.GetPortNames());
            cbAvailablePorts.SelectedIndex = 0;
            _status      = ArduinoStatus.Disconnected;
            _image       = new Bitmap(pbGrid.Size.Width, pbGrid.Size.Height);
            pbGrid.Image = _image;
            _pixels      = new bool[_count, _count];

            SetupFont();
            ShowGrid();
        }
Exemplo n.º 7
0
 private void btDisconnect_Click(object sender, EventArgs e)
 {
     try
     {
         _arduinoPort.Close();
         _status = ArduinoStatus.Disconnected;
         UpdateFormByStatus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         lbStatus.Text = "Status: Error";
     }
 }
Exemplo n.º 8
0
 private void btDisconnect_Click(object sender, EventArgs e)
 {
     try
     {
         _arduinoPort.Close();
         _status = ArduinoStatus.Disconnected;
         UpdateFormByStatus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         lbStatus.Text = "Status: Error";
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// Fonction appellée lors d'un clic sur le bouton "Déconnecter"
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btDisconnect_Click(object sender, EventArgs e)
 {
     try
     {
         currentPort.Close();
         status = ArduinoStatus.DISCONNECTED;
         Maj();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         append(prefix[1], ex.Message);
         lblStatus.Text = "Status: Erreur";
     }
 }
Exemplo n.º 10
0
 private void btConnect_Click(object sender, EventArgs e)
 {
     _status = ArduinoStatus.Connecting;
     UpdateFormByStatus();
     _arduinoPort = new SerialPort(cbAvailablePorts.SelectedItem.ToString());
     try
     {
         _arduinoPort.Open();
         _status = ArduinoStatus.Connected;
         UpdateFormByStatus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         lbStatus.Text = "Status: Error";
     }
 }
Exemplo n.º 11
0
        private void toggleConnectBtn_Click(object sender, EventArgs e)
        {
            switch (StatusEnum)
            {
                case ArduinoStatus.Connected:
                    try
                    {
                        setMotorSpeed(0);

                        _arduinoPort.Close();
                        StatusLabel.Text = "Disconnected";
                        toggleConnectBtn.Text = "Connect";
                        StatusEnum = ArduinoStatus.Disconnected;

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        StatusLabel.Text = "Error";
                    }
                    break;
                case ArduinoStatus.Connecting:
                    break;
                case ArduinoStatus.Disconnected:
                    StatusEnum = ArduinoStatus.Connecting;
                    _arduinoPort = new SerialPort(cbPorts.SelectedItem.ToString());
                    _arduinoPort.BaudRate = 9600;

                    try
                    {
                        _arduinoPort.Open();
                        setMotorSpeed(SpeedBar.Value);
                        StatusEnum = ArduinoStatus.Connected;
                        StatusLabel.Text = "Connected";
                        toggleConnectBtn.Text = "Disconnect";
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        StatusLabel.Text = "Error";
                    }

                    break;
            }

        }
Exemplo n.º 12
0
 private void btConnect_Click(object sender, EventArgs e)
 {
     _status = ArduinoStatus.Connecting;
     UpdateFormByStatus();
     _arduinoPort = new SerialPort(cbAvailablePorts.SelectedItem.ToString());
     try
     {
         _arduinoPort.Open();
         _status = ArduinoStatus.Connected;
         UpdateFormByStatus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         lbStatus.Text = "Status: Error";
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Fonction appellée lors d'un clic sur le bouton "Connecter"
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btConnect_Click(object sender, EventArgs e)
 {
     status = ArduinoStatus.CONNECTING;
     Maj();
     currentPort = new SerialPort(PortsBox.SelectedItem.ToString());
     try
     {
         if (serial.connect(currentPort))
         {
             status = ArduinoStatus.CONNECTED;
             Maj();
             currentPort.DataReceived += new SerialDataReceivedEventHandler(onSerialDataReceived);
         }
     }
     catch (NullReferenceException nrex)
     {
         MessageBox.Show(nrex.Message);
         append(prefix[1], nrex.Message);
         lblStatus.Text = "Status: Erreur";
     }
 }
Exemplo n.º 14
0
        /// <summary>
        /// If you are connected to the Arduino this will close the connection. You should
        /// do this before exiting the program but it's not a big deal if you don't.
        /// </summary>
        public void CloseConnection()
        {
            if (cThread.IsAlive)
                cThread.Abort();

            if (sp.IsOpen)
                sp.Close();

            Status = ArduinoStatus.NotConnected;
        }
Exemplo n.º 15
0
 /// <summary>
 /// Constructor for the status args.
 /// </summary>
 /// <param name="Status"></param>
 public StatusArgs(ArduinoStatus Status)
 {
     _Status = Status;
 }
Exemplo n.º 16
0
        private void SendCommand(string command,
                                 bool waitForReply           = true,
                                 ArduinoStatus interimStatus = ArduinoStatus.Communicating,
                                 int timeoutMillis           = 0)
        {
            if (_serialPort == null)
            {
                _error  = "_serialPort is null";
                _status = ArduinoStatus.BadPort;
                return;
            }
            else if (!_serialPort.IsOpen)
            {
                _error  = string.Format("port \"{0}\" not open", _serialPortName);
                _status = ArduinoStatus.PortNotOpen;
                return;
            }

            char[] crnls = { '\r', '\n' };

            if (timeoutMillis != 0)
            {
                _timeoutMillis     = timeoutMillis;
                communicationTimer = new Timer(communicationTimedOut);
                communicationTimer.Change(_timeoutMillis, Timeout.Infinite);
            }
            else
            {
                _timeoutMillis = 0;
            }

            _command = command;
            _status  = interimStatus;
            _error   = null;
            #region debug
            debugger.WriteLine(Debugger.DebugLevel.DebugLogic, string.Format("arduino status: {0}", _status));
            #endregion
            try
            {
                communicatorTask = Task.Run(() =>
                {
                    string packet = mkPacket(command);
                    string reply  = null;
                    #region debug
                    debugger.WriteLine(Debugger.DebugLevel.DebugLogic, "Arduino: Communicate: Sending \"{0}\" ...", _command);
                    #endregion
                    lock (_serialLock)
                    {
                        _serialPort.Write(packet);
                        if (waitForReply)
                        {
                            Thread.Sleep(1000);
                            reply = getPacket().TrimEnd(crnls);
                            #region debug
                            debugger.WriteLine(Debugger.DebugLevel.DebugLogic, "Arduino: Communicate(\"{0}\") ==> \"{1}\"", _command, reply);
                            #endregion
                        }
                    }
                    CommunicationCompleteEventArgs e = new CommunicationCompleteEventArgs();
                    e.reply = reply;
                    _status = ArduinoStatus.Idle;
                    #region debug
                    debugger.WriteLine(Debugger.DebugLevel.DebugLogic, string.Format("arduino status: {0}", _status));
                    #endregion
                    RaiseCommunicationComplete(e);
                });
            }
            catch (Exception ex)
            {
                communicatorTask.Dispose();
                _status = ArduinoStatus.Idle;
                #region debug
                debugger.WriteLine(Debugger.DebugLevel.DebugLogic, string.Format("arduino status: {0}, communication exception: {1}", _status, ex.Message));
                #endregion
            }
        }
Exemplo n.º 17
0
        private void ThreadConnect()
        {
            leftMotorValue = rightMotorValue = realLeftMotorValue = realRightMotorValue = 0;

            Status = ArduinoStatus.Connecting;
            if (sp.IsOpen)
                sp.Close();

            string[] ports = SerialPort.GetPortNames();

            if (ports.Length > 0)
            {
                foreach (string comPort in ports)
                {
                    Console.Write("Connecting to : " + comPort + "... ");
                    sp.PortName = comPort;
                    sp.Open();
                    if (sp.IsOpen)
                    {
                        gotHandShakeBack = false;
                        Console.WriteLine("Connected");
                        Console.Write("Sending handshake... ");
                        SendData(ArduinoCommands.Handshake, 0);
                        Console.WriteLine("Sent");
                        Console.Write("Waiting for reply... ");
                        DateTime sendTime = DateTime.Now;
                        while ((DateTime.Now - sendTime).Seconds < 1 && !gotHandShakeBack) ;
                        if (gotHandShakeBack)
                        {
                            Console.WriteLine("Got Reply");
                            Status = ArduinoStatus.Connected;
                            smoothMotorThread = new Thread(ThreadSmoothMotors);
                            smoothMotorThread.Start();
                            SendGForceAndTemp(true);
                            return;
                        }
                        else
                        {
                            Console.WriteLine("No Reply");
                            sp.Close();
                        }
                    }
                }
                Console.WriteLine("Can't find arduino, check that the arduino is plugged in.");
                Status = ArduinoStatus.NotConnected;
                if (sp.IsOpen)
                    sp.Close();
            }
            else
            {
                Console.WriteLine("No COM-Ports found, check that the arduino is plugged in.");
                Status = ArduinoStatus.NotConnected;
                if (sp.IsOpen)
                    sp.Close();
            }
        }