rfIDEAS.ReaderIntegrationKit
1.5.1
See the version list below for details.
dotnet add package rfIDEAS.ReaderIntegrationKit --version 1.5.1
NuGet\Install-Package rfIDEAS.ReaderIntegrationKit -Version 1.5.1
<PackageReference Include="rfIDEAS.ReaderIntegrationKit" Version="1.5.1" />
<PackageVersion Include="rfIDEAS.ReaderIntegrationKit" Version="1.5.1" />
<PackageReference Include="rfIDEAS.ReaderIntegrationKit" />
paket add rfIDEAS.ReaderIntegrationKit --version 1.5.1
#r "nuget: rfIDEAS.ReaderIntegrationKit, 1.5.1"
#:package rfIDEAS.ReaderIntegrationKit@1.5.1
#addin nuget:?package=rfIDEAS.ReaderIntegrationKit&version=1.5.1
#tool nuget:?package=rfIDEAS.ReaderIntegrationKit&version=1.5.1
rfIDEAS.ReaderIntegrationKit
A .NET library for communicating with rf IDEAS readers using a high-level reader interface. This package wraps the Reader Integration Kit native library, providing easy integration for .NET applications on Windows, Linux (x64, ARM64, and 32-bit ARM hard-float), and macOS 12.0+ (Intel + Apple Silicon).
Features
- High-level reader API for reader operations
- Support for WaveID reader types
- Native library support for Windows (x64), Linux (x64), Linux ARM64 (generic + Raspberry Pi 5), Linux 32-bit ARM (ARMhf), and macOS 12.0+ (Intel x86_64 + Apple Silicon arm64, universal binary)
- .NET 8.0 and .NET 10.0 compatibility
- Distributed via NuGet
Getting Started
- Install via NuGet:
dotnet add package rfIDEAS.ReaderIntegrationKit - Add the using directives:
using rfIDEAS.ReaderIntegrationKit; using rfIDEAS.ReaderIntegrationKit.Objects; using rfIDEAS.ReaderIntegrationKit.Enum;
Prerequisites
- Windows 10/11 (x64), Linux x64, Linux ARM64 / ARMhf (Ubuntu 24.04+ or equivalent), or macOS 12.0 (Monterey) or later (Intel x86_64 or Apple Silicon arm64)
- A connected rf IDEAS reader (USB or serial), e.g. WaveID
- .NET 8.0 or later (the package targets .NET 8.0 and .NET 10.0)
- Windows: No additional setup required
- Linux: Appropriate udev rules may be required for USB reader access
Supported Platforms
| Platform | Runtime Identifier | Native Library Path (inside package) |
|---|---|---|
| Windows x64 | win-x64 |
runtimes/win-x64/native/ReaderIntegrationKit.dll |
| Linux x64 | linux-x64 |
runtimes/linux-x64/native/libReaderIntegrationKit.so |
| Linux ARM64 (generic) | linux-arm64 |
runtimes/linux-arm64/native/libReaderIntegrationKit.so |
| Linux ARM64 (Raspberry Pi 5) | linux-arm64 |
runtimes/linux-arm64/native/libReaderIntegrationKit.pi5.so |
| Linux ARM 32-bit (ARMhf) | linux-arm |
runtimes/linux-arm/native/libReaderIntegrationKit.so |
| macOS 12+ (Intel x86_64) | osx-x64 |
runtimes/osx-x64/native/libReaderIntegrationKit.dylib |
| macOS 12+ (Apple Silicon arm64) | osx-arm64 |
runtimes/osx-arm64/native/libReaderIntegrationKit.dylib |
Native libraries are included in the NuGet package and are automatically resolved at runtime for supported platforms.
osx-universal fallback:
runtimes/osx-universal/native/libReaderIntegrationKit.dylibis included for environments that do not resolve a specific RID.
ARM64: generic vs. Raspberry Pi 5
The package ships two ARM64 builds in runtimes/linux-arm64/native/:
libReaderIntegrationKit.so— portable aarch64 build, runs on any ARMv8-A device.libReaderIntegrationKit.pi5.so— build optimised for the Raspberry Pi 5 (-mcpu=cortex-a76).
At runtime the loader selects the variant via RIK_ARM_VARIANT when set (pi5 or generic);
otherwise it reads /proc/device-tree/model and falls back to generic.
Set RIK_ARM_VARIANT=pi5 to force the Pi 5-optimised build, or RIK_ARM_VARIANT=generic
for the portable build.
Known Issues
1.5.0 — macOS arm64 SIGKILL 137 (fixed in 1.5.1)
The 1.5.0 NuGet package ships a libReaderIntegrationKit.dylib with an invalid
code signature on macOS. On Apple Silicon (arm64) with SIP enabled, any call that
loads the library — including AbstractReader.GetLibraryInfo() — will be killed
by the kernel with SIGKILL (exit code 137).
Root cause: The build system produced an improperly signed binary.
Fix: Upgrade to 1.5.1 or later.
Workaround for 1.5.0: Re-sign the bundled dylib with an ad-hoc signature:
codesign -f -s - \
"$(dotnet nuget locals global-packages -l | awk '{print $NF}')/rfideas.readerintegrationkit/1.5.0/runtimes/osx-arm64/native/libReaderIntegrationKit.dylib"
Note:
dotnet publish -r linux-arm64flattens native libraries to the publish output root. Theruntimes/directory tree is not present in a RID-targeted publish output. Do not configure your application to look for natives underruntimes/after a RID-targeted publish.
Usage Example
WaveID Reader
using rfIDEAS.ReaderIntegrationKit;
using rfIDEAS.ReaderIntegrationKit.Objects;
using rfIDEAS.ReaderIntegrationKit.Enum;
var readerDefinition = new ReaderDefinition
{
DeviceId = new DeviceId { VendorId = 0x0c27, ProductId = 0x3bfa },
ProtocolType = ProtocolType.FeatureReport
};
using var reader = new Reader(readerDefinition);
reader.Init();
// Get reader metadata (populated lazily on first access)
var metadataStruct = reader.GetMetadata();
Console.WriteLine($"Part Number: {metadataStruct.PartNumber}");
// Force refresh metadata from device
metadataStruct = reader.GetMetadata(forceRefresh: true);
// Beep the reader
reader.Beep(2, BeepDuration.BeepDurationShort);
// Get beeper volume
var volume = reader.GetBeeperVolume();
Console.WriteLine($"Beeper Volume: {volume}");
Documentation
For integration guides and complete API reference, see the rf IDEAS Documentation.
License
This package is distributed under the rf IDEAS End-User License Agreement (EULA). By installing or
using this package, you agree to the terms of the EULA included in the package. See the rfIDEAS_EULA.txt
file distributed with this package for full terms and conditions.
Copyright rf IDEAS, Inc. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- No dependencies.
-
net8.0
- No dependencies.
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 |
|---|---|---|
| 1.7.0 | 49 | 9/14/2026 |
| 1.6.1 | 59 | 9/3/2026 |
| 1.6.0 | 43 | 9/2/2026 |
| 1.5.1 | 79 | 8/26/2026 |
| 1.5.0 | 52 | 8/21/2026 |
| 1.4.5 | 70 | 8/3/2026 |
| 1.4.4 | 58 | 7/28/2026 |
| 1.4.3 | 82 | 7/13/2026 |
| 1.4.2 | 66 | 6/22/2026 |
| 1.4.1 | 79 | 6/2/2026 |
| 1.4.0 | 63 | 6/1/2026 |
| 1.3.0 | 287 | 5/20/2026 |
| 1.2.0 | 86 | 4/14/2026 |
| 1.1.0 | 70 | 4/7/2026 |
| 1.0.1 | 74 | 3/28/2026 |