Skip to main content

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

PackagePurpose
Zeus.AbstractionsCore contracts for channels, devices, points, and hosts; usually pulled transitively
Zeus.RuntimeRuntime core; assembly name is Zeus.Core because Zeus.Core is unavailable on nuget.org
Zeus.HostingHost lifecycle and acquisition loop; usually pulled transitively
Zeus.CommunicationsSerial, TCP, UDP, server channels, and virtual channels
Zeus.Protocols.FramingCustom [header][length][payload][checksum] style protocols
Zeus.Protocols.ModbusModbus RTU / TCP
Zeus.Protocols.McMitsubishi MC 1E / 3E / 4E Binary / ASCII
Zeus.Protocols.S7Siemens S7 TCP for DB/I/Q/M common types
Zeus.Protocols.FinsOmron FINS UDP/TCP for CIO/WR/HR/AR/DM/EM/TIM-CNT
Zeus.Protocols.HostLinkOmron Host Link ASCII for CIO/LR/HR/AR/DM
Zeus.Protocols.EtherNetIpAllen-Bradley EtherNet/IP CIP tags and attributes
Zeus.ConfigurationLoad channels, devices, acquisition, and points from zeus.json
Zeus.Presentation.AbstractionsUI-neutral binding abstractions
Zeus.Presentation.WinFormsWinForms AttachZeus, BindTo, BindState, and point binding
Zeus.Presentation.WpfWPF 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.