Skip to main content

NuGet Packages

Prefer Templates For a New Project​

Do not pick packages by hand the first time:

dotnet new install Zeus.Templates
dotnet new zeus-console -n ZeusCheck
dotnet new zeus-winforms -n MyPanel
dotnet new zeus-wpf -n MyPanel.Wpf
dotnet new zeus-modbus -n MyOven

Templates wire the target framework, package references, host, bindings, or zeus.json. Add packages below only when you already have a project.

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. Add Zeus.Configuration when you use zeus.json.

WinForms Host App​

dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.WinForms
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>

WPF Host App​

dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.Wpf
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>

Install a protocol package after the communication and UI packages.

Protocols​

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.Mewtocol
dotnet add package Zeus.Protocols.EtherNetIp
dotnet add package Zeus.Protocols.Dlt645
dotnet add package Zeus.Protocols.Iec104
dotnet add package Zeus.Protocols.Mqtt
dotnet add package Zeus.Protocols.Snmp
dotnet add package Zeus.Protocols.Framing

Install only the protocol packages your app needs. If JSON declares a device type, install that protocol or load fails with dotnet add package Zeus.Protocols.Xxx.

JSON Configuration​

dotnet add package Zeus.Configuration
dotnet add package Zeus.Protocols.Modbus

Zeus.Configuration does not pull protocol implementations.

Package Map​

PackagePurpose
Zeus.Templatesdotnet new zeus-console / zeus-winforms / zeus-wpf / zeus-modbus
Zeus.AbstractionsContracts; usually pulled transitively
Zeus.RuntimeRuntime core. Assembly name is Zeus.Core
Zeus.HostingHost lifecycle and acquisition loop
Zeus.CommunicationsSerial, TCP, UDP, virtual channels
Zeus.Protocols.*Protocol implementations
Zeus.ConfigurationLoad zeus.json
Zeus.Presentation.WinFormsWinForms AttachZeus, BindText, BindState
Zeus.Presentation.WpfWPF AttachZeus, WpfUiDispatcher, MVVM 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.