LlrpSdk.Extensions.Impinj
2.0.5
dotnet add package LlrpSdk.Extensions.Impinj --version 2.0.5
NuGet\Install-Package LlrpSdk.Extensions.Impinj -Version 2.0.5
<PackageReference Include="LlrpSdk.Extensions.Impinj" Version="2.0.5" />
<PackageVersion Include="LlrpSdk.Extensions.Impinj" Version="2.0.5" />
<PackageReference Include="LlrpSdk.Extensions.Impinj" />
paket add LlrpSdk.Extensions.Impinj --version 2.0.5
#r "nuget: LlrpSdk.Extensions.Impinj, 2.0.5"
#:package LlrpSdk.Extensions.Impinj@2.0.5
#addin nuget:?package=LlrpSdk.Extensions.Impinj&version=2.0.5
#tool nuget:?package=LlrpSdk.Extensions.Impinj&version=2.0.5
LlrpSdk.Extensions.Impinj
LlrpSdk.Extensions.Impinj adds managed Impinj support to LlrpSdk for
readers such as Speedway R420 and Revolution R700. UseImpinj() registers a
protocol module and a candidate reader extension; after connection the SDK
activates it only when the standard identity and negotiated protocol match.
The active extension provides typed managed settings contributors and Impinj
fields projected into TagReport.Extensions.
The generated wire-level messages, parameters, and codecs are kept in the
independent LlrpNet.Protocol.Impinj project. This package contains the
application-facing mapping and extension lifecycle.
Quick Start
using LlrpSdk;
using LlrpSdk.Extensions.Impinj;
await using LlrpReader reader = LlrpReader.CreateBuilder("192.0.2.10")
.WithPort(5084)
.UseImpinj()
.Build();
await reader.ConnectAsync();
if (reader.Extensions.Get<ImpinjReaderExtension>() is null)
{
throw new NotSupportedException(
"The connected reader is not an active Impinj LLRP 1.0.1 reader.");
}
ReaderSettings settings = (await reader.GetDefaultSettingsAsync()).Settings;
await reader.ApplySettingsAsync(settings);
await using InventorySession session = await reader.StartInventoryAsync();
await foreach (TagReport report in session.ReadReportsAsync())
{
if (report.Extensions.TryGetValue("impinj.serializedTid", out object? tid))
{
Console.WriteLine($"Serialized TID: {tid}");
}
}
GetDefaultSettingsAsync() uses the connected reader's identity and capability
tables. The core baseline selects the first advertised RF mode and receive
sensitivity, the highest transmit-power value and its index, and the first usable RF channel;
the Impinj contributor then adds typed model/firmware settings. The verified
R420 profile enables only the optional report fields covered by the capability
catalog. Unknown Impinj models retain the standard capability-derived values
and an explicit, conservative vendor extension object rather than invented
vendor defaults. For a disconnected, portable baseline use
ReaderSettingsDefaults.CreateGeneric() instead.
When .UseImpinj() is used with a standard non-Impinj reader, connection still
succeeds and all standard SDK APIs remain available, but no Impinj enable,
configuration query, or report projection runs. The typed .Impinj(...) builder
is local model construction only; check the active extension before applying
those settings. The current SDK does not emit inactive vendor extension fields
on a standard reader, so applications must not treat a successful standard
apply as evidence that an Impinj option was accepted.
Common report options can be expressed with the typed inventory builder:
InventorySettings inventory = InventorySettings.Create(settings => settings
.Antennas(1, 2)
.Impinj(impinj => impinj
.IncludeSerializedTid()
.IncludeRfPhaseAngle()
.IncludePeakRssi()));
Use only options verified for the target reader model and firmware. For an
active Impinj extension, unknown or unverified vendor features are rejected by
the configurator unless the explicit AllowUnverified... options are used.
Package Boundaries
LlrpSdk.Extensions.Impinj: managed extension activation, Settings and Inventory contributors, and TagReport projections.LlrpNet.Protocol.Impinj: generated Impinj wire assets and codec registry module for low-level protocol users.
License And Definition Notice
- This SDK extension is distributed under the MIT License.
- Generated Impinj protocol assets are derived from Impinj LTK Definition Files. Copyright © Impinj, Inc. All rights reserved. The local definition source is not redistributed by this package.
| Product | Versions 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. |
-
net10.0
- LlrpSdk (>= 2.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.5 | 118 | 8/31/2026 |
| 2.0.4 | 127 | 8/27/2026 |
| 2.0.3 | 147 | 8/22/2026 |
| 2.0.1 | 176 | 8/20/2026 |
| 2.0.0 | 109 | 8/19/2026 |
| 1.5.0 | 113 | 8/18/2026 |
| 1.4.0 | 118 | 8/14/2026 |
| 1.3.0 | 104 | 8/12/2026 |
| 1.2.1 | 101 | 8/11/2026 |
| 1.2.0 | 98 | 8/7/2026 |
| 1.0.1 | 99 | 8/7/2026 |
| 0.9.0 | 98 | 8/7/2026 |
| 0.8.0 | 110 | 8/5/2026 |
| 0.7.2 | 104 | 8/5/2026 |
| 0.7.1 | 113 | 8/4/2026 |
| 0.7.0 | 112 | 8/4/2026 |
| 0.6.0 | 121 | 8/4/2026 |
| 0.5.0 | 114 | 8/3/2026 |
| 0.4.0 | 117 | 8/3/2026 |
| 0.3.1 | 117 | 7/31/2026 |