别再发送字节了,开始执行协议。
ProtoFlow 是一个通信运行时引擎,让 UART / TCP / Modbus / XMODEM 的交互流程不再是零散的收发字节,而是可编排、可执行的协议工作流。
Keywords: embedded systems · serial communication · TCP communication · Modbus RTU · protocol automation · hardware debugging · AI-agent-assisted testing · IoT device control
ProtoFlow 不是一个“串口助手”,它是一套 通信逻辑运行时。 传统调试工具只能一次性收发数据,而 ProtoFlow 可以通过 DSL 描述完整通信流程,并由状态机执行器驱动协议逻辑,实现可配置、可编排、可扩展的通信行为。
ProtoFlow is designed for embedded communication automation, serial/TCP protocol testing, Modbus RTU workflows, hardware debugging, and AI-agent-assisted device interaction.
适合用于以下场景:
- 嵌入式设备通信调试(UART / TCP / Modbus RTU / XMODEM)
- 协议自动化测试与状态机驱动的通信流程
- 固件升级、设备握手、超时重试、CRC 校验等流程编排
- AI Agent 辅助的硬件验证、日志采集和设备交互
- 工业控制、IoT 设备、开发板和上位机通信测试
┌──────────┐
│ YAML DSL │ ← 人类可读的通信与行为描述
└─────┬────┘
↓
┌──────────┐
│ AST │ ← 结构化语义树(协议/状态/事件/动作)
└─────┬────┘
↓
┌──────────┐
│ Executor │ ← 在 PC/MCU 上解释执行
└──────────┘
传统串口或通信工具的核心能力只有一件事: 发送一些字节,然后等待回应。
但真实的设备通信从不是单次发送,而是完整的协议流程:
- 握手与协商
- 多帧数据交互
- CRC 校验
- 重试与超时处理
- 条件跳转与流程驱动
- 最终执行动作
ProtoFlow 重新定义了通信方式:
你不再写脚本,也不再依赖 GUI 点点点,而是通过 DSL 描述协议行为,由运行时引擎自动执行通信流程。
换句话说:
通信 → 不再是动作 通信 → 是状态驱动的执行逻辑
现有通信工具存在几个本质问题:
| 痛点 | 现状 |
|---|---|
| 操作层次过低 | 停留在字节收发层面 |
| 协议逻辑脆弱 | 通过脚本或人工操作维持 |
| 无状态 | 无法正确表达协议的流程与条件 |
| 难扩展 | 每种协议都要重新写代码 |
通信世界其实是「状态机」,不是「一次性指令」。
ProtoFlow 的价值在于:
- 将协议逻辑 → 声明式 DSL
- 将通信流程 → 状态机执行器
- 将设备交互 → 可编排工作流
从此,协议不是代码,而是数据。
| 特性 | 描述 |
|---|---|
| 🧩 声明式 DSL | 用 YAML 描述通信流程,而不是写脚本 |
| 🔁 状态机运行时 | 自动执行收发、等待、跳转、重试等逻辑 |
| 🔌 协议驱动层 | UART / TCP / Modbus / XMODEM / 自定义协议 |
| 🧱 分层架构 | 通道、协议、动作完全解耦 |
| ⏱ 可控执行 | 无随机等待,全流程可预测 |
| 🪢 可扩展注册表 | 自定义协议行为无需修改核心代码 |
| 📡 多设备并行 | 支持 orchestrate 多通道工作流 |
+----------------+
| Workflow | <-- YAML DSL
+----------------+
|
v
+---------------------+
| State Machine Core |
+---------------------+
/ | \
v v v
+---------+ +---------+ +---------+
| Driver | | Driver | | Driver | <-- Modbus / XMODEM / TCP / UART
+---------+ +---------+ +---------+
|
v
+---------+
| Channel | <-- 串口/网络/自定义端口
+---------+
通信不再以“发送什么”为中心
而是以“下一步应该发生什么”为中心。
⚡ 快速开始(Quick Start)
- release版本可以直接运行(未测试Liunx版本)
| 协议 | 状态 |
|---|---|
| UART | ✔️ |
| TCP | ✔️ |
| Modbus RTU | ✔️ |
| XMODEM | ✔️ |
| 自定义协议插件 | ✔️ |
- Web 可视化流程编辑器
- 二进制数据传输增强
- 固件更新模板
- MQTT 适配层
- 设备拓扑与发现功能
欢迎提交 PR、Issue,以及协议扩展插件。 ProtoFlow 的长期目标是成为 通信协议的执行层。
This project is licensed under the MIT License.
See the LICENSE file for details.
详见 docs/USER_GUIDE.md,包含完整 DSL 语法、状态机语义、协议动作、扩展方式与最佳实践。