Skip to content

Repository files navigation

ProtoFlow logo

别再发送字节了,开始执行协议。

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


简体中文 · English

build release license

downloads platform language

🌐 项目简介(Overview)

ProtoFlow 不是一个“串口助手”,它是一套 通信逻辑运行时。 传统调试工具只能一次性收发数据,而 ProtoFlow 可以通过 DSL 描述完整通信流程,并由状态机执行器驱动协议逻辑,实现可配置、可编排、可扩展的通信行为

🔎 关键词(Search Keywords)

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?

现有通信工具存在几个本质问题:

痛点 现状
操作层次过低 停留在字节收发层面
协议逻辑脆弱 通过脚本或人工操作维持
无状态 无法正确表达协议的流程与条件
难扩展 每种协议都要重新写代码

通信世界其实是「状态机」,不是「一次性指令」。
ProtoFlow 的价值在于:

  • 将协议逻辑 → 声明式 DSL
  • 将通信流程 → 状态机执行器
  • 将设备交互 → 可编排工作流

从此,协议不是代码,而是数据。


🚀 核心特性(Features)

特性 描述
🧩 声明式 DSL 用 YAML 描述通信流程,而不是写脚本
🔁 状态机运行时 自动执行收发、等待、跳转、重试等逻辑
🔌 协议驱动层 UART / TCP / Modbus / XMODEM / 自定义协议
🧱 分层架构 通道、协议、动作完全解耦
⏱ 可控执行 无随机等待,全流程可预测
🪢 可扩展注册表 自定义协议行为无需修改核心代码
📡 多设备并行 支持 orchestrate 多通道工作流

🧱 架构设计(Architecture)

                                           +----------------+
                                           |   Workflow     |  <-- YAML DSL
                                           +----------------+
                                                    |
                                                    v
                                          +---------------------+
                                          |  State Machine Core |
                                          +---------------------+
                                           /        |        \
                                          v         v         v
                                    +---------+ +---------+ +---------+
                                    | Driver |  | Driver |  | Driver   | <-- Modbus / XMODEM / TCP / UART
                                    +---------+ +---------+ +---------+
                                                    |
                                                    v
                                                +---------+
                                                | Channel | <-- 串口/网络/自定义端口
                                                +---------+

通信不再以“发送什么”为中心
而是以“下一步应该发生什么”为中心。


⚡ 快速开始(Quick Start)

  • release版本可以直接运行(未测试Liunx版本)

🔌 已支持协议(Supported Protocols)

协议 状态
UART ✔️
TCP ✔️
Modbus RTU ✔️
XMODEM ✔️
自定义协议插件 ✔️

🛣 开发路线图(Roadmap)

  • Web 可视化流程编辑器
  • 二进制数据传输增强
  • 固件更新模板
  • MQTT 适配层
  • 设备拓扑与发现功能

🤝 参与贡献(Contribute)

欢迎提交 PR、Issue,以及协议扩展插件。 ProtoFlow 的长期目标是成为 通信协议的执行层


📄 许可证(License)

This project is licensed under the MIT License.
See the LICENSE file for details.


📚 了解更多(Learn More)

详见 docs/USER_GUIDE.md,包含完整 DSL 语法、状态机语义、协议动作、扩展方式与最佳实践。

About

No description or website provided.

Topics

Resources

Stars

22 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages