SystemSetting_ScaleTest.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.IO.Ports;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Text.RegularExpressions;
  11. using System.Threading;
  12. using System.Windows.Forms;
  13. using UAS_MES.DataOperate;
  14. using UAS_MES.Entity;
  15. using UAS_MES.PublicMethod;
  16. namespace UAS_MES.SystemSetting
  17. {
  18. public partial class SystemSetting_ScaleTest : Form
  19. {
  20. Thread thread;
  21. bool ReadData = true;
  22. SerialPort serialPort1 = new SerialPort();
  23. public SystemSetting_ScaleTest()
  24. {
  25. InitializeComponent();
  26. }
  27. private void 电子秤调试_Load(object sender, EventArgs e)
  28. {
  29. CheckForIllegalCrossThreadCalls = false;
  30. ComList.Text = BaseUtil.GetCacheData("PortName").ToString();
  31. BaudRate.Text = BaseUtil.GetCacheData("BaudRate").ToString();
  32. }
  33. private void StartTest_Click(object sender, EventArgs e)
  34. {
  35. thread = new Thread(GetSerialData);
  36. try
  37. {
  38. ReadData = true;
  39. serialPort1.PortName = this.ComList.Text;
  40. serialPort1.BaudRate = int.Parse(BaudRate.Text);
  41. BaseUtil.SetCacheData("PortName", this.ComList.Text);
  42. BaseUtil.SetCacheData("BaudRate", BaudRate.Text);
  43. serialPort1.Open();
  44. thread.Start();
  45. }
  46. catch (Exception mes) { MessageBox.Show(mes.Message); }
  47. }
  48. private void GetSerialData()
  49. {
  50. if (serialPort1.IsOpen)
  51. {
  52. if (!SystemInf.OpenPort.Contains(serialPort1.PortName))
  53. {
  54. SystemInf.OpenPort.Add(serialPort1.PortName);
  55. try
  56. {
  57. while (ReadData)
  58. {
  59. try
  60. {
  61. Weight.Text = Regex.Replace(serialPort1.ReadLine(), "\\D+", "");
  62. }
  63. catch (Exception)
  64. {
  65. ReadData = false;
  66. }
  67. }
  68. }
  69. catch (IOException ex) { MessageBox.Show(ex.Message); }
  70. }
  71. else
  72. MessageBox.Show("端口已被占用,请关闭其他窗口");
  73. }
  74. }
  75. private void 电子秤调试_FormClosing(object sender, FormClosingEventArgs e)
  76. {
  77. StopTest.PerformClick();
  78. try { ReadData = false; }
  79. catch (Exception) { }
  80. }
  81. private void StopTest_Click(object sender, EventArgs e)
  82. {
  83. ReadData = false;
  84. SystemInf.OpenPort.Remove(serialPort1.PortName);
  85. serialPort1.Close();
  86. }
  87. }
  88. }