2.9 KiB

Getting Started

This guide describes the actual usage flow for AISU 830T Card Reader SDK v0.1.0.

1. Install the package

In Unity Package Manager, choose Add package from git URL... and enter:

https://git.aisu.xin/aisu-sdk/card-reader-830t-package.git

The Package ID is xin.aisu.card-reader-830t. The minimum Unity version is 2021.3, and the current supported platform is Windows.

2. Import the Basic Sample

Open the package details, find the Samples section, and click Import for Basic. Open the imported Scenes/CardReaderSample.unity scene.

3. Add CardReaderManager

Create a GameObject in the scene and add the CardReaderManager component. Keep one Manager instance in the scene.

4. Configure the serial port

Configure SerialOptions in the Manager Inspector:

  • PortName: the actual Windows COM port, for example COM3.
  • BaudRate, Parity, DataBits, and StopBits: use the reader's settings.
  • Keep the other defaults, or configure ReadTimeout, WriteTimeout, AutoReconnect, ReconnectInterval, and MaxPendingSendCount as needed.

5. Open and listen for events

Register listeners with AddListener, then call CardReaderApi.Open():

using Aisu.CardReader;
using UnityEngine;

public sealed class CardReaderUsage : 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("Reader connected.");
    }

    private static void OnCardReceived(CardInfo card)
    {
        Debug.Log($"{card.CardType}: {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();
    }
}

Once connected, present a card to the reader and handle OnCardReceived. CardInfo.CardNumber is a decimal string with a default minimum width of 10 digits; shorter values are left-padded with 0, and longer values are not truncated.

6. Close

Call CardReaderApi.Close() to close the current connection and stop automatic reconnect. You can call Open() again later.

You can also call OpenReader() and CloseReader() on the current Manager.

Lifetime

CardReaderManager releases serial resources when it is destroyed or when the application exits. Register events in OnEnable and remove them with RemoveListener in OnDisable. Without an active Manager, CardReaderApi.Open(), Close(), and event access throw InvalidOperationException.