跳转至

编排器

TinyOrch — 在 TinyBench 上编排处理流程

TinyOrch 管理「步骤序列」。每步从 TinyBench 工作台取数据→调工具→放回工作台。支持预定义流程,也支持 MQTT 远程动态编排。


架构速览

  • 流程定义 Flow Definition


    命名流程 + 有序步骤
    create(flow) / step(flow, idx, src, tool, dst)
    编译时类型校验 — 定义时检查 src 类型匹配 tool

    API →

  • 执行引擎 Execution Engine


    go(flow) — 按序执行所有步骤
    run(src, tool, dst) — 临时单步
    某步失败立即终止,返回错误码 + 已执行步数

    设计 →

  • 流程状态机 State Machine


    CREATED → DEFINED → RUNNING → DONE / ERROR
    status(flow) — 实时查询流程状态
    清晰的错误可追溯性

    设计 →

  • MQTT 远程编排


    ORCH,CREATE / ORCH,STEP / ORCH,GO
    用户或 Agent 通过 MQTT 远程构建和执行流程
    响应发布到 /mqtt/node

    测试 →


快速开始

#include "tiny_bench.h"
#include "tiny_orch.h"

tiny_bench_t bench;
tiny_bench_init(&bench);
// ... 注册工具、放数据 ...

tiny_orch_t orch;
tiny_orch_init(&orch, &bench);

// 定义流程
tiny_orch_create(&orch, "daily_scan");
tiny_orch_step(&orch, "daily_scan", 0, "raw_0",  "butterworth", "filtered");
tiny_orch_step(&orch, "daily_scan", 1, "filtered","fft",         "spectrum");

// 执行
tiny_orch_go(&orch, "daily_scan");  // 按序执行 0→1

TinyBench + TinyOrch 协作

TinyBench:  数据槽(raw_0, filtered, ...) + 工具注册表(butterworth, fft, ...)
                  ↕ 读取                    ↕ 调用
TinyOrch:   步骤0: raw_0 → butterworth → filtered
            步骤1: filtered → fft → spectrum
                  ↕ 写入
TinyBench:  数据槽更新(filtered, spectrum 有数据了)

相关链接