跳到主要内容

通道与传输

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

状态

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

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

事件

  • StateChanged:状态变化;失败时带有 Error
  • DataReceived:收到数据的副本,可以安全保存。该事件可能不在 UI 线程上触发。

实现

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

对业务代码来说,它们都是 IChannel。详见 串口TCP虚拟通道