NuGet Packages
Copy the Command for Your Scenario
Console, Windows Service, or Background Acquisition
dotnet add package Zeus.Communications
Zeus.Communications brings the host and core abstractions, including ZeusHost.Create, virtual channels, serial ports, TCP, and UDP.
WinForms Host App
dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.WinForms
Use a Windows desktop target:
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
WPF Host App
dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.Wpf
Use a Windows desktop target:
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
Protocols
dotnet add package Zeus.Communications
dotnet add package Zeus.Protocols.Modbus
dotnet add package Zeus.Protocols.Mc
dotnet add package Zeus.Protocols.S7
dotnet add package Zeus.Protocols.Fins
dotnet add package Zeus.Protocols.HostLink
dotnet add package Zeus.Protocols.EtherNetIp
dotnet add package Zeus.Protocols.Framing
Install only the protocol packages your app needs.
JSON Configuration
dotnet add package Zeus.Configuration
Configuration apps usually also install Zeus.Communications and the protocol package used by the JSON file.
Package Map
| Package | Purpose |
|---|---|
Zeus.Abstractions | Core contracts for channels, devices, points, and hosts; usually pulled transitively |
Zeus.Runtime | Runtime core; assembly name is Zeus.Core because Zeus.Core is unavailable on nuget.org |
Zeus.Hosting | Host lifecycle and acquisition loop; usually pulled transitively |
Zeus.Communications | Serial, TCP, UDP, server channels, and virtual channels |
Zeus.Protocols.Framing | Custom [header][length][payload][checksum] style protocols |
Zeus.Protocols.Modbus | Modbus RTU / TCP |
Zeus.Protocols.Mc | Mitsubishi MC 1E / 3E / 4E Binary / ASCII |
Zeus.Protocols.S7 | Siemens S7 TCP for DB/I/Q/M common types |
Zeus.Protocols.Fins | Omron FINS UDP/TCP for CIO/WR/HR/AR/DM/EM/TIM-CNT |
Zeus.Protocols.HostLink | Omron Host Link ASCII for CIO/LR/HR/AR/DM |
Zeus.Protocols.EtherNetIp | Allen-Bradley EtherNet/IP CIP tags and attributes |
Zeus.Configuration | Load channels, devices, acquisition, and points from zeus.json |
Zeus.Presentation.Abstractions | UI-neutral binding abstractions |
Zeus.Presentation.WinForms | WinForms AttachZeus, BindTo, BindState, and point binding |
Zeus.Presentation.Wpf | WPF AttachZeus, BindTo, and binding sources |
Minimal Code After Install
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.UTF8.GetString(e.Data.Span));
await app.StartAsync();
await meter.WriteAsync(Encoding.UTF8.GetBytes("PING"));
If it prints PING, the package reference and basic runtime path are working.
Source: github.com/Mokode-dev/Zeus. License: MIT.