Zeus
Zeus 是面向 .NET 的上位机开发框架。它帮你处理通信通道、协议收发、周期采集、宿主生命周期和 UI 线程切换;你只需要关心设备业务和界面怎么展示。
把复杂留给 Zeus,把简单留给用户。
先看懂一句话
普通上位机程序经常会写成这样:窗口代码里打开串口、订阅事件、解析字节、刷新控件、关闭时释放端口。功能一多,串口、协议、界面线程和重连逻辑会混在一起。
Zeus 的做法是把这些拆开:
你的界面 / 业务代码
↓
Zeus Host:启动、停止、释放资源
↓
Channel:串口 / TCP / 虚拟通道
↓
Protocol:自定义帧 / Modbus
↓
Device / Point:设备与业务数据点
三分钟跑起来
先不要接真实硬件,先跑虚拟通道。虚拟通道会把写入的数据原样回显,适合确认程序结构没问题。
using System.Text;
using Zeus;
await using var app = ZeusHost.Create(builder =>
{
builder.AddVirtualChannel("meter");
});
var meter = app.Channels.Get("meter");
meter.DataReceived += (_, e) =>
{
Console.WriteLine(Encoding.ASCII.GetString(e.Data.Span));
};
await app.StartAsync();
await meter.WriteAsync(Encoding.ASCII.GetBytes("PING"));
await app.StopAsync();
你应该看到控制台输出 PING。这说明宿主启动了,通道打开了,写入和接收事件都走通了。
换成真实硬件
当虚拟通道跑通后,把这一行:
builder.AddVirtualChannel("meter");
换成真实串口:
builder.AddSerialPort("meter", "COM3", 9600);
后面的 Channels.Get、DataReceived、WriteAsync 不用改。这就是 Zeus 的核心价值:业务代码不关心底层到底是虚拟通道、串口还是 TCP。
你应该怎么读手册
| 如果你是 | 推荐入口 |
|---|---|
| 第一次看 Zeus | 我该从哪开始 |
| 只想先运行一下 | 控制台示例 |
| 正在做 WinForms | 第一个 WinForms 应用 |
| 正在做 WPF | 第一个 WPF 应用 |
| 要接真实串口 | 串口 |
| 要读 Modbus 仪表 | Modbus |
Zeus 做什么
- 管理通道启动、停止和释放,避免端口泄漏。
- 统一串口、TCP 和虚拟通道的 API。
- 提供自定义帧和 Modbus 的协议能力。
- 支持点表采集,把温度、压力这类业务点按间隔读出来。
- 提供 WinForms / WPF 适配器,把通道事件安全切到 UI 线程。
- 允许无硬件开发:先用虚拟通道和虚拟从站,硬件到位后替换配置。
Zeus 不做什么
- 不自带组态画面、图表控件、权限系统、配方管理和报表系统。
- 不替你猜设备协议;你仍然需要知道设备手册里的地址、波特率、功能码和帧格式。
- 不强迫你使用某种 UI;控制台、WinForms、WPF 都可以接同一套宿主。
下一步:我该从哪开始。