FrmSetting.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using System;
  2. using System.Linq;
  3. using System.Windows.Forms;
  4. using Core.ONH.Collection.comm;
  5. namespace Core.ONH.Collection.Receive
  6. {
  7. public partial class FrmSetting : Form
  8. {
  9. public FrmSetting()
  10. {
  11. InitializeComponent();
  12. }
  13. private void FrmSetting_Load(object sender, EventArgs e)
  14. {
  15. for (var i = 1; i <= 20; i++)
  16. cmbx_Com.Items.Add("COM" + i);
  17. InitTreeView();
  18. IniDecimal();
  19. }
  20. private void InitTreeView()
  21. {
  22. string selectCom = "";
  23. if (tvComm.SelectedNode!=null && tvComm.SelectedNode.Parent != null && tvComm.SelectedNode.Parent.Name == "mainnode")
  24. {
  25. selectCom = tvComm.SelectedNode.Name;
  26. }
  27. tvComm.Nodes["mainnode"].Nodes.Clear();
  28. SerialPortHelper.Instance()
  29. .SerialPorts.OrderBy(p => p.PortName)
  30. .ToList()
  31. .ForEach(p => { tvComm.Nodes["mainnode"].Nodes.Add(p.PortName, p.PortName); });
  32. tvComm.ExpandAll();
  33. if (selectCom!="" && tvComm.Nodes["mainnode"].Nodes[selectCom] != null)
  34. {
  35. tvComm.SelectedNode = tvComm.Nodes["mainnode"].Nodes[selectCom];
  36. }
  37. else if (tvComm.Nodes["mainnode"].Nodes.Count>0)
  38. {
  39. tvComm.SelectedNode = tvComm.Nodes["mainnode"].FirstNode;
  40. }
  41. tvComm_NodeMouseClick(null, new TreeNodeMouseClickEventArgs( tvComm.SelectedNode,MouseButtons.XButton1,0,0,0));
  42. }
  43. private void IniDecimal()
  44. {
  45. cboO.Checked = ONHDataHelper.Instance().OFlag;
  46. cboN.Checked = ONHDataHelper.Instance().NFlag;
  47. cboH.Checked = ONHDataHelper.Instance().HFlag;
  48. nudO.Value = ONHDataHelper.Instance().ODecimals;
  49. nudN.Value = ONHDataHelper.Instance().NDecimals;
  50. nudH.Value = ONHDataHelper.Instance().HDecimals;
  51. }
  52. private void btnSave_Click(object sender, EventArgs e)
  53. {
  54. if (cmbx_Com.Text == "")
  55. {
  56. MessageBox.Show("请选择串口号!", "提示");
  57. cmbx_Com.Focus();
  58. return;
  59. }
  60. if (baudRate.Text == "")
  61. {
  62. MessageBox.Show("请选择波特率!", "提示");
  63. baudRate.Focus();
  64. return;
  65. }
  66. if (dataBits.Text == "")
  67. {
  68. MessageBox.Show("请选择数据位!", "提示");
  69. dataBits.Focus();
  70. return;
  71. }
  72. if (stopBits.Text == "")
  73. {
  74. MessageBox.Show("请选择停止位!", "提示");
  75. stopBits.Focus();
  76. return;
  77. }
  78. if (paRity.Text == "")
  79. {
  80. MessageBox.Show("请选择奇偶校验!", "提示");
  81. paRity.Focus();
  82. return;
  83. }
  84. SerialPortEntity currentSeial;
  85. var currentSeials = SerialPortHelper.Instance()
  86. .SerialPorts.Where(p => p.PortName == cmbx_Com.Text).ToList();
  87. if (currentSeials.Count <= 0)
  88. {
  89. currentSeial = new SerialPortEntity
  90. {
  91. PortName = cmbx_Com.Text,
  92. StrBaudRate = baudRate.Text,
  93. StrDataBits = dataBits.Text,
  94. StrStopBits = stopBits.Text,
  95. StrParity = paRity.Text,
  96. DeviceName = txtDEVICE_NAME.Text
  97. };
  98. SerialPortHelper.Instance().AddSerialPorts(currentSeial);
  99. }
  100. else
  101. {
  102. currentSeial = currentSeials[0];
  103. currentSeial.StrBaudRate = baudRate.Text;
  104. currentSeial.StrDataBits = dataBits.Text;
  105. currentSeial.StrStopBits = stopBits.Text;
  106. currentSeial.StrParity = paRity.Text;
  107. currentSeial.DeviceName = txtDEVICE_NAME.Text;
  108. SerialPortHelper.Instance().ChangeSerialPorts(currentSeial);
  109. }
  110. InitTreeView();
  111. }
  112. private void btnDelete_Click(object sender, EventArgs e)
  113. {
  114. var currentSeials = SerialPortHelper.Instance()
  115. .SerialPorts.Where(p => p.PortName == cmbx_Com.Text).ToList();
  116. if (currentSeials.Count > 0)
  117. SerialPortHelper.Instance().DeleteSerialPorts(currentSeials[0]);
  118. InitTreeView();
  119. }
  120. private void tvComm_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
  121. {
  122. if ( e.Node.Parent!=null && e.Node.Parent.Name=="mainnode")
  123. {
  124. SerialPortEntity currentSeial;
  125. var currentSeials = SerialPortHelper.Instance()
  126. .SerialPorts.Where(p => p.PortName == e.Node.Text).ToList();
  127. if (currentSeials.Count > 0)
  128. {
  129. currentSeial = currentSeials[0];
  130. cmbx_Com.Text = currentSeial.PortName;
  131. baudRate.Text = currentSeial.StrBaudRate;
  132. dataBits.Text = currentSeial.StrDataBits;
  133. stopBits.Text = currentSeial.StrStopBits;
  134. paRity.Text = currentSeial.StrParity;
  135. txtDEVICE_NAME.Text = currentSeial.DeviceName;
  136. }
  137. }
  138. }
  139. private void button1_Click(object sender, EventArgs e)
  140. {
  141. ONHDataHelper.Instance().OFlag = cboO.Checked;
  142. ONHDataHelper.Instance().NFlag = cboN.Checked;
  143. ONHDataHelper.Instance().HFlag = cboH.Checked;
  144. ONHDataHelper.Instance().ODecimals = (int)nudO.Value;
  145. ONHDataHelper.Instance().NDecimals = (int)nudN.Value;
  146. ONHDataHelper.Instance().HDecimals = (int)nudH.Value;
  147. MessageBox.Show("保存成功");
  148. }
  149. }
  150. }