跳到主要内容

代码规范

电控 C++ 代码按 XRobot / LibXR 的模块方式组织,按 C++20 编写。

1. 模块和配置

模块代码负责可复用功能,机器人差异写到 User/RobotConfig/*.yaml

  1. 电机型号、反向、ID、总线名放在机器人配置里。
  2. PID、几何参数、线程参数放在机器人配置里。
  3. Topic / Event 名称由模块和配置共同决定,跨模块使用时保持同名同义。
  4. xrobot_main.hppxrobot_gen_main 生成,改配置后重新生成。

2. 数据接口

跨模块数据要把含义写清楚,尤其是公开 Topic 和配置字段。

  1. 标明单位、坐标系、时间戳含义和取值范围。
  2. 写出输入离线、超时或缺省时的处理方式。
  3. 字段语义发生变化时,同步更新使用它的配置和文档。
  4. 涉及算法组和电控组共用的数据时,先对齐 坐标系规范

3. 高频代码

控制线程、外设回调和周期任务里,代码要看得出每一步在做什么。常见结构是读取状态、计算目标、输出结果。

涉及队列、锁、外设发送或内存分配时,在代码里保留清楚的边界:哪里取数据,哪里修改共享状态,哪里发外设。调试日志、波形输出和临时统计放到低频路径、调试命令或开关后面。

4. 调试入口

调试代码服务于定位问题,不改变控制主路径。

  1. 关键模块保留必要的状态查看入口。
  2. 高频日志和波形输出保留开关或筛选条件。
  3. Debug / Release 行为有差异时,在模块说明里写明。