Architecture
Zeus has a simple architectural goal: communication, protocols, and acquisition should not live inside window code. Windows display and operate; Zeus owns the infrastructure.
Application (WinForms / WPF / Console)
↓
Zeus.Presentation.* BindTo / AsBindingSource, UI thread marshaling
↓
Zeus.Hosting ZeusHost.Create, lifecycle, acquisition loop
↓
Zeus.Configuration JSON configuration
↓
Zeus.Protocols.* Custom frames, Modbus, Mitsubishi MC, Siemens S7, Omron FINS, Omron Host Link, EtherNet/IP
↓
Zeus.Communications Serial, TCP, UDP, virtual channels
↓
Zeus.Core / Zeus.Abstractions
Layers
| Layer | Does | Does not do |
|---|---|---|
Zeus.Presentation.* | Bind channel and point state to WinForms / WPF controls | Parse protocols |
Zeus.Hosting | Create hosts, start/stop services, run acquisition | Depend on a specific UI |
Zeus.Configuration | Load channels, devices, and points from JSON | Open ports directly |
Zeus.Protocols.* | Implement protocol clients, devices, point maps, and virtual responders | Own transport sockets or serial ports |
Zeus.Communications | Provide serial, TCP, UDP, server, and virtual channels | Understand registers or business meaning |
Zeus.Core / Zeus.Abstractions | Define core interfaces, point table, and channel state machine | Reference desktop frameworks |
With this split, business code can target IChannel, IDevice, and the point table. Replacing a virtual channel with a serial port, or moving from WinForms to WPF, does not require rewriting protocol logic.
Three Usage Styles
- Recommended:
ZeusHost.Createplus extensions such asAddSerialPort,AddModbusRtu,AddMitsubishiMc,AddSiemensS7,AddOmronFinsUdp,AddOmronHostLink, orAddEtherNetIp. - Custom protocol: Use
FrameSessionor implement your own codec while reusing official channels and host lifecycle. - Raw bytes: Use only
IChannel, which fits simple text/binary devices and diagnostic tools.
If you are new to Zeus, run Console Sample before spending too much time on the layers.