SerialCommunicationBase.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO.Ports;
  6. namespace HslCommunication.Serial
  7. {
  8. /// <summary>
  9. /// 所有串行通信类的基类,提供了一些基础的服务
  10. /// </summary>
  11. public class SerialBase
  12. {
  13. /// <summary>
  14. /// 用于通信的基础串口
  15. /// </summary>
  16. protected SerialPort SP_ReadData = new SerialPort();
  17. /// <summary>
  18. /// 初始化串口信息
  19. /// </summary>
  20. public void SerialPortInni(string portName)
  21. {
  22. if (SP_ReadData.IsOpen)
  23. {
  24. return;
  25. }
  26. //串口的端口号
  27. SP_ReadData.PortName = "COM5";
  28. //串口的波特率
  29. SP_ReadData.BaudRate = 9600;
  30. //串口的数据位
  31. SP_ReadData.DataBits = 8;
  32. //停止位
  33. SP_ReadData.StopBits = StopBits.One;
  34. //奇偶校验为偶数
  35. SP_ReadData.Parity = Parity.Even;
  36. SP_ReadData.DataReceived += SP_ReadData_DataReceived;
  37. }
  38. /// <summary>
  39. /// 根据自定义初始化方法进行初始化串口信息
  40. /// </summary>
  41. public void SerialPortInni(Action<SerialPort> initi)
  42. {
  43. if (SP_ReadData.IsOpen)
  44. {
  45. return;
  46. }
  47. //串口的端口号
  48. SP_ReadData.PortName = "COM5";
  49. //串口的波特率
  50. SP_ReadData.BaudRate = 9600;
  51. //串口的数据位
  52. SP_ReadData.DataBits = 8;
  53. //停止位
  54. SP_ReadData.StopBits = StopBits.One;
  55. //奇偶校验为偶数
  56. SP_ReadData.Parity = Parity.Even;
  57. initi.Invoke(SP_ReadData);
  58. SP_ReadData.DataReceived += SP_ReadData_DataReceived;
  59. }
  60. private void SP_ReadData_DataReceived(object sender, SerialDataReceivedEventArgs e)
  61. {
  62. }
  63. }
  64. }