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
                    
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="LlrpSdk.Extensions.Impinj" Version="2.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LlrpSdk.Extensions.Impinj" Version="2.0.5" />
                    
Directory.Packages.props
<PackageReference Include="LlrpSdk.Extensions.Impinj" />
                    
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 LlrpSdk.Extensions.Impinj --version 2.0.5
                    
#r "nuget: LlrpSdk.Extensions.Impinj, 2.0.5"
                    
#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 LlrpSdk.Extensions.Impinj@2.0.5
                    
#: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=LlrpSdk.Extensions.Impinj&version=2.0.5
                    
Install as a Cake Addin
#tool nuget:?package=LlrpSdk.Extensions.Impinj&version=2.0.5
                    
Install as a Cake Tool

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 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.

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
Loading failed