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

89 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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