Driving 驾驶模块 · 知识库

本知识库由 5 个 Explore Agent 并行调研 + 源码对抗验证产出(2026-07-12)。Driving 是 5 个车控模块中最大最复杂的(高性能车驾驶动态深度自定义,对标保时捷/法拉利 Individual)。因驾驶模式+自定义模式两大专题,共 6 篇

模块定位

Driving 模块(settingsPage/micarDrivingSettings)是「驾驶」设置页,入口 DrivingSettingsFragment。这是高性能车(SU7 Ultra / LeMans-GT)的驾驶动态深度自定义核心,覆盖驾驶模式/场景模式/地形模式/赛道模式/完全自定义/悬架/能量/DMS/AVM。

车型代号完整破译(跨模块价值,来自 DeviceUtil + MiCarSettings)

项目代号DeviceUtilVehicleNameConfig市场名Driving 特性
ModenaisWattDevice()MS11/12/13SU7基础
Modena-UisHertzDevice()/isHenryDevice(海外)MS11_PSU7 UltraBattle 赛道 + 安全考试 + 直线竞速强制 + 车内外声浪
LeMans-GTisMachDevice()Lemans-9 顶级性能版Battle 赛道 + 安全考试 + 声浪风格屏蔽
Modena-26AisKeplerDevice()MS1226A双风格声浪
Modena-27BisFaradayDevice()MS1327B
Lemans-BaseisLemans()MX11MX11/SU8Lemans 转向辅助
KunLunisKunLun()KUNLUN_00/10/20/30昆仑 SUV转向手感大类 + 后视影像 + AVM子页;四驱也不显示扭矩分配
Lux/MannMODENA_L / MM21Lux/Mann定制能量回收 + 制动踏板感 + 阻尼经济挡

MiCarSettings.isLeMansGT() == DeviceUtil.isMachDevice()isBattleSettingsValid() = isMachDevice || isHertzDevice(仅 SU7 Ultra + LeMans-GT)。

关键认知(对抗验证纠正,最重要)

常见误解源码真相
STEERING_MODE 是转向模式= Driving.DRIVE_MODE 驾驶模式总开关(90 次引用,命名陷阱)
BRAKING_MODE 是制动模式= Energy.REGENERATION_MODE 能量回收(命名陷阱)
Driving 用 VehicleStageUtils/E4U3 阶段判断0 处使用(与 Lock 不同!差异全靠运行时配置字)
Driving 用 LicenseControlMgr❌ 用 MiCarLcsControlHelper+LicenseMaster;且高性能功能完全不受 License(仅 DMS+泊车预警受 License)
Driving 有 dcddif/xcddif/global 差异代码❌ 三目录全空BuildConfig.FLAVOR 0 处使用
SpecialSteeringMode 是核心 ControllerSpecialSteeringModePreferenceController.java/..U.. 是 0 字节空文件!真正生效是 DriveModePreferenceController/DriveModeButtonIconPreferenceController
BATTLE 是 toggle❌ BATTLE 是主驾驶模式的一个值(非 toggle),SU7 Ultra 四驱支持前后扭矩分配
LAUNCH 弹射有软件开关仅教程入口(物理踏板触发,设置无 toggle)
Wade(地形) = WADING(涉水场景)两套独立机制(前者地形 5 选 1,后者场景 toggle)
MotionWave 是防晕车是模拟引擎声浪(电动车模拟 V8 声效),走 AudioSettings 接口非 CarProperty;防晕车是 ANT_MTNSICK_MODE
四驱就能自定义扭矩分配isTransmissionDrivelineAllWheel && !isKunLun(昆仑即使四驱也隐藏)

模式层级心智模型

主驾驶模式 (SteeringModePreferenceController, 主Tab)
  个性化M1/M2 / ECO / COMFORT / SPORT / SPORT_PLUS / BATTLE(大师)
  └─ BATTLE 支持 BATTLE_MODE_FRONT_REAR_TRACTION_TORQUE (四驱扭矩分配)

地形模式 (TerrainModePreferenceController, 5选1独立Tab)
  Auto / Snow / Mud / Sand / Wade

驾驶场景模式 (DriveModeBasePreferenceController, 10个toggle, 1950行核心基类)
  ECO(超级省电) / WET(湿滑) / OFFROAD(越野) / MOTION_SICKNESS(防晕车) /
  HDC(陡坡缓降) / DRAG_RACING(直线竞速) / WADING(涉水) /
  CRAB_ROW(蟹行) / TOW(拖挂) / ESC(脱困起步)

高性能教程 (二级页)
  LAUNCH(弹射起步) — 仅教程,物理踏板触发

高性能四重门(SU7 Ultra / LeMans-GT)

直线竞速/弹射/赛道模式受四重保护:①账号登录 ②CTA 联网授权 ③安全考试(safety://exam H5)④车主模式/驾驶安全保护开关。考试通过→解锁车主模式→关闭驾驶安全保护→才能用高性能模式。

文档导航

文档内容
01-代码结构与子系统入口 Fragment、11 Category XML、80+ Controller、三大包分工
02-信号梳理DrivingCtrl 363 常量(最大域)、25 子域、不可用原因矩阵
03-驾驶模式与高性能专题10 场景模式 + 地形 + 赛道 BATTLE/DRAG/LAUNCH + 四重门 + 拖挂
04-自定义驾驶模式专题18 维度 + M1/M2 双信号 + 预设分享 + 对比表
05-功能差异与对抗验证车型功能矩阵、17 CarConfigManager、License、ECE、对抗记录

关键文件索引

类型路径
入口 FragmentmicarDrivingSettings/.../miauto/driving/DrivingSettingsFragment.java
自定义页.../micar/settings/driving/custom/CustomSteeringModeFragment.java
场景模式基类.../micar/settings/driving/DriveModeBasePreferenceController.kt(1950 行核心)
模式常量.../micar/settings/common/DrivingConstants.java
自定义数据模型.../custom/SteeringModeData.java + SteeringModeViewModel.kt
信号域base/settingsBaseLib/.../MiCarPropertyIds.java(DrivingCtrl 907-1499 行 363 常量 + BattleCtrl 1504-1556)