CNAS取数仪器端升级
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SerialPortDataReceive.cs 1.3KB

4 달 전
123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using CnasSynchronousCommon;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO.Ports;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows.Forms;
  9. namespace CNAS_SerialPort
  10. {
  11. public class SerialPortDataReceive
  12. {
  13. public static string ReceivePortData(Control thisControl, SerialPort sPortBalance,List<string> lstReadTxt)
  14. {
  15. string strReceiveData = "";
  16. //读取缓冲区三次数据,类似{N +} {0.0000}{ g},这里只要第二部分的内容
  17. try
  18. {
  19. //读取数据
  20. thisControl.Invoke((EventHandler)(delegate
  21. {
  22. string strReadTxt = sPortBalance.ReadExisting();
  23. if (strReadTxt.StartsWith("N"))
  24. {
  25. lstReadTxt.Clear();
  26. }
  27. lstReadTxt.Add(strReadTxt);
  28. if (lstReadTxt.Count == 3)
  29. {
  30. strReceiveData = lstReadTxt[1];
  31. }
  32. }
  33. )
  34. );
  35. }
  36. catch (Exception ex)
  37. {
  38. AppLog.Error($"接收数据失败:{ex.Message}");
  39. throw ex;
  40. }
  41. return strReceiveData;
  42. }
  43. }
  44. }