⚠️ AI 自动生成,还未经过人工审阅本文档由 AI 基于代码仓库结构和脚本上下文自动生成,可能包含不准确或遗漏的信息。请在合并前进行人工核查。
TagRouter 是一个 CSM 模块,用于将波形数据转换为 TagDB 标签数据(Waveform → TagDB)。
该模块订阅上游的波形数据广播,提取波形的属性信息(如峰值、频率、均值等),并将这些特征值写入 TagDB 标签数据库,供 TagDB-UI 看板模块展示。
| 属性 | 值 |
|---|---|
| LabVIEW 版本 | ≥ 2020 |
| 支持的操作系统 | Windows |
| 支持 RT | ❌ 不支持 |
| 支持 64-bit | ✅ 支持 |
| 所属模块组 | CSM-TagRouter.lvlib |
| 依赖 | 类型 |
|---|---|
| Communicable-State-Machine | 必须 |
| CSM-API-String-Arguments-Support | 可选 |
| CSM-MassData-Parameter-Support | 必须 |
| TagDB | 必须 |
以下是外部调用者可以发送给本模块的消息。
初始化 TagRouter 内部资源和 TagDB 连接。
- 参数:
APIString—String:配置文件路径 - 响应:N/A
启动 TagRouter 数据处理。
- 参数:N/A
- 响应:N/A
停止 TagRouter 数据处理。
- 参数:N/A
- 响应:N/A
接收上游波形数据,提取属性后写入 TagDB。
- 参数:
MassData—Waveform[]:一维波形数据数组 - 响应:N/A
设置目标 TagDB 引用,用于标签数据写入。
- 参数:
APIString—String:TagDB 标识符(如tagdb) - 响应:N/A
| 类型 | 说明 |
|---|---|
HexStr |
将 LabVIEW Variant 序列化为十六进制字符串,内置支持 |
ErrStr |
将错误信息编码为字符串,内置支持 |
APIString |
支持嵌套键值对的纯文本字符串,需要 CSM API String Arguments Support 插件 |
MassData |
内存映射缓冲区,传递 Start:N,Size:M,需要 CSM MassData Parameter Support 插件 |
注意:接口文档中对
String类型数据统一使用APIString标注。
本模块不主动广播状态(仅作数据转换路由)。
本模块暂无对外暴露的属性。
| VI 名称 | 说明 |
|---|---|
Waveform-GetAttributes.vi |
从波形数据中提取特征属性 |
Waveform-GetAttributes.vi负责解析波形数据,提取如 Peak、RMS、Frequency 等特征值并写入 TagDB。
Important
API: Initialize必须在其他任何 API 之前调用。- 必须先通过
API: Set TagDB设置 TagDB 引用,再接收波形数据。 - 本模块为单例——同一时间不可运行多个实例。
将
TagRouter替换为启动模块 VI 时实际使用的名称。
// 初始化并启动
API: Initialize -@ TagRouter
API: Start -@ TagRouter
// 设置 TagDB 引用
API: Set TagDB >> tagdb -@ TagRouter
// 订阅上游波形数据并路由到 TagRouter
Acquired Waveform@WaveformGen >> API: Update Waveforms@TagRouter -><register>
stateDiagram-v2
direction LR
WaveformGen --> TagRouter : "Acquired Waveform >> API: Update Waveforms"
TagRouter --> TagDB : 写入标签数据
TagDB --> TagDashboard : 看板展示
- TagRouter 是波形数据流和 TagDB 标签系统之间的桥梁模块。
- 波形属性提取逻辑封装在
Waveform-GetAttributes.vi中,可根据需要扩展属性提取规则。 - TagDB 引用通过
API: Set TagDB动态注入,保持模块解耦。