si-m1-face-package/Documentation~/SDK_Configuration.md

127 lines
3.4 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.

# SI-M1 Face SDK 配置与 Editor 工具
SDK 使用 `FaceSdkSettings` 作为推荐配置方式。该配置是 `ScriptableObject`,可在项目中复用,并可同步到场景中的 `FaceModuleManager`
## 1. 默认配置资产
默认路径:
```text
Assets/AISU/SI-M1 Face SDK/FaceSdkSettings.asset
```
打开菜单 `AISU/SI-M1 Face SDK/Settings`Editor 会加载该路径。若文件不存在,点击 `Load Default` 会创建默认资产。
## 2. FaceSdkSettings 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| `TransportMode` | `FaceTransportMode` | 通信模式:`Auto``SerialPort``Mock` |
| `UseMockInEditor` | `bool` | Editor 下是否强制使用 Mock |
| `PortName` | `string` | Player / 运行时串口号 |
| `BaudRate` | `int` | Player / 运行时波特率 |
| `ReadBufferSize` | `int` | Player / 运行时读取缓冲区 |
| `UseEditorSerialDebugParameters` | `bool` | Editor 下连接真实串口时是否使用单独参数 |
| `EditorPortName` | `string` | Editor 调试串口号 |
| `EditorBaudRate` | `int` | Editor 调试波特率 |
| `EditorReadBufferSize` | `int` | Editor 调试读取缓冲区 |
| `MockResponseDelayFrames` | `int` | Mock 响应延迟帧数 |
| `DebugLogEnabled` | `bool` | 是否启用 SDK Debug 日志 |
| `RawLogEnabled` | `bool` | 是否派发原始 TX / RX 日志 |
| `LogPrefix` | `string` | 日志前缀 |
## 3. TransportMode 选择
| 模式 | 行为 |
|---|---|
| `Auto` | Editor 根据 `UseMockInEditor` 选择 Mock 或串口Player 使用串口 |
| `SerialPort` | 使用 `SerialPortTransport` |
| `Mock` | 使用 `MockFaceModuleTransport` |
Editor 下有一个额外优先级:
```text
UseMockInEditor = true 时,强制使用 Mock不打开真实串口。
```
因此 Editor 中如果需要连接真实串口,必须将 `UseMockInEditor` 设为 `false`
## 4. Editor Serial Debug 参数
Editor 连接真实硬件时,建议开启:
```text
UseEditorSerialDebugParameters = true
```
开启后Editor 中串口使用:
- `EditorPortName`
- `EditorBaudRate`
- `EditorReadBufferSize`
Player 中仍使用:
- `PortName`
- `BaudRate`
- `ReadBufferSize`
这样可以避免 Editor 调试口和发布运行口互相覆盖。
## 5. Editor 工具按钮
配置窗口按钮:
| 按钮 | 行为 |
|---|---|
| `Load Default` | 固定加载或创建默认路径的 `FaceSdkSettings.asset` |
| `Save` | 保存当前配置并同步场景中的 Manager |
| `Save and Create/Update Manager` | 保存配置后创建或更新场景 Manager |
同步 Manager 时会写入:
- `m_settings`
- `m_config.TransportMode`
- `m_config.UseMockInEditor`
- 串口参数
- Editor 串口参数
- Mock 延迟
- Raw Log 开关
PlayMode 中同步配置时,会调用 `FaceModuleManager.ApplySettings(settings)`,立即重建当前 transport。
## 6. Manager 配置方式
推荐方式:
```csharp
manager.ApplySettings(settings);
manager.Open();
```
兼容方式:
```csharp
manager.Configure(useMockInEditor: true, portName: "COM3", baudRate: 115200);
manager.Open();
```
外部通信层注入:
```csharp
manager.ConfigureTransport(customTransport);
manager.Open();
```
## 7. 场景约束
每个场景建议只保留一个 `FaceModuleManager`
多个 Manager 可能导致:
- 多次打开同一串口。
- 重复接收和派发事件。
- UI 状态不一致。
`Create Manager GameObject` 菜单会校验 Manager 数量,并在存在多个 Manager 时停止创建。