跳到主要内容

通道与传输

通道(IChannel)只处理字节,不解析 Modbus 或自定义帧。协议叠在通道之上,所以同一套设备代码可以在串口、TCP、UDP 和虚拟通道之间切换。

状态

状态含义
Created已登记,尚未打开
Opening正在打开端口或建立连接
Open可以读写
Faulted打开或写入失败
Closed已关闭

对已经打开或已经关闭的通道再次调用 OpenAsync / CloseAsync 没有副作用。

事件

  • StateChanged:状态变化;失败时带有 Error
  • DataReceived:收到数据的副本,可以安全保存。该事件可能不在 UI 线程上触发。
  • PacketTraced:收发原始报文时触发,包含方向、时间和十六进制显示,适合通信日志与排错。

实现

类型用途
SerialPortChannel串口
TcpClientChannelTCP 客户端
UdpClientChannelUDP 客户端
VirtualChannel内存回显,或挂上 IVirtualResponder 模拟从站

对业务代码来说,它们都是 IChannel。详见 串口TCP/UDP虚拟通道通信报文追踪