private void changeCombeBoxItems(Dictionary <string, string> dict, ComboBox cmb) { string select; gSerialPorts = dict; if (!gControlPanelEnable) { return; } if (dict.Count <= 0) { cmbPortName.Items.Clear(); return; } if (cmb.Text == string.Empty) { select = ""; } else { select = cmb.Text; } cmb.Items.Clear(); cmb.Items.AddRange(AutoDetectingComPorts.getComPortItems(dict)); if (AutoDetectingComPorts.FindingComPortName(select, dict) == string.Empty) { cmb.SelectedIndex = 0; return; } else { cmb.Text = select; } }
private void SerialPortControlPanel_Load(object sender, EventArgs e) { StartPosition = FormStartPosition.CenterScreen; InitializeControlValues(); gADCP = new AutoDetectingComPorts(); gADCP.ComPortChangeEventHandler += new EventHandler(ComPortChangeEvent); // 訂閱(subscribe) 事件 //setPortNameItems(AutoDetectingComPorts.getComPortItems(gADCP.SerialPorts)); cmbPortName.Items.Clear(); changeCombeBoxItems(gADCP.SerialPorts, cmbPortName); // Create a timer with a ten second interval. ms aTimer = new System.Timers.Timer(10000); // Set the Interval to 6 seconds (6000 milliseconds). aTimer.Interval = IntervalTimeMs; // Hook up the Elapsed event for the timer. aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); }
public void SerialPortOpen() { try { // Set the port's settings gSerialComPort.BaudRate = int.Parse(cmbBaudRate.Text); gSerialComPort.DataBits = int.Parse(cmbDataBits.Text); gSerialComPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), cmbStopBits.Text); gSerialComPort.Parity = (Parity)Enum.Parse(typeof(Parity), cmbParity.Text); gSerialComPort.PortName = AutoDetectingComPorts.FindingComPortName(cmbPortName.Text, gSerialPorts); gSerialComPort.Open(); } catch (Exception ex) { MessageBox.Show(this, "Can not open Serial Port : " + gSerialComPort.PortName + Environment.NewLine + Environment.NewLine + ex.ToString()); } }