工作台¶
TinyBench — 运行时数据与工具的命名注册表
TinyBench 是一个可查询的命名工作台。Agent 或用户通过 MQTT 可以随时发现「现在有什么数据」「有什么工具可用」。它是 TinyOrch 流程编排的基础。
架构速览¶
-
数据槽 Data Slots
命名数据缓冲区
put(name, data, len, type)/get(name)/list()
零拷贝 — 只存指针,不复制数据 -
工具注册 Tool Registry
命名可调用函数
register_tool(name, fn, in_type, out_type)
带类型签名的注册 + 运行时查询 -
类型系统 Type System
每个数据槽和工具都有类型标签
编译时友好枚举tiny_type_t
类型校验在流程定义阶段完成 -
MQTT 远程控制
BENCH,TOOLS/BENCH,DATA/BENCH,TEST
远端实时查询工作台状态
响应发布到/mqtt/node
快速开始¶
#include "tiny_bench.h"
tiny_bench_t bench;
tiny_bench_init(&bench);
// 放数据到工作台
float raw[1024] = {0};
tiny_bench_put(&bench, "raw_0", raw, sizeof(raw), TINY_TYPE_F32_ARR);
// 注册工具
tiny_bench_register_tool(&bench, "butterworth", my_filter_fn,
TINY_TYPE_F32_ARR, TINY_TYPE_F32_ARR);
// 查询
const char *names[16];
int n = tiny_bench_list_tools(&bench, names, 16); // → 1
位置¶
TinyBench 是 Tiny* 生态的基础层:
- 向下依赖 tinydamage / tinysysid / tinydsp / tinymath 等算法模块
- 向上为 TinyOrch 提供数据与工具的运行时命名空间
- 独立于 TinyOrch 使用——仅需 bench 即可实现数据与工具的查询管理