VehicleBody 车辆控制模块 · 知识库

本知识库由 5 个 Explore Agent 并行调研 + 源码对抗验证产出(2026-07-12)。 其中「信号梳理」「功能差异」「信号流动特有机制」因 Agent 限流失败,由作者直接读源码补全(确定性数据,更可靠)。 对抗验证发现的偏差见《04-功能清单与车型差异》末尾。

模块定位

VehicleBody(车辆控制)是首页默认选中的首屏VehicleControlSettingsFragment,pageAlias = PAGE_QUICK_CONTROL)。它是「车控功能聚合页」——把用户高频操作的车身硬件(后视镜、方向盘、座椅侧翼、雨刮、手套箱、电动踏板、无线充电、PUI 热键自定义等)集中在一页。

关键认知(对抗验证纠正的常见误解)

  • ❌ 以为「快控」是首页快捷卡片专用组件 → ✅ 实际 VehicleQuickCtrl所有车控信号绑定的 Preference 的通用数据载体(10 个模块共用)。
  • ❌ 以为「车辆控制」只用自己的 BodyCtrl 信号域 → ✅ 实际它是跨域聚合页,引用了 DrivingCtrl / LockCtrl / EnergyManagement / Service / SeatAdjustControl / MirrorControl / Steering / BodyCtrl 8 个域的信号。
  • ❌ 以为车型差异靠 sourceSet 分目录 → ✅ 本模块没有 dcddif/xcddif/global 目录,差异完全靠运行时配置字(CarConfigManager + MiCarSettings.isXxx)。

子系统速览(12 个)

子系统功能主要信号域
mirror 后视镜折叠/调节/锁车折叠/倒车下翻/防眩目/加热MirrorControl, LockCtrl
steeringwheel 方向盘方向盘调节、PUI 热键自定义(标准/左键/右键)Steering, DrivingCtrl
consolekey 中控键中控键 3/4 自定义(HyperTask)mis-device SDK(非 CarProperty)
wiper 雨刮雨刮调节、自动灵敏度、前挡深度清洁Service
seat 座椅主驾侧翼支撑、侧翼随安全带SeatAdjustControl
pedal 电动踏板单次开启、自动模式DrivingCtrl
glovebox 手套箱开关 + 密码 + MIS 远程开箱DrivingCtrl(GLOVE_BOX) + compartment SDK
pui 方控热键滚轮自定义(kunlun 左/右键)mis-device SDK
hood 前机盖未关闭提醒(信号驱动弹窗)DrivingCtrl
childseat 童锁座椅安装位置设置 + IoT 设备识别SeatAdjustControl + IoT
NFC/无线充电卡片钥匙检测、主副驾无线充电BodyCtrl, EnergyManagement
EasyEntry 便利进出开关 + 离车位置设置DrivingCtrl

文档导航

文档内容
01-代码结构与子系统入口 Fragment、12 子系统构成、36 项 XML 全表、Controller 继承体系
02-信号梳理8 个域的信号清单、跨域映射、值定义、areaId、Controller→信号对照
03-信号流动标准读写回流链路 + VehicleBody 特有机制(调节心跳、互斥窗口、手套箱密码、MIS)
04-功能清单与车型差异36 个功能点、配置字门控规则、车型代号、对抗验证记录

关键文件索引

类型路径
入口 FragmentsettingsPage/VehicleBodyControl/.../vehicle/VehicleControlSettingsFragment.java
右栏.../vehicle/VehicleControlRightFragment.kt(仅 15 行,静态车模图)
主 XML.../res/xml/miauto_vehicle_body_ctrl_settings_fragment.xml(36 项)
快控工厂.../vehicle/VehicleBodyPropertyMap.kt
调节心跳.../miauto/VehicleAdjustHeartBeat.kt
手套箱 MIS.../vehicle/glovebox/GloveBoxNavigationHandler.kt + GloveBoxModulePublishService.kt
童锁.../vehicle/childseat/ChildSeatEntryController.kt
信号 ID 定义base/settingsBaseLib/.../vehicle/MiCarPropertyIds.java
快控数据模型base/settingsVehicleLib/.../VehicleQuickCtrl.kt + VehicleAreaQuickCtrl.kt
Controller 基类base/settingsVehicleLib/.../vehicle/BaseVehicle*Controller