card-reader-830t-package/Documentation~/GettingStarted.zh-CN.md

2.8 KiB
Raw Permalink Blame History

快速开始

本文介绍 AISU 830T Card Reader SDK v0.1.0 的实际使用流程。

1. 安装 Package

在 Unity Package Manager 选择 Add package from git URL...,输入:

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

Package ID 为 xin.aisu.card-reader-830t,最低 Unity 版本为 2021.3,当前支持 Windows。

2. 导入 Basic Sample

打开包详情中的 Samples 区域,点击 Import 导入 Basic。使用导入后的 Scenes/CardReaderSample.unity。

3. 添加 CardReaderManager

在场景中创建一个 GameObject,添加 CardReaderManager 组件。场景中保持一个 Manager 实例。

4. 配置串口

在 Manager Inspector 中设置 SerialOptions:

  • PortName:实际 Windows COM 端口,例如 COM3。
  • BaudRate、Parity、DataBits、StopBits:按读卡器参数设置。
  • 其他字段保留默认值,或按项目需要配置 ReadTimeout、WriteTimeout、AutoReconnect、ReconnectInterval 和 MaxPendingSendCount。

5. Open 与事件监听

使用 AddListener 注册事件,并调用 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();
    }
}

设备连接后,将卡片靠近读卡器即可收到 OnCardReceived。事件中的 CardInfo.CardNumber 是十进制字符串:默认最小 10 位,不足时左侧补 0,超过 10 位不截断。

6. Close

调用 CardReaderApi.Close() 关闭当前连接并停止自动重连。之后可以再次调用 Open()。

也可以直接调用当前 Manager 的 OpenReader() 和 CloseReader()。

生命周期

CardReaderManager 被销毁或应用退出时会自动释放串口资源。事件建议在 OnEnable 注册、在 OnDisable 使用 RemoveListener 解除。没有活动 Manager 时调用 CardReaderApi.Open()、Close() 或访问事件会抛出 InvalidOperationException。