refactor: enforce layered crates and Rust audit gates
This commit is contained in:
+17
-4
@@ -13,6 +13,7 @@
|
||||
- **依赖必须无环**:允许依赖同层或更低抽象,但禁止反向控制依赖和隐藏的完整链路打包。
|
||||
- **std,禁止 unsafe**:workspace 使用 `unsafe_code = "forbid"`;允许使用提供安全 API 的第三方依赖。
|
||||
- **实时调度交给 systemd**:进程不调用 libc FFI,不实现 `SCHED_FIFO` 或 `mlockall`。
|
||||
- **二级语义分层**:crate 名不变,manifest 按 `crates/<layer>/<domain>` 组织;依赖只能由高层指向低层。
|
||||
- **crate 内保持扁平**:只允许 Cargo 惯例目录 `src`、`tests`;`src` 内不建立模块子目录。
|
||||
- **安全边界独立于控制律**:总线负责反馈新鲜度、命令租约和零电流;控制器通过策略接口组合。
|
||||
|
||||
@@ -26,11 +27,13 @@
|
||||
协议
|
||||
motor-protocol C620/C610、GM6020 编解码、多圈与 ID
|
||||
delta10-protocol DETA10 帧布局与解码
|
||||
dr16-protocol DJI DR16 D-BUS 帧布局与解码
|
||||
|
||||
驱动
|
||||
socketcan Linux SocketCAN ↔ CanLink
|
||||
slcan Lawicel 串口 CAN ↔ CanLink
|
||||
delta10 DETA10 IMU 驱动
|
||||
dr16 DR16 D-BUS 串口接收驱动
|
||||
|
||||
设备与运行时
|
||||
motor Motor 能力 trait、状态、命令、减速比、注册表、EffortPolicy
|
||||
@@ -53,20 +56,29 @@
|
||||
chassisd 底盘守护进程二进制
|
||||
spin chassis / motor 台架二进制
|
||||
chassis-tune 自动整定二进制与报告/绘图适配
|
||||
|
||||
验证
|
||||
integration-tests 跨层闭环、语义一致性与 vcan 集成测试
|
||||
```
|
||||
|
||||
共 21 个 crate。crate 名不使用 `rm-` 等无领域含义的统一前缀。
|
||||
共 24 个 crate(含顶层 `verification/integration` 集成测试包)。crate 名不使用 `rm-` 等无领域含义的统一前缀。
|
||||
|
||||
## 3. 允许依赖
|
||||
|
||||
机器可读规则见 [`config/dependency-policy.toml`](config/dependency-policy.toml) 和
|
||||
[`docs/dependencies.md`](docs/dependencies.md)。`just audit` 同时检查层 rank、正常/dev 依赖、
|
||||
外部库职责和 trait 边界;正常与 dev 依赖都必须单向。
|
||||
|
||||
主要边如下:
|
||||
|
||||
```text
|
||||
motor-protocol -> can
|
||||
delta10-protocol -> can, imu
|
||||
dr16-protocol -> (无内部依赖)
|
||||
socketcan -> can
|
||||
slcan -> can
|
||||
delta10 -> can, imu, delta10-protocol
|
||||
dr16 -> dr16-protocol
|
||||
|
||||
motor -> can, motor-protocol
|
||||
esc-bus -> can, motor, motor-protocol
|
||||
@@ -82,8 +94,8 @@ tuning -> pid, motor-control, motor-model, sim-harness, experiment
|
||||
chassis-config -> esc-bus, motor-control, motor-protocol, mecanum
|
||||
bench -> can, esc-bus, experiment, motor, motor-control, socketcan, slcan
|
||||
|
||||
chassisd -> chassis-config, esc-bus, mecanum, motor-control, sim-harness, socketcan
|
||||
spin -> bench, esc-bus, motor-control, socketcan, slcan
|
||||
chassisd -> chassis-config, dr16, esc-bus, mecanum, motor-control, sim-harness, socketcan
|
||||
spin -> bench, dr16, esc-bus, motor-control, socketcan, slcan
|
||||
chassis-tune -> bench, chassis-config, experiment, sim-harness, tuning
|
||||
```
|
||||
|
||||
@@ -136,7 +148,8 @@ tests/*.rs # 可选集成测试
|
||||
- 四轮 ESC 总线、命令租约、反馈离线保护、外部控制策略。
|
||||
- PID、速度/位置/串级/前馈、麦轮运动学。
|
||||
- 电机模型、总线损伤、同步/异步闭环、参数搜索、预设与报告。
|
||||
- `chassisd --mock`、`spin chassis|motor`、`chassis-tune`。
|
||||
- `chassisd --mock`、`spin chassis|motor|rc`、`chassis-tune`。
|
||||
- DR16/D-BUS 遥控输入、S1 使能、断流失能和 500 ms 速度斜坡。
|
||||
|
||||
未实现:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user