Beetech.Adv.Abstractions
1.0.3
dotnet add package Beetech.Adv.Abstractions --version 1.0.3
NuGet\Install-Package Beetech.Adv.Abstractions -Version 1.0.3
<PackageReference Include="Beetech.Adv.Abstractions" Version="1.0.3" />
<PackageVersion Include="Beetech.Adv.Abstractions" Version="1.0.3" />
<PackageReference Include="Beetech.Adv.Abstractions" />
paket add Beetech.Adv.Abstractions --version 1.0.3
#r "nuget: Beetech.Adv.Abstractions, 1.0.3"
#:package Beetech.Adv.Abstractions@1.0.3
#addin nuget:?package=Beetech.Adv.Abstractions&version=1.0.3
#tool nuget:?package=Beetech.Adv.Abstractions&version=1.0.3
Beetech.Adv.Abstractions
Open, zero-dependency hardware driver abstractions, pipeline middleware contracts, and CloudEvents specifications for the Beetech Universal Auto-ID Platform.
- ๐ Live Platform: https://advautoid.com
- ๐ Interactive Documentation: https://advautoid.com/docs
- ๐ Instant RSA-2048 Trial License Generator: https://advautoid.com/trial
- ๐ฆ Public GitHub Repository (main): https://github.com/anhdovan/advautoid.dev/tree/main
๐ฏ Overview
Beetech.Adv.Abstractions defines the open interface contracts enabling 3rd-party hardware manufacturers, system integrators, and software vendors to integrate custom RFID readers, barcode scanners, PLCs, and middleware into the Beetech Auto-ID ecosystem without access to proprietary SDK sources.
Key Capabilities
IRfidReaderDriver: Standard interface for fixed, handheld, desktop, and portal RFID readers.IBarcodeScannerDriver: Standard interface for 1D/2D imaging scanners and barcode sleds.IPlcDriver: Industrial automation discrete I/O and register memory access.ITagPipelineMiddleware: ASP.NET Core-style pipeline middleware for edge filtering, deduplication, and CEP rule evaluation.DriverMetadataAttribute: Declarative plugin auto-discovery metadata.DriverCertificationSuite: Automated conformance testing kit validating custom driver reliability and compliance.
๐ Quickstart: Building a Custom RFID Reader Driver
1. Implement IRfidReaderDriver
using System;
using System.Threading;
using System.Threading.Tasks;
using Beetech.Adv.Abstractions;
namespace MyCompany.AutoId.Drivers
{
[DriverMetadata(
driverId: "acme-portal-9000",
displayName: "Acme Industrial RFID Portal 9000",
manufacturer: "Acme Auto-ID Corp",
driverVersion: "1.2.0",
Category = "Fixed",
SupportedProtocols = new[] { "LLRP", "TCP/IP" }
)]
public class AcmePortalDriver : IRfidReaderDriver
{
public string DriverId => "acme-portal-9000";
public string ModelDisplayName => "Acme Industrial RFID Portal 9000";
public ReaderOperationalStatus Status { get; private set; } = ReaderOperationalStatus.Disconnected;
public bool IsConnected => Status == ReaderOperationalStatus.Connected || Status == ReaderOperationalStatus.Inventory;
public bool IsInventoryRunning => Status == ReaderOperationalStatus.Inventory;
public ReaderCapabilities Capabilities => new()
{
MaxAntennaPorts = 4,
MinPowerDbm = 10.0,
MaxPowerDbm = 31.5,
SupportsUhfRfid = true,
SupportsGpio = true,
SupportsAutonomousInventory = true
};
public event EventHandler<RfidTagReadEventArgs>? TagRead;
public event EventHandler<BatchTagReadEventArgs>? BatchTagRead;
public event EventHandler<ReaderStatusEventArgs>? StatusChanged;
public Task<bool> ConnectAsync(string connectionString, CancellationToken cancellationToken = default)
{
// Connect to reader socket
Status = ReaderOperationalStatus.Connected;
return Task.FromResult(true);
}
public Task StartInventoryAsync(RfidInventoryParams? parameters = null, CancellationToken cancellationToken = default)
{
Status = ReaderOperationalStatus.Inventory;
// Begin tag polling loop
return Task.CompletedTask;
}
public Task StopInventoryAsync(CancellationToken cancellationToken = default)
{
Status = ReaderOperationalStatus.Connected;
return Task.CompletedTask;
}
public Task DisconnectAsync(CancellationToken cancellationToken = default)
{
Status = ReaderOperationalStatus.Disconnected;
return Task.CompletedTask;
}
public Task SetRfPowerAsync(double powerDbm, CancellationToken cancellationToken = default) => Task.CompletedTask;
public Task SetSensitivityAsync(double sensitivityDbm, CancellationToken cancellationToken = default) => Task.CompletedTask;
public Task ConfigureAntennaPortsAsync(IEnumerable<AntennaPortConfiguration> ports, CancellationToken cancellationToken = default) => Task.CompletedTask;
public Task<bool> WriteTagEpcAsync(string currentEpc, string newEpc, string? accessPassword = null, CancellationToken cancellationToken = default) => Task.FromResult(true);
public Task<string?> ReadTagMemoryAsync(string epc, MemoryBank bank, ushort wordAddress, ushort wordCount, string? accessPassword = null, CancellationToken cancellationToken = default) => Task.FromResult<string?>("A1B2C3D4");
public void Dispose() => DisconnectAsync().GetAwaiter().GetResult();
}
}
๐งช Validating Driver with Conformance Certification
Run the automated certification suite before submitting your driver to the Beetech Hardware Catalog:
using Xunit;
using Beetech.Adv.Abstractions;
public class DriverConformanceTests
{
[Fact]
public async Task ValidateAcmeDriver()
{
using var driver = new AcmePortalDriver();
var report = await DriverCertificationSuite.CertifyDriverAsync(driver, "192.168.1.100");
Assert.True(report.IsFullyCompliant, $"Certification failed: {string.Join(", ", report.Results)}");
Assert.Equal(0, report.FailedAssertions);
}
}
๐ฆ Building Custom Tag Pipeline Middleware
using System.Threading.Tasks;
using Beetech.Adv.Abstractions;
public class CustomPartLookupMiddleware : ITagPipelineMiddleware
{
public async ValueTask InvokeAsync(TagProcessingContext context, TagPipelineDelegate next)
{
// Enriched ERP metadata
if (context.Tag.Epc.StartsWith("3034"))
{
context.Items["partNumber"] = "PART-99482";
context.Items["department"] = "AssemblyLine-02";
}
// Pass to next middleware downstream
await next(context);
}
}
๐ License
Licensed under the MIT License. Copyright (c) 2026 Beetech Auto-ID Platform. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Threading.Tasks.Extensions (>= 4.5.4)
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Beetech.Adv.Abstractions:
| Package | Downloads |
|---|---|
|
Beetech.Adv.Common
Beetech Advanced Common Core Library - Node-locked hardware licensing, asymmetric crypto verification, and RFID utility primitives. |
GitHub repositories
This package is not used by any popular GitHub repositories.