15 KiB
15 KiB
SDK API 参考
English documentation: SDK_API_Reference.md.
本文列出 xin.aisu.si-m1.face 对外公开的业务层 API。公开包为 DLL-only 形式,不包含 SDK 源码。
命名空间
| 命名空间 | 说明 |
|---|---|
Aisu.SIM1.Face.Core |
Manager、配置、回调适配、日志、主线程调度 |
Aisu.SIM1.Face.Commands |
业务服务、命令服务、加密适配接口 |
Aisu.SIM1.Face.Protocol |
协议枚举、封包/拆包、编码工具 |
Aisu.SIM1.Face.Transport |
通信接口、串口通信、Mock 通信 |
Aisu.SIM1.Face.Models |
Reply、Note、用户、验证、录入、图片、UVC 等模型 |
FaceModuleManager
推荐使用 FaceModuleManager 作为统一入口:
using Aisu.SIM1.Face.Core;
属性
| 属性 | 类型 | 说明 |
|---|---|---|
Basic |
FaceBasicService |
基础命令服务 |
Verify |
FaceVerifyService |
人脸验证服务 |
Enrollment |
FaceEnrollmentService |
人脸录入服务 |
Users |
FaceUserService |
用户管理服务 |
QrCode |
FaceQrCodeService |
二维码服务 |
Images |
FaceImageService |
图片抓拍与照片注册服务 |
Features |
FaceFeatureService |
特征读写服务 |
Uvc |
FaceUvcService |
UVC 和高级参数服务 |
Encryption |
FaceEncryptionService |
加密服务 |
Callback |
FaceModuleCallbackAdapter |
回调式 API 适配器 |
IsOpen |
bool |
通信是否打开 |
IsReady |
bool |
是否收到 READY |
CurrentStatus |
FaceModuleStatus |
当前模组状态 |
LastError |
string |
最近错误信息 |
CurrentCommand |
string |
当前命令名称 |
Config |
FaceModuleConfig |
当前运行配置 |
Settings |
FaceSdkSettings |
当前绑定配置资产 |
方法
| 方法 | 说明 |
|---|---|
ConfigureTransport(IFaceModuleTransport transport) |
注入自定义通信层 |
Configure(bool useMockInEditor, string portName, int baudRate) |
兼容旧代码的快速配置入口 |
ApplySettings(FaceSdkSettings sdkSettings) |
应用 ScriptableObject 配置并重建 transport |
Open() |
打开通信 |
Close() |
关闭通信 |
WaitReadyAsync(int timeoutMs = 5000) |
等待 READY NOTE |
ProbeReadyByStatusAsync() |
主动查询状态并标记 READY |
SendRawBytes(byte[] bytes) |
发送原始协议 bytes |
RefreshStatus() |
异步刷新 CurrentStatus |
事件
| 事件 | 说明 |
|---|---|
OnReady |
首次 READY |
OnStatusChanged(FaceModuleStatus) |
当前状态变化 |
OnReplyReceived(FaceReply) |
收到 REPLY 包 |
OnNoteReceived(FaceNote) |
收到 NOTE 包 |
OnFaceStateUpdated(FaceFaceStateNote) |
收到人脸状态 NOTE |
OnQrCodeReceived(string) |
收到二维码 NOTE |
OnFeatureReceived(byte[]) |
收到特征数据包 |
OnDataPacketReceived(FacePacket) |
收到图片或模板数据包 |
OnError(FaceResultCode, string) |
错误上报 |
OnRawLog(string) |
原始 TX/RX 日志 |
异步服务 API
FaceBasicService
访问路径:manager.Basic
| 方法 | 返回 | 说明 |
|---|---|---|
ResetAsync() |
Task<FaceReply> |
复位模组 |
FaceResetAsync() |
Task<FaceReply> |
取消当前人脸流程 |
GetStatusAsync() |
Task<FaceModuleStatus> |
获取模组状态 |
GetVersionAsync() |
Task<string> |
获取固件版本 |
GetSnAsync() |
Task<string> |
获取设备序列号 |
SetDemoModeAsync(bool enable) |
Task<FaceReply> |
设置 Demo Mode |
UpgradeFirmwareAsync() |
Task<FaceReply> |
启动固件升级命令 |
FaceVerifyService
访问路径:manager.Verify
| 方法 | 返回 | 说明 |
|---|---|---|
VerifyAsync(byte timeout, byte maxRecognitionTimes = 30) |
Task<FaceVerifyResult> |
单次人脸验证 |
AutoVerifyAsync(bool enable, byte timeout) |
Task<FaceVerifyResult> |
启用或关闭自动验证 |
FaceEnrollmentService
访问路径:manager.Enrollment
| 方法 | 返回 | 说明 |
|---|---|---|
EnrollAsync(bool admin, string userName, FaceDirection direction, byte timeout) |
Task<FaceEnrollResult> |
交互式多方向录入 |
EnrollSingleAsync(bool admin, string userName, byte timeout) |
Task<FaceEnrollResult> |
单帧录入 |
EnrollIntegratedAsync(bool admin, string userName, FaceDirection direction, byte timeout, bool singleFrame = false, bool duplicateCheck = true) |
Task<FaceEnrollResult> |
集成式录入 |
EnrollSnapFaceImageAsync(bool admin, string userName) |
Task<FaceEnrollResult> |
抓拍人脸后注册 |
FaceUserService
访问路径:manager.Users
| 方法 | 返回 | 说明 |
|---|---|---|
DeleteUserAsync(int userId) |
Task<FaceReply> |
删除指定用户 |
DeleteAllAsync() |
Task<FaceReply> |
删除全部用户 |
GetUserInfoAsync(int userId) |
Task<FaceUserInfo> |
查询指定用户信息 |
GetAllUserIdsAsync() |
Task<List<int>> |
查询全部用户 ID |
GetAllUserIds2Async() |
Task<List<int>> |
使用扩展命令查询全部用户 ID |
GetAllUserInfosAsync() |
Task<List<FaceUserInfo>> |
查询全部用户信息 |
GetAllUserInfos2Async() |
Task<List<FaceUserInfo>> |
使用扩展命令查询全部用户信息 |
FaceQrCodeService
访问路径:manager.QrCode
| 方法 | 返回 | 说明 |
|---|---|---|
ScanQrCodeAsync(byte timeout) |
Task<string> |
扫描二维码并返回内容 |
FaceImageService
访问路径:manager.Images
| 方法 | 返回 | 说明 |
|---|---|---|
SnapUploadImageAsync() |
Task<FaceImageResult> |
抓拍普通图片 |
SnapUploadFaceImageAsync() |
Task<FaceImageResult> |
抓拍人脸图片 |
SnapUploadLargeImageAsync(ImageDpi dpi) |
Task<FaceImageResult> |
抓拍大图 |
EnrollWithPhotoAsync(byte[] photoBytes, BioType type, string userName = null, bool duplicateCheck = true, Action<int, int> onProgress = null) |
Task<FaceEnrollResult> |
照片注册 |
EnrollWithPhotoAndIdAsync(int userId, byte[] photoBytes, BioType type, string userName = null, bool duplicateCheck = true, Action<int, int> onProgress = null) |
Task<FaceEnrollResult> |
指定用户 ID 照片注册 |
FaceFeatureService
访问路径:manager.Features
| 方法 | 返回 | 说明 |
|---|---|---|
ReadFeatureAsync(int userId, FeatureType type) |
Task<byte[]> |
读取指定用户特征 |
WriteFeatureAsync(byte[] featureBytes, FeatureType type, string userName = null, Action<int, int> onProgress = null) |
Task<FaceEnrollResult> |
写入特征并注册 |
FaceUvcService
访问路径:manager.Uvc
| 方法 | 返回 | 说明 |
|---|---|---|
ReadUsbUvcParametersAsync() |
Task<UsbUvcParameters> |
读取 USB/UVC 参数 |
SetUsbUvcParametersAsync(UsbUvcParameters parameters) |
Task<FaceReply> |
设置 USB/UVC 参数 |
SetFaceLocationDisplayAsync(bool visible) |
Task<FaceReply> |
设置人脸框显示 |
SetRgbLevelAsync(byte level) |
Task<FaceReply> |
设置 RGB 等级 |
SetDuplicateCheckAsync(bool enableCheck) |
Task<FaceReply> |
设置查重 |
ReadDuplicateCheckAsync() |
Task<bool> |
读取查重状态 |
FaceEncryptionService
访问路径:manager.Encryption
| 方法 | 返回 | 说明 |
|---|---|---|
SetReleaseEncryptionKeyAsync(byte[] key16) |
Task<FaceReply> |
设置 Release 加密密钥 |
SetDebugEncryptionKeyAsync(byte[] key16) |
Task<FaceReply> |
设置 Debug 加密密钥 |
InitEncryptionAsync(byte[] seed4, byte mode) |
Task<FaceReply> |
初始化加密 |
EnableEncryption(IFaceModuleCrypto crypto) |
void |
启用本地加密算法适配器 |
DisableEncryption() |
void |
关闭本地加密算法适配器 |
public interface IFaceModuleCrypto
{
byte[] Encrypt(byte[] plainBytes);
byte[] Decrypt(byte[] encryptedBytes);
byte[] GenerateSessionKey(byte[] seed4, byte[] encKey16);
}
回调式 API
FaceModuleManager.Callback 适合 Unity UI、按钮事件、旧项目回调风格或不方便使用 await 的业务。
回调规则:
- 成功时调用
success。 - 失败时调用
error并传入错误信息。 - 照片注册和特征写入支持
progress(current, total)。 - 回调会通过
FaceModuleMainThreadDispatcher回到 Unity 主线程。
生命周期与通信
| 方法 | 成功回调 | 说明 |
|---|---|---|
ConfigureTransport(IFaceModuleTransport transport, Action success, Action<string> error) |
Action |
注入自定义通信层 |
Configure(bool useMockInEditor, string portName, int baudRate, Action success, Action<string> error) |
Action |
配置默认通信参数 |
Open(Action success, Action<string> error) |
Action |
打开通信 |
Close(Action success, Action<string> error) |
Action |
关闭通信 |
SendRawBytes(byte[] bytes, Action success, Action<string> error) |
Action |
发送原始 bytes |
WaitReady(int timeoutMs, Action success, Action<string> error) |
Action |
等待 READY |
ProbeReadyByStatus(Action<FaceModuleStatus> success, Action<string> error) |
Action<FaceModuleStatus> |
主动探测状态并标记 READY |
基础命令
| 方法 | 成功回调 | 说明 |
|---|---|---|
Reset(Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
复位模组 |
FaceReset(Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
取消当前人脸流程 |
GetStatus(Action<FaceModuleStatus> success, Action<string> error) |
Action<FaceModuleStatus> |
获取模组状态 |
GetVersion(Action<string> success, Action<string> error) |
Action<string> |
获取固件版本 |
GetSn(Action<string> success, Action<string> error) |
Action<string> |
获取设备序列号 |
SetDemoMode(bool enable, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置 Demo Mode |
UpgradeFirmware(Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
启动固件升级 |
验证与录入
| 方法 | 成功回调 | 说明 |
|---|---|---|
Verify(byte timeout, Action<FaceVerifyResult> success, Action<string> error, byte maxRecognitionTimes = 30) |
Action<FaceVerifyResult> |
人脸验证 |
AutoVerify(bool enable, byte timeout, Action<FaceVerifyResult> success, Action<string> error) |
Action<FaceVerifyResult> |
启用或关闭自动验证 |
Enroll(bool admin, string userName, FaceDirection direction, byte timeout, Action<FaceEnrollResult> success, Action<string> error) |
Action<FaceEnrollResult> |
交互式录入 |
EnrollSingle(bool admin, string userName, byte timeout, Action<FaceEnrollResult> success, Action<string> error) |
Action<FaceEnrollResult> |
单帧录入 |
EnrollIntegrated(bool admin, string userName, FaceDirection direction, byte timeout, bool singleFrame, bool duplicateCheck, Action<FaceEnrollResult> success, Action<string> error) |
Action<FaceEnrollResult> |
集成式录入 |
EnrollSnapFaceImage(bool admin, string userName, Action<FaceEnrollResult> success, Action<string> error) |
Action<FaceEnrollResult> |
抓拍人脸后注册 |
用户管理
| 方法 | 成功回调 | 说明 |
|---|---|---|
DeleteUser(int userId, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
删除指定用户 |
DeleteAll(Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
删除全部用户 |
GetUserInfo(int userId, Action<FaceUserInfo> success, Action<string> error) |
Action<FaceUserInfo> |
查询指定用户 |
GetAllUserIds(Action<List<int>> success, Action<string> error) |
Action<List<int>> |
查询全部用户 ID |
GetAllUserIds2(Action<List<int>> success, Action<string> error) |
Action<List<int>> |
使用扩展命令查询全部用户 ID |
GetAllUserInfos(Action<List<FaceUserInfo>> success, Action<string> error) |
Action<List<FaceUserInfo>> |
查询全部用户信息 |
GetAllUserInfos2(Action<List<FaceUserInfo>> success, Action<string> error) |
Action<List<FaceUserInfo>> |
使用扩展命令查询全部用户信息 |
二维码、图片与特征
| 方法 | 成功回调 | 说明 |
|---|---|---|
ScanQrCode(byte timeout, Action<string> success, Action<string> error) |
Action<string> |
扫描二维码 |
SnapUploadImage(Action<FaceImageResult> success, Action<string> error) |
Action<FaceImageResult> |
抓拍普通图片 |
SnapUploadFaceImage(Action<FaceImageResult> success, Action<string> error) |
Action<FaceImageResult> |
抓拍人脸图片 |
SnapUploadLargeImage(ImageDpi dpi, Action<FaceImageResult> success, Action<string> error) |
Action<FaceImageResult> |
抓拍大图 |
EnrollWithPhoto(byte[] photoBytes, BioType type, string userName, bool duplicateCheck, Action<FaceEnrollResult> success, Action<string> error, Action<int, int> progress = null) |
Action<FaceEnrollResult> |
照片注册 |
EnrollWithPhotoAndId(int userId, byte[] photoBytes, BioType type, string userName, bool duplicateCheck, Action<FaceEnrollResult> success, Action<string> error, Action<int, int> progress = null) |
Action<FaceEnrollResult> |
指定用户 ID 照片注册 |
ReadFeature(int userId, FeatureType type, Action<byte[]> success, Action<string> error) |
Action<byte[]> |
读取用户特征 |
WriteFeature(byte[] featureBytes, FeatureType type, string userName, Action<FaceEnrollResult> success, Action<string> error, Action<int, int> progress = null) |
Action<FaceEnrollResult> |
写入特征并注册 |
UVC 与加密
| 方法 | 成功回调 | 说明 |
|---|---|---|
ReadUsbUvcParameters(Action<UsbUvcParameters> success, Action<string> error) |
Action<UsbUvcParameters> |
读取 USB/UVC 参数 |
SetUsbUvcParameters(UsbUvcParameters parameters, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置 USB/UVC 参数 |
SetFaceLocationDisplay(bool visible, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置人脸框显示 |
SetRgbLevel(byte level, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置 RGB 等级 |
SetDuplicateCheck(bool enableCheck, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置查重 |
ReadDuplicateCheck(Action<bool> success, Action<string> error) |
Action<bool> |
读取查重状态 |
SetReleaseEncryptionKey(byte[] key16, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置 Release 加密密钥 |
SetDebugEncryptionKey(byte[] key16, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
设置 Debug 加密密钥 |
InitEncryption(byte[] seed4, byte mode, Action<FaceReply> success, Action<string> error) |
Action<FaceReply> |
初始化加密 |
EnableEncryption(IFaceModuleCrypto crypto, Action success, Action<string> error) |
Action |
启用本地加密算法适配器 |
DisableEncryption(Action success, Action<string> error) |
Action |
关闭本地加密算法适配器 |
主要模型
| 类型 | 说明 |
|---|---|
FaceReply |
REPLY 包解析结果 |
FaceNote |
NOTE 包解析结果 |
FaceFaceStateNote |
人脸状态 NOTE |
FaceUserInfo |
用户 ID、姓名、管理员标记 |
FaceVerifyResult |
验证结果、用户信息、开锁状态 |
FaceEnrollResult |
录入结果、用户 ID、方向 |
FaceImageResult |
图片 bytes、Texture2D、用户 ID |
UsbUvcParameters |
USB/UVC 参数 |
FaceCommandException |
命令 REPLY 非成功时抛出的异常 |