using System; using System.Linq; using System.Windows.Forms; using Core.ONH.Collection.comm; namespace Core.ONH.Collection.Receive { public partial class FrmSetting : Form { public FrmSetting() { InitializeComponent(); } private void FrmSetting_Load(object sender, EventArgs e) { for (var i = 1; i <= 20; i++) cmbx_Com.Items.Add("COM" + i); InitTreeView(); IniDecimal(); } private void InitTreeView() { string selectCom = ""; if (tvComm.SelectedNode!=null && tvComm.SelectedNode.Parent != null && tvComm.SelectedNode.Parent.Name == "mainnode") { selectCom = tvComm.SelectedNode.Name; } tvComm.Nodes["mainnode"].Nodes.Clear(); SerialPortHelper.Instance() .SerialPorts.OrderBy(p => p.PortName) .ToList() .ForEach(p => { tvComm.Nodes["mainnode"].Nodes.Add(p.PortName, p.PortName); }); tvComm.ExpandAll(); if (selectCom!="" && tvComm.Nodes["mainnode"].Nodes[selectCom] != null) { tvComm.SelectedNode = tvComm.Nodes["mainnode"].Nodes[selectCom]; } else if (tvComm.Nodes["mainnode"].Nodes.Count>0) { tvComm.SelectedNode = tvComm.Nodes["mainnode"].FirstNode; } tvComm_NodeMouseClick(null, new TreeNodeMouseClickEventArgs( tvComm.SelectedNode,MouseButtons.XButton1,0,0,0)); } private void IniDecimal() { cboO.Checked = ONHDataHelper.Instance().OFlag; cboN.Checked = ONHDataHelper.Instance().NFlag; cboH.Checked = ONHDataHelper.Instance().HFlag; nudO.Value = ONHDataHelper.Instance().ODecimals; nudN.Value = ONHDataHelper.Instance().NDecimals; nudH.Value = ONHDataHelper.Instance().HDecimals; } private void btnSave_Click(object sender, EventArgs e) { if (cmbx_Com.Text == "") { MessageBox.Show("请选择串口号!", "提示"); cmbx_Com.Focus(); return; } if (baudRate.Text == "") { MessageBox.Show("请选择波特率!", "提示"); baudRate.Focus(); return; } if (dataBits.Text == "") { MessageBox.Show("请选择数据位!", "提示"); dataBits.Focus(); return; } if (stopBits.Text == "") { MessageBox.Show("请选择停止位!", "提示"); stopBits.Focus(); return; } if (paRity.Text == "") { MessageBox.Show("请选择奇偶校验!", "提示"); paRity.Focus(); return; } SerialPortEntity currentSeial; var currentSeials = SerialPortHelper.Instance() .SerialPorts.Where(p => p.PortName == cmbx_Com.Text).ToList(); if (currentSeials.Count <= 0) { currentSeial = new SerialPortEntity { PortName = cmbx_Com.Text, StrBaudRate = baudRate.Text, StrDataBits = dataBits.Text, StrStopBits = stopBits.Text, StrParity = paRity.Text, DeviceName = txtDEVICE_NAME.Text }; SerialPortHelper.Instance().AddSerialPorts(currentSeial); } else { currentSeial = currentSeials[0]; currentSeial.StrBaudRate = baudRate.Text; currentSeial.StrDataBits = dataBits.Text; currentSeial.StrStopBits = stopBits.Text; currentSeial.StrParity = paRity.Text; currentSeial.DeviceName = txtDEVICE_NAME.Text; SerialPortHelper.Instance().ChangeSerialPorts(currentSeial); } InitTreeView(); } private void btnDelete_Click(object sender, EventArgs e) { var currentSeials = SerialPortHelper.Instance() .SerialPorts.Where(p => p.PortName == cmbx_Com.Text).ToList(); if (currentSeials.Count > 0) SerialPortHelper.Instance().DeleteSerialPorts(currentSeials[0]); InitTreeView(); } private void tvComm_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if ( e.Node.Parent!=null && e.Node.Parent.Name=="mainnode") { SerialPortEntity currentSeial; var currentSeials = SerialPortHelper.Instance() .SerialPorts.Where(p => p.PortName == e.Node.Text).ToList(); if (currentSeials.Count > 0) { currentSeial = currentSeials[0]; cmbx_Com.Text = currentSeial.PortName; baudRate.Text = currentSeial.StrBaudRate; dataBits.Text = currentSeial.StrDataBits; stopBits.Text = currentSeial.StrStopBits; paRity.Text = currentSeial.StrParity; txtDEVICE_NAME.Text = currentSeial.DeviceName; } } } private void button1_Click(object sender, EventArgs e) { ONHDataHelper.Instance().OFlag = cboO.Checked; ONHDataHelper.Instance().NFlag = cboN.Checked; ONHDataHelper.Instance().HFlag = cboH.Checked; ONHDataHelper.Instance().ODecimals = (int)nudO.Value; ONHDataHelper.Instance().NDecimals = (int)nudN.Value; ONHDataHelper.Instance().HDecimals = (int)nudH.Value; MessageBox.Show("保存成功"); } } }