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; // } //} }
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]); } } }