代码规范
电控 C++ 代码按 XRobot / LibXR 的模块方式组织,按 C++20 编写。
1. 模块和配置
模块代码负责可复用功能,机器人差异写到 User/RobotConfig/*.yaml。
- 电机型号、反向、ID、总线名放在机器人配置里。
- PID、几何参数、线程参数放在机器人配置里。
- Topic / Event 名称由模块和配置共同决定,跨模块使用时保持同名同义。
xrobot_main.hpp由xrobot_gen_main生成,改配置后重新生成。
2. 数据接口
跨模块数据要把含义写清楚,尤其是公开 Topic 和配置字段。
- 标明单位、坐标系、时间戳含义和取值范围。
- 写出输入离线、超时或缺省时的处理方式。
- 字段语义发生变化时,同步更新使用它的配置和文档。
- 涉及算法组和电控组共用的数据时,先对齐 坐标系规范。
3. 高频代码
控制线程、外设回调和周期任务里,代码要看得出每一步在做什么。常见结构是读取状态、计算目标、输出结果。
涉及队列、锁、外设发送或内存分配时,在代码里保留清楚的边界:哪里取数据,哪里修改共享状态,哪里发外设。调试日志、波形输出和临时统计放到低频路径、调试命令或开关后面。
4. 调试入口
调试代码服务于定位问题,不改变控制主路径。
- 关键模块保留必要的状态查看入口。
- 高频日志和波形输出保留开关或筛选条件。
- Debug / Release 行为有差异时,在模块说明里写明。