# 快速开始 本文介绍 AISU 830T Card Reader SDK v0.1.0 的实际使用流程。 ## 1. 安装 Package 在 Unity Package Manager 选择 **Add package from git URL...**,输入: ```text 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()`: ```csharp 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`。