尝试用rules--code.md


description: RV1126 嵌入式代码生成规范 --- 根据方案或文件生成 C/C++ 代码时必须遵守的架构、接口与模块化规则

globs: "**/*.cpp,**/*.c,**/*.h,**/CMakeLists.txt"

alwaysApply: false


RV1126 代码生成规范

架构原则

  • **POSIX 接口优先**:系统调用一律使用 POSIX API(open/read/write/close/ioctl/select/poll),禁用平台私有或非标准扩展

  • **完全重构**:生成代码必须是全新实现,不得在原单体代码上打补丁;参考 `research.md` 理解逻辑后重写

  • **C++11 标准**:不使用 C++14/17/20 特性(目标编译器 arm-linux-gnueabihf-g++ 6.3)

模块化与进程独立

  • 每个不可拆分的功能内聚为一个**独立进程**(独立二进制),可单独编译、运行、测试

  • 进程间通信仅限 **MQTT**(mosquitto localhost:1883)和 **terminal 参数传递**,禁止共享内存/全局变量/Unix Socket

  • 每个进程必须具备完善的 **CLI 标准输入输出**,可在 terminal 通过参数运行:

```bash

必须支持的基础参数

qe_<module> --help # 显示帮助

qe_<module> --config <path> # 配置文件

qe_<module> --log-level <level> # debug|info|warn|error

qe_<module> --<single-op> args # 单次操作模式(执行后退出,便于测试)

```

子模块插件化

  • 子模块设计为**可热加载插件**,通过运行时参数或 MQTT 消息动态加载/卸载

  • 实现方式:`dlopen`/`dlsym` 加载 `.so`,或通过 CLI 参数指定子模块列表

```cpp

// 插件接口(所有子模块实现)

struct PluginInterface {

const char* name;

int (*init)(const char* config_json);

int (*process)(const char* input_json, char* output_json, int max_len);

void (*cleanup)();

};

```

文件行数约束

  • 每个源文件 **200~800 行**(含头文件),超 800 行**必须拆分**

  • 每个 `.cpp` 对应一个 `.h`,公共接口在头文件声明

模块自测功能

每个模块必须内建自测能力:

```bash

qe_<module> --self-test # 执行自测

qe_<module> --self-test --test-data <path> # 使用指定测试数据包

```

自测需包含:自测方案(测试什么)、测试数据包(输入数据)、测试结果(JSON 输出 PASS/FAIL + 详情)

README.md 要求

每个模块目录必须包含 `README.md`:

  • 代码功能说明

  • 流程图(ASCII 或 Mermaid)

  • 接口说明(CLI 参数 + MQTT 主题 + 插件接口)

  • 测试方案、测试数据位置、测试结果判断规则

代码结构一致性

所有模块遵循统一目录结构:

```

modules/<module-name>/

├── CMakeLists.txt

├── README.md

├── src/

│ ├── <module>_main.cpp

│ ├── <component>.cpp/.h

│ └── plugin_<sub>.cpp/.h

└── test/

├── test_data/

└── self_test.cpp

```

相关推荐
sulikey4 分钟前
个人Linux操作系统学习笔记7 - 进程理解
linux·笔记·学习·操作系统·进程·pid
程序喵大人9 分钟前
C++ 程序员转型 AI Infra 学习路线
c++·人工智能·学习·ai infra
段一凡-华北理工大学17 分钟前
工业领域的Hadoop架构学习~系列文章14:Hadoop集群部署 - 从规划到上线的全流程实践
大数据·数据库·人工智能·hadoop·学习·架构·高炉炼铁
J.Kuchiki20 分钟前
【PostgreSQL内核学习:Unique 算子源码深度解读学习】
数据库·学习·postgresql
踏着七彩祥云的小丑38 分钟前
嵌入式测试学习第 28 天:网络调试助手使用、TCP服务端客户端实操
单片机·嵌入式硬件·学习
imDwAaY41 分钟前
从感知机到 Attention:我用 PyTorch 打穿 CS188 机器学习终章 CS188 Proj5 学习笔记
人工智能·pytorch·笔记·python·学习·机器学习
马***4119 小时前
适配成人英语学习痛点,打造落地性强的学习辅助方式
人工智能·学习
小拉达不是臭老鼠11 小时前
Unity学习_ScriptableObject
学习·unity
MartinYeung512 小时前
[论文学习]LLM 与其他 AI 模型的隐私考量:输入与输出隐私框架方法
人工智能·学习
(●—●)橘子……13 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛