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

3.4 KiB
Raw Permalink Blame History

SI-M1 Face SDK 配置与 Editor 工具

SDK 使用 FaceSdkSettings 作为推荐配置方式。该配置是 ScriptableObject,可在项目中复用,并可同步到场景中的 FaceModuleManager

1. 默认配置资产

默认路径:

Assets/AISU/SI-M1 Face SDK/FaceSdkSettings.asset

打开菜单 AISU/SI-M1 Face SDK/SettingsEditor 会加载该路径。若文件不存在,点击 Load Default 会创建默认资产。

2. FaceSdkSettings 字段

字段 类型 说明
TransportMode FaceTransportMode 通信模式:AutoSerialPortMock
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 下有一个额外优先级:

UseMockInEditor = true 时,强制使用 Mock不打开真实串口。

因此 Editor 中如果需要连接真实串口,必须将 UseMockInEditor 设为 false

4. Editor Serial Debug 参数

Editor 连接真实硬件时,建议开启:

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 配置方式

推荐方式:

manager.ApplySettings(settings);
manager.Open();

兼容方式:

manager.Configure(useMockInEditor: true, portName: "COM3", baudRate: 115200);
manager.Open();

外部通信层注入:

manager.ConfigureTransport(customTransport);
manager.Open();

7. 场景约束

每个场景建议只保留一个 FaceModuleManager

多个 Manager 可能导致:

  • 多次打开同一串口。
  • 重复接收和派发事件。
  • UI 状态不一致。

Create Manager GameObject 菜单会校验 Manager 数量,并在存在多个 Manager 时停止创建。