Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
Sample project(s) available on GitHub
Characteristic | Locus |
---|---|
Inheritance | object > IDxxLA |
Implements | IRfidReader IObservable<byte[]> IDisposable |
Inherited Members | object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() |
Namespace | Meadow.Foundation.Sensors.Radio.Rfid |
Assembly | IDxxLA.dll |
Syntax
public class IDxxLA : IRfidReader, IObservable<byte[]>, IDisposable
Constructors
IDxxLA(ISerialMessageController, SerialPortName)
Create an IDxxLA RFID reader
Declaration
public IDxxLA(ISerialMessageController device, SerialPortName serialPortName)
Parameters
Type | Name | Description |
---|---|---|
ISerialMessageController | device | Device to use |
SerialPortName | serialPortName | Port name to use |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
IDxxLA(ISerialMessagePort)
Create an IDxxLA RFID reader using an existing port.
Declaration
public IDxxLA(ISerialMessagePort serialPort)
Parameters
Type | Name | Description |
---|---|---|
ISerialMessagePort | serialPort |
Remarks
Be sure to use suitable settings when creating the serial port. Default BaudRate and DataBits are exposed as constants.
Fields
BaudRate
The baud rate (9600)
Declaration
public const int BaudRate = 9600
Field Value
Type | Description |
---|---|
int |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
DataBits
Data bits (7)
Declaration
public const int DataBits = 7
Field Value
Type | Description |
---|---|
int |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
Properties
LastRead
A cached copy of the last successfully read RFID tag.
Declaration
public byte[] LastRead { get; }
Property Value
Type | Description |
---|---|
byte[] | The last read RFID tag. |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
Methods
Dispose()
Dispose of this instance.
Declaration
public void Dispose()
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
StartReading()
Start reading for RFID tags.
Declaration
public void StartReading()
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
StopReading()
Stop reading for RFID tags.
Declaration
public void StopReading()
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
Subscribe(IObserver<byte[]>)
Subscribe to RFID tag reads. Observer will only receive valid reads, with invalid reads triggering an OnError call. OnComplete will be called if this instance is disposed. This call is thread-safe.
Declaration
public IDisposable Subscribe(IObserver<byte[]> observer)
Parameters
Type | Name | Description |
---|---|---|
IObserver<byte[]> | observer | The observer to subscribe |
Returns
Type | Description |
---|---|
IDisposable | Disposable unsubscriber |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}
Events
RfidRead
Event fired when an RFID tag is read. Check the read status to see if the read was successful.
Declaration
public event RfidReadEventHandler RfidRead
Event Type
Type | Description |
---|---|
RfidReadEventHandler |
Remarks
IDxxLA | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
IRfidReader rfidReader;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
rfidReader = new IDxxLA(Device, Device.PlatformOS.GetSerialPortName("COM1"));
// subscribe to event
rfidReader.RfidRead += RfidReaderOnTagRead;
// subscribe to IObservable
rfidReader.Subscribe(new RfidObserver());
return Task.CompletedTask;
}
public override Task Run()
{
rfidReader.StartReading();
return Task.CompletedTask;
}
private void RfidReaderOnTagRead(object sender, RfidReadResult e)
{
if (e.Status == RfidValidationStatus.Ok) {
Resolver.Log.Info($"From event - Tag value is {DebugInformation.Hexadecimal(e.RfidTag)}");
return;
}
Resolver.Log.Error($"From event - Error {e.Status}");
}
private class RfidObserver : IObserver<byte[]>
{
public void OnCompleted()
{
Resolver.Log.Info("From IObserver - RfidReader has terminated, no more events will be emitted.");
}
public void OnError(Exception error)
{
Resolver.Log.Error($"From IObserver - {error}");
}
public void OnNext(byte[] value)
{
Resolver.Log.Info($"From IObserver - Tag value is {DebugInformation.Hexadecimal(value)}");
}
}