Skip to main content

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

LayerDoesDoes not do
Zeus.Presentation.*Bind channel and point state to WinForms / WPF controlsParse protocols
Zeus.HostingCreate hosts, start/stop services, run acquisitionDepend on a specific UI
Zeus.ConfigurationLoad channels, devices, and points from JSONOpen ports directly
Zeus.Protocols.*Implement protocol clients, devices, point maps, and virtual respondersOwn transport sockets or serial ports
Zeus.CommunicationsProvide serial, TCP, UDP, server, and virtual channelsUnderstand registers or business meaning
Zeus.Core / Zeus.AbstractionsDefine core interfaces, point table, and channel state machineReference 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

  1. Recommended: ZeusHost.Create plus extensions such as AddSerialPort, AddModbusRtu, AddMitsubishiMc, AddSiemensS7, AddOmronFinsUdp, AddOmronHostLink, or AddEtherNetIp.
  2. Custom protocol: Use FrameSession or implement your own codec while reusing official channels and host lifecycle.
  3. 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.