Packet.Rig 0.23.0

dotnet add package Packet.Rig --version 0.23.0
                    
NuGet\Install-Package Packet.Rig -Version 0.23.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Packet.Rig" Version="0.23.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Packet.Rig" Version="0.23.0" />
                    
Directory.Packages.props
<PackageReference Include="Packet.Rig" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Packet.Rig --version 0.23.0
                    
#r "nuget: Packet.Rig, 0.23.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Packet.Rig@0.23.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Packet.Rig&version=0.23.0
                    
Install as a Cake Addin
#tool nuget:?package=Packet.Rig&version=0.23.0
                    
Install as a Cake Tool

Packet.Rig

Station-rig (CAT) control abstraction for amateur-radio transceivers: get/set frequency and mode, PTT, SWR / RF-power metering, and receive-side DCD / signal-strength reads, all behind capability probes.

IRigControl rig = await RigctldRig.ConnectAsync();   // Packet.Rig.Hamlib
// IRigControl rig = await FlrigRig.ConnectAsync();  // Packet.Rig.Flrig

await rig.SetFrequencyAsync(14_074_000);
await rig.SetModeAsync(RigMode.PktUsb);

if (rig.Capabilities.HasFlag(RigCapabilities.SwrMeter))
{
    var swr = await rig.ReadSwrAsync();              // dimensionless ratio, 1.0 = perfect
}

if (rig.Capabilities.HasFlag(RigCapabilities.DcdRead))
{
    var busy = await rig.ReadDcdAsync();             // true = carrier present / channel busy
}

Design

  • IRigControl is the cross-backend common subset. Everything a backend might lack is gated by RigCapabilities flags discovered at connect time; calling an unadvertised member throws NotSupportedException.
  • RigMode wraps a canonical token (hamlib vocabulary: USB, LSB, CW, PKTUSB, …) with pass-through for backend-native names (RigMode.From("DATA-U")) — mode vocabularies genuinely diverge across backends, so this is not a closed enum.
  • Receive-side readsReadDcdAsync (true = carrier present / channel busy) and ReadSignalStrengthDbmAsync (dBm) are what the packet stack's carrier-sense seam needs; the IRadioControl bridge adapter that consumes them is Packet.Radio's RigRadioControl.
  • Errors are typed: RigConnectionException (link down — retry is sane), RigTimeoutException, RigCommandException (the backend said no; carries its native code), RigProtocolException (unparseable reply).
  • Poll-only. Current backends (rigctld, flrig) have no push channel; callers own their polling cadence.

This package is deliberately dependency-free — it does not pull in the rest of the Packet.NET AX.25 stack. Backends:

  • Packet.Rig.Hamlib — hamlib's rigctld network protocol (any of hamlib's 200+ rigs, plus the many rigctld-protocol emulators).
  • Packet.Rig.Flrig — flrig's XML-RPC server.
  • Packet.Radio.TaitTaitRigControl, a partial view (PTT + relative RF-power meter) of a Tait TM8100/TM8200 over CCDI, demonstrating a backend that honestly advertises only a slice of the surface.

Part of Packet.NET. Design and research notes: docs/research/rig-control-spike.md in the repo.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Packet.Rig:

Package Downloads
Packet.Radio

Radio-control abstraction (IRadioControl: RSSI, carrier-sense/DCD, PTT; IRadioSideChannel: radio-native small-datagram control plane) plus the RssiTaggingTransport decorator that stamps per-frame RSSI/SNR metadata onto any IAx25Transport, and the RigRadioControl bridge that surfaces a CAT rig (Packet.Rig: hamlib rigctld, flrig) through the same seam. Radio-specific implementations (e.g. Packet.Radio.Tait) plug in underneath. Source: github.com/packet-net/packet.net.

Packet.Radio.Tait

Tait TM8100/TM8200 CCDI serial control for the Packet.NET stack — per-frame RSSI in dBm, hardware carrier-sense (DCD) events, transmitter keying, and radio telemetry (PA temperature, forward/reverse power), implementing the Packet.Radio IRadioControl abstraction (packet-medium seam) and, via TaitRigControl, the Packet.Rig IRigControl station-control seam (PTT + relative RF-power meter). Source: github.com/packet-net/packet.net.

Packet.Rig.Flrig

Client for flrig's XML-RPC rig-control server (default port 12345) implementing the Packet.Rig IRigControl abstraction: get/set frequency and mode, PTT, SWR and RF-power metering with hamlib-compatible meter conversions, plus a raw method-call escape hatch. No dependencies beyond Packet.Rig. Source: github.com/packet-net/packet.net.

Packet.Rig.Hamlib

Pure-managed client for hamlib's NET rigctl protocol (rigctld, TCP 4532) implementing the Packet.Rig IRigControl abstraction: get/set frequency and mode, PTT, SWR and RF-power metering, capability discovery via dump_caps, plus raw-command and get-level escape hatches. No native libhamlib dependency. Source: github.com/packet-net/packet.net.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.23.0 68 7/14/2026
0.22.0 73 7/14/2026