89 lines
2.8 KiB
Markdown
89 lines
2.8 KiB
Markdown
# 快速开始
|
||
|
||
本文介绍 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`。
|