1,SerialPortHelper串口工具类封装
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace public.Util
{
/// <summary>
/// 串口操作助手类
/// </summary>
class SerialPortHelper
{
/// <summary>
/// 串口是否已打开
/// </summary>
public bool IsOpen { get; set; }
/// <summary>
/// 初始化 串行端口资源
/// </summary>
private SerialPort mySerialPort = new SerialPort();
/// <summary>
/// 串口接收数据 位置
/// </summary>
private static int pSerialPortRecv = 0;
/// <summary>
/// 缓存区大小的长度
/// 缓冲区可调大
/// (接收数据处理定时器 内接收数据量 小于下面设置的值即可)
/// </summary>
private static int byteLength = 40960;
/// <summary>
/// 串口接收字节 缓存区大小
/// </summary>
private byte[] byteSerialPortRecv = new byte[byteLength];
/// <summary>
/// 串口 接收数据处理定时器
/// </summary>
private Timer SerialPortRecvTimer;
/// <summary>
/// 广播 收到的数据 事件
/// </summary>
public event EventHandler<SerialPortRecvEventArgs> ReceivedDataEvent;
/// <summary>
/// 广播 收到的数据
/// </summary>
public class SerialPortRecvEventArgs : EventArgs
{
/// <summary>
/// 广播 收到的串口数据
/// </summary>
public readonly byte[] RecvData = new byte[byteLength];
/// <summary>
/// 收到数据 的 长度
/// </summary>
public readonly int RecvDataLength;
/// <summary>
/// 将 收到的数据 转化成 待广播的数据
/// </summary>
public SerialPortRecvEventArgs(byte[] recvData, int recvDataLength)
{
recvData.CopyTo(RecvData, 0);
RecvDataLength = recvDataLength;
}
}
/// <summary>
/// 初始化
/// </summary>
public SerialPortHelper()
{
IsOpen = false;
}
/// <summary>
/// 设置 串口配置
/// </summary>
/// <param name="portName">串口号</param>
/// <param name="baudRate">波特率</param>
/// <param name="parity">校验位</param>
/// <param name="dataBits">数据位</p


414

被折叠的 条评论
为什么被折叠?



