2.8 KiB
快速开始
本文介绍 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。