LlrpSdk 2.0.5
dotnet add package LlrpSdk --version 2.0.5
NuGet\Install-Package LlrpSdk -Version 2.0.5
<PackageReference Include="LlrpSdk" Version="2.0.5" />
<PackageVersion Include="LlrpSdk" Version="2.0.5" />
<PackageReference Include="LlrpSdk" />
paket add LlrpSdk --version 2.0.5
#r "nuget: LlrpSdk, 2.0.5"
#:package LlrpSdk@2.0.5
#addin nuget:?package=LlrpSdk&version=2.0.5
#tool nuget:?package=LlrpSdk&version=2.0.5
LlrpSdk
LlrpSdk is the managed .NET API for connecting to one RFID reader and
running the normal reader workflow. It hides versioned LLRP messages and
resource lifecycles behind LlrpReader, ReaderSettings, and
InventorySession.
What It Provides
- LLRP 1.0.1 and 1.1 connection and version negotiation;
- managed Reader Settings defaults, validation, query, apply, and clear;
- managed inventory start, monitoring, stop, and report streams;
- translated
TagReportvalues; - standard C1G2 tag memory read, write, lock, kill, and block erase operations;
- protocol modules and vendor extensions without an
ImpinjReaderinheritance tree.
Quick Start
using LlrpSdk;
await using LlrpReader reader = LlrpReader.CreateBuilder("192.0.2.10")
.WithPort(5084)
.Build();
await reader.ConnectAsync();
ReaderSettings settings = (await reader.GetDefaultSettingsAsync()).Settings;
await reader.ApplySettingsAsync(settings);
await using InventorySession session = await reader.StartInventoryAsync();
await foreach (TagReport report in session.ReadReportsAsync())
{
Console.WriteLine(report.Epc);
}
await reader.StopAsync();
ValidateSettingsAsync() can be called before ApplySettingsAsync() and does
not send protocol messages. ApplySettingsAsync() deploys managed settings in
a stopped state; StartInventoryAsync() starts the deployed inventory and
returns an isolated report stream.
The SDK has two control planes. The managed plane owns ROSpec 14150,
AttachedData AccessSpec 14151, and temporary Tag Access resources. The expert
plane is exposed by reader.RoSpecs, reader.AccessSpecs, and reader.Protocol
side-by-side; it is available whenever the connection is Ready and callers own
the resource lifecycle. Expert writes end an active managed session and mark
ObservedState stale while retaining DesiredSettings. There is no separate
resource-mode gate: expert resource operations are available whenever the
connection is Ready.
When a resource write or exact raw frame makes the device observation stale, the
desired inventory settings remain available. High-level APIs can reconcile the
SDK-reserved resources immediately; the default PreserveForeign policy leaves
foreign ROSpecs and AccessSpecs untouched. Use the overload accepting
ResourceTakeoverPolicy.ReplaceAll only when deleting every standard resource is
intentional. SynchronizeStateAsync() refreshes the observed resource snapshot
and is useful for inspection, but it is not required before a managed operation.
StartExistingRoSpecAsync(id) can attach a report session to an expert/raw-created
ROSpec without compiling, replacing, or deleting it.
ReaderCapabilities.ResourceLimits exposes nullable ROSpec, AccessSpec, graph,
OpSpec, priority, and C1G2 select-filter limits. A zero is an explicit device
limit; null means the reader did not report that capability. Managed deployment
preflights final capacity under PreserveForeign (the default) or explicit
ReplaceAll before changing reader resources.
For connection-wide observation, use TagsReported or ReadTagReportsAsync();
these observer outlets are mutually exclusive with the session stream during an
active inventory. When a reader omits the optional ROSpecID, the SDK-owned exclusive
session still accepts non-conflicting inventory reports. Do not consume both
InventorySession.ReadReportsAsync() and
an observer outlet for the same inventory. For direct LLRP messages, expert
ROSpec/AccessSpec ownership, or protocol generation, use the lower-level
LlrpNet projects.
License And Standard
- This SDK is distributed under the MIT License.
- LLRP 1.0.1 and 1.1 are open standards published by GS1/EPCglobal.
| 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
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on LlrpSdk:
| Package | Downloads |
|---|---|
|
LlrpSdk.Extensions.Impinj
Impinj RFID reader extension plugin for LlrpSdk, providing UseImpinj(), custom capabilities, Serialized TID, RF Phase, and Impinj extensions. |
|
|
LlrpSdk.Extensions.Zebra
Zebra (Moto) RFID reader extension plugin for LlrpSdk, providing UseZebra(), reader configuration, inventory report options, and tag-report phase/GPS/XPC projections. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.5 | 157 | 8/31/2026 |
| 2.0.4 | 143 | 8/27/2026 |
| 2.0.3 | 170 | 8/22/2026 |
| 2.0.1 | 190 | 8/20/2026 |
| 2.0.0 | 139 | 8/19/2026 |
| 1.5.0 | 133 | 8/18/2026 |
| 1.4.0 | 142 | 8/14/2026 |
| 1.3.0 | 111 | 8/12/2026 |
| 1.2.1 | 110 | 8/11/2026 |
| 1.2.0 | 109 | 8/7/2026 |
| 0.9.0 | 115 | 8/7/2026 |
| 0.8.0 | 142 | 8/5/2026 |
| 0.7.2 | 124 | 8/5/2026 |
| 0.7.1 | 125 | 8/4/2026 |
| 0.7.0 | 122 | 8/4/2026 |
| 0.6.0 | 128 | 8/4/2026 |
| 0.5.0 | 120 | 8/3/2026 |
| 0.4.0 | 122 | 8/3/2026 |
| 0.3.1 | 132 | 7/31/2026 |
| 0.3.0 | 122 | 7/30/2026 |