架构
Zeus 的架构目标很简单:通信、协议和采集不要写进窗口代码里。窗口只负责展示和操作,底层收发由 Zeus 管。
应用程序(WinForms / WPF / 控制台)
↓
Zeus.Presentation.* BindTo / AsBindingSource、线程切换
↓
Zeus.Hosting ZeusHost.Create、生命周期、采集循环
↓
Zeus.Configuration JSON 配置
↓
Zeus.Protocols.* 自定义帧、Modbus
↓
Zeus.Communications 串口、TCP、虚拟通道
↓
Zeus.Core / Zeus.Abstractions
分层
| 层 | 做什么 | 不做什么 |
|---|---|---|
Zeus.Presentation.* | 把状态和数据绑定到 WinForms / WPF 控件 | 不解析协议 |
Zeus.Hosting | 创建宿主、启动停止、运行采集循环 | 不关心具体 UI |
Zeus.Configuration | 从 JSON 声明通道、设备和点表 | 不热更新通道结构 |
Zeus.Protocols.* | 处理自定义帧和 Modbus | 不直接打开串口 |
Zeus.Communications | 提供串口、TCP、虚拟通道 | 不理解寄存器和业务含义 |
Zeus.Core / Zeus.Abstractions | 提供基础接口、点表和通道状态机 | 不引用桌面框架 |
这样分层后,业务代码可以面向 IChannel、IDevice 和点表编写。你从虚拟通道换到串口,或从 WinForms 换到 WPF,不需要重写协议层。
三种用法
- 推荐:
ZeusHost.Create加上AddSerialPort/AddModbusRtu等扩展方法。 - 自定义协议: 使用
FrameSession或自己实现编解码,仍复用官方通道和宿主。 - 直接读写字节: 只使用
IChannel,适合很简单的协议或调试工具。
如果你是第一次看 Zeus,先不用深究这些分层。按 控制台示例 跑通,再回来看这页会更容易。