Exemplo n.º 1
0
    public ArduinoListener()
    {
        //portExists = SerialPort.GetPortNames().Any(x => x == "COM3");

        if (portExists)
        {
            try
            {
                //port = new SerialPort("COM3", 9600);
                port = new EnhancedSerialPort("COM3", 9600);
                port.DataReceived += HandlePortDataReceived;
                port.ReadTimeout   = 100;
                port.Open();
            }
            catch (Exception ex)
            {
                port = null;
            }
        }

        //if (port != null)
        //{
        //    if (port.IsOpen)
        //    {
        //        port.Close();
        //    }
        //    else
        //    {
        //        port.Open();
        //        port.ReadTimeout = 2;
        //    }
        //}
    }
Exemplo n.º 2
0
        private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            var portslist = (CheckedListBox)sender;


            if (e.NewValue == CheckState.Checked)
            {
                KeyValuePair <string, EnhancedSerialPort> x = DetectedSerialPorts.SingleOrDefault(kvp => kvp.Key == portnames[e.Index]);

                EnhancedSerialPort _port = x.Value;

                _port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

                try
                {
                    _port.Open();

                    ListenSerialPorts.Add(new KeyValuePair <string, EnhancedSerialPort>(portnames[e.Index], _port));

                    foreach (UserControl control in flowLayoutPanel1.Controls.OfType <ICommuniquant>())
                    {
                        (control as DateTimeUserControl).AddPort(portnames[e.Index]);
                    }
                }
                catch (Exception ex) {
                    e.NewValue = CheckState.Unchecked;
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                KeyValuePair <string, EnhancedSerialPort> _port = ListenSerialPorts.SingleOrDefault(kvp => kvp.Key == portnames[e.Index]);

                (_port.Value as EnhancedSerialPort).Close();

                ListenSerialPorts.Remove(ListenSerialPorts.SingleOrDefault(kvp => kvp.Key == portnames[e.Index]));

                foreach (UserControl control in flowLayoutPanel1.Controls.OfType <ICommuniquant>())
                {
                    (control as DateTimeUserControl).RemovePort(portnames[e.Index]);
                }
            }
        }