public static void InitComPort(string module_name, string form_name, SerialPort[] ports) { int errorPort = 0; int m = ports.Length; //com口个数 int n = 0; try { string regPath = module_name + "\\" + form_name; foreach (SerialPort port in ports) { if (port.IsOpen) { port.Close(); } } for (int i = 1; i < 17; i++) { if (!string.IsNullOrEmpty(PaCSGlobal.GetRegistryValue("COM" + i, regPath))) { errorPort = i; if (n >= m) { break; } ports[n].PortName = "COM" + i; if (PaCSGlobal.GetRegistryValue("COM" + i, regPath).IndexOf(',') != -1) { ports[n].BaudRate = int.Parse(PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[0]); } else { ports[n].BaudRate = int.Parse(PaCSGlobal.GetRegistryValue("COM" + i, regPath)); } ports[n].Open(); n++; } } } catch (Exception e) { XtraMessageBox.Show("端口COM" + errorPort + "打开错误", "提示"); } }
private void Init() { DataColumn dc = null; dc = dt.Columns.Add("Com Port", Type.GetType("System.String")); dc = dt.Columns.Add("Baud Rate", Type.GetType("System.String")); dc = dt.Columns.Add("Suffix", Type.GetType("System.String")); for (int i = 1; i < 17; i++) { if (!string.IsNullOrEmpty(PaCSGlobal.GetRegistryValue("COM" + i, regPath))) { DataRow dr = dt.NewRow(); dr["Com Port"] = "COM" + i; dr["Baud Rate"] = PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[0]; dr["Suffix"] = PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[1]; dt.Rows.Add(dr); } } RepositoryItemComboBox cmbCom = new RepositoryItemComboBox(); cmbCom.TextEditStyle = TextEditStyles.DisableTextEditor; RepositoryItemComboBox cmbRate = new RepositoryItemComboBox(); cmbRate.TextEditStyle = TextEditStyles.DisableTextEditor; RepositoryItemComboBox cmbSfx = new RepositoryItemComboBox(); cmbSfx.TextEditStyle = TextEditStyles.DisableTextEditor; for (int i = 1; i < 17; i++) { cmbCom.Items.Add("COM" + i); } cmbRate.Items.Add("2400"); cmbRate.Items.Add("4800"); cmbRate.Items.Add("9600"); cmbRate.Items.Add("14400"); cmbRate.Items.Add("19200"); cmbRate.Items.Add("38400"); cmbRate.Items.Add("57600"); cmbRate.Items.Add("115200"); cmbRate.Items.Add("128000"); cmbSfx.Items.Add("ETX"); cmbSfx.Items.Add("LF"); cmbSfx.Items.Add("CR"); cmbSfx.Items.Add("CRLF"); cmbSfx.Items.Add("CRFF"); cmbSfx.Items.Add("NONE"); gridControl1.DataSource = dt; gridView1.Columns[0].Width = 120; gridView1.Columns[1].Width = 120; gridView1.Columns[0].ColumnEdit = cmbCom; gridView1.Columns[1].ColumnEdit = cmbRate; gridView1.Columns[2].ColumnEdit = cmbSfx; }