5.8 KiB
AISU 830T Card Reader SDK
AISU 830T Card Reader SDK is a Unity UPM package for connecting an 830T card reader and receiving card data reported by the device.
Supported environment
- Unity 2021.3 or later
- AISU 830T Card Reader
- Package ID:
xin.aisu.card-reader-830t
Android, Wiegand, active card search/read/write commands, and ACK/NAK APIs are not supported in this release.
Installation
In Unity Package Manager, choose Add package from git URL... and enter:
https://git.aisu.xin/aisu-sdk/card-reader-830t-package.git
You can also add the package from a local folder. After installation, import Basic or Console Demo from the package's Samples section.
Quick start
Place one CardReaderManager in the scene, configure SerialOptions in the Inspector, and use CardReaderApi:
using Aisu.CardReader;
using UnityEngine;
public sealed class CardReaderExample : MonoBehaviour
{
private void OnEnable()
{
CardReaderApi.OnConnected.AddListener(OnConnected);
CardReaderApi.OnCardReceived.AddListener(OnCardReceived);
CardReaderApi.OnError.AddListener(OnError);
}
private void Start()
{
CardReaderApi.Open();
}
private static void OnConnected()
{
Debug.Log("Card reader connected.");
}
private static void OnCardReceived(CardInfo card)
{
Debug.Log($"{card.CardType} ({card.CardTypeCode:X2}): {card.CardNumber}");
}
private static void OnError(CardReaderErrorEventArgs error)
{
Debug.LogError(error.Exception.Message);
}
private void OnDisable()
{
CardReaderApi.OnConnected.RemoveListener(OnConnected);
CardReaderApi.OnCardReceived.RemoveListener(OnCardReceived);
CardReaderApi.OnError.RemoveListener(OnError);
CardReaderApi.Close();
}
}
CardReaderManager
CardReaderManager is the scene-level entry point. Keep one Manager instance in the scene. It exposes SerialOptions, IsConnected, OpenReader(), CloseReader(), and connection, disconnection, state, card, and error events.
Inspector serial settings
SerialOptions uses SerialDeviceOptions. The currently exposed fields are:
PortName: Windows COM port, for exampleCOM3.BaudRate: baud rate, default9600.Parity: parity mode, defaultNone.DataBits: data bits, default8.StopBits: stop bits, defaultOne.Handshake: handshake mode, defaultNone.ReadTimeout: read timeout in milliseconds, default100.WriteTimeout: write timeout in milliseconds, default1000.RtsEnable/DtrEnable: RTS/DTR flags, enabled by default.AutoReconnect: whether to retry after a connection failure, enabled by default.ReconnectInterval: retry interval in milliseconds, default1000.MaxPendingSendCount: send queue capacity, default256.
Configure the UART fields for the actual device. The Samples do not contain a fixed local COM port.
CardReaderApi and events
CardReaderApi is the static access point for the current Manager. It provides:
Open(): starts the reader connection.Close(): closes the current connection and stops automatic reconnect;Open()can be called again later.IsConnected: current connection state.OnConnected,OnDisconnected,OnStateChanged,OnCardReceived, andOnError.
Use AddListener to subscribe and RemoveListener to unsubscribe. Pair them in OnEnable and OnDisable. Accessing events or calling Open/Close without an active CardReaderManager throws InvalidOperationException.
CardInfo and CardNumber
CardInfo contains:
CardType: the currently mapped type isCardType.EM4100.CardTypeCode: the raw type code reported by the device.CardNumber: a decimal card-number string of typestring.
CardNumber has a default minimum width of 10 digits. Values shorter than 10 digits are left-padded with 0; longer values are not truncated.
Automatic reconnect and errors
When AutoReconnect is enabled, the SDK continues retrying after a connection failure according to ReconnectInterval. OnError provides the actual Exception; common causes include a missing COM port, a port already in use, or a failed connection. Identical connection errors are not repeatedly emitted, while automatic reconnect continues.
Samples
- Basic: full UI controls, COM-port selection, connection state, card information, and error log display.
- Console Demo: minimal API calls and console logging.
Frequently asked questions
No COM port is listed
Confirm that the reader is connected and its driver is installed. Check the actual COM name in Windows Device Manager. The Basic Sample's Refresh button rescans available ports.
The COM port is already in use
Close other serial tools or applications using the port, then select it again and call Open().
The reader cannot connect
Check PortName, baud rate, parity, data bits, and stop bits against the device settings. Also confirm that no other program owns the port.
How does automatic reconnect work?
With AutoReconnect enabled, the SDK retries at ReconnectInterval. Calling Close() stops the current connection and automatic reconnect.
Are serial resources released when Unity exits?
CardReaderManager releases the serial resources when it is destroyed or when the application exits.
How do I import the Basic Sample?
After installing the package, open its details in Package Manager, find Samples, and click Import for Basic. A version directory in the imported path is standard Unity behavior.
Version
This documentation describes SDK v0.1.0.
More information: