标定图编辑¶
打开标定图后,编辑器底部提供四个视图:Text(单元格表格)、2D(曲线)、
3D(曲面)与 3D Sim。它们绑定同一份数据,一处修改立刻同步。整个 ROM 则在
工程窗口的 2d 标签中以波形显示(见界面)。
每个视图都有比较模式:Mod(当前值)、Ori(原始值)、Δ(绝对差值)
与 %(百分比差值)。这样无需阅读原始数字,就能通过颜色与曲线看出调校改了
什么。
Text(hex)视图¶
- 左侧为偏移列,随后是字节,最右侧是 ASCII 或条形显示。
视图 ▸ 数据宽度在 8/16/32 位之间切换,字节序在大端/小端之间切换,符号切换有符号/无符号解释。- 可直接在单元格中输入数值;
Enter确认,Esc取消。 - 自动发现的候选标定图以类别颜色的细框 + 标签绘制(琥珀色 = Possible,
紫色 = Recognized),右上角有小型的 Possible/Recognized 图例。
右键某个框可用加入标定图列表(
Add map to list)将其转为正式标定图; 显示自动标定图(Show auto maps)可显示/隐藏整个候选层。
2d 波形视图(整个 ROM)¶
整个 ROM 的字节波形,标定图区块以彩色矩形叠加其上。适合快速浏览大量标定图并
观察趋势。视图 ▸ 高度颜色 可更换色带。
- 顶部工具栏的
8/16/32/F位与字节序按钮直接控制该视图(视图内部没有 单独的选择器)。 - 单击只放置光标,不会切换视图。
- 双击某个标定图区域会打开该标定图的编辑器,并在左侧列表中选中该标定图。
- 用鼠标选择范围时,也会在 Text(hex)视图中选中相同字节;在 hex 中选择 后,2D 中也会高亮相同范围。
- 切换到
Text标签时,十六进制视图会滚动到相同位置。 - 2D 符号栏上的 Column guides 按钮可显示/隐藏与 Text 视图共用的列 参考竖线(line-break);该偏好会在会话之间保留。
列布局与 line-break 竖线¶
Text 与 2D 视图共用同一套列布局:在其中一个里改变列数或原点,另一个
立即同步。
M增加列数,W减少列数(WinOLS 的 "more/less columns")。Ctrl+←/Ctrl+→把原点左移/右移一个字节,使网格对齐到标定图起点。- 2D 视图中每条列边界都以竖直 line-break 竖线标出;每第 4 条为更醒目的 主刻度。用鼠标拖动竖线即可直接改变列数。
- 2D 的范围选区会对齐(snap)到竖线:选区总是从列边界开始、到列边界结束。
- 当列宽不足 3 像素时,竖线会自动隐藏以保证可读性。
标定图编辑器标签¶
打开标定图(从列表或双击 2D 中的区块)后,底部有四个标签:
| 标签 | 内容 |
|---|---|
Text |
单元格表格——实际编辑在此进行 |
2D |
标定图曲线,按当前模式与原始曲线叠加 |
3D |
曲面图;Δ/Ori 模式下显示差值热力图 |
3D Sim |
带切片的 3D 模拟 |
在 2D 标签中,原始 ROM 为灰色虚线、修改后的 ROM 为亮色曲线,画在同一
坐标轴上;两者之间的区域在增加处填充红色、减少处填充蓝色。Δ / % 模式下
曲线直接围绕零线显示差值。当 A2L/OLS 提供轴数据时,X 轴标注真实轴值
(rpm、% 等),否则标注列索引。
- Slices 复选框把每一行画在自己的条带上(WinOLS 5 的 "Slices"):多行 标定图中,各条形状不会重叠,便于对比。选择持久保存——关闭重开应用后 依然保留。
- Style 选择器决定 2D 曲线的绘制样式:
Classic(默认,平滑曲线)、Columns(按列分隔)或WinOLS(细值网格 + 方形点标记)。选择持久保存。 - 工具栏会为选中单元格显示一行统计:
Sel: N · min · max · avg(如有原始值则附加Δavg)。旁边的热力色标 显示当前配色与数值范围。 - 拖拽调校(Tune / drag curve): 在
Mod模式下,于 2D 曲线上用鼠标 纵向拖动可直接写入选中行的单元格。写入经含缩放/校验的安全单元格 写入通道,每次拖动只产生一步撤销。Ori、Δ与%等只读视图下禁 止写入。 - 鼠标悬停时会出现十字光标与数值读数;可看到该列的各行值(以及原始值, 如有)。
- 用鼠标选择列范围时,也会选中 Text 标签中的单元格;反之亦然 —— 2D 与 表格的选择保持同步。
- 选中列会在
3D曲面与3D Sim视图中高亮。
顶部工具栏的 8/16/32/F 与字节序按钮只管理整个 ROM 的 Text 和 2D
视图;标定图自身的单元格类型来自标定图属性。
关闭某个工程的最后一个标定图编辑器后,该工程在 Text、2D 与 3D 视图
中的当前活动标定图高亮会被清除。
3d 曲面视图¶
把二维标定图显示为曲面,便于用颜色与高度判断梯度。编辑在 Text 标签中进行。
切换到 Δ 或 Ori 模式时,曲面会为原始数据与修改后数据之间的带符号
差值着色:增加为红色、减少为蓝色,颜色强度随差值大小缩放。这样在 3D 中
一眼就能看出"哪里改了多少"。回到 Mod 模式即恢复普通高度热力图。
浮动 3D Preview¶
视图 ▸ 3D Preview 可打开选中标定图的独立浮动 3D 预览窗口;在标定图列表
中切换时窗口会跟随当前标定图。视图 ▸ 3D Preview Theme 下有四种渲染主题:
Dark、Blue Mesh、Green 与 White。选择持久保存。
比较模式(Mod / Ori / Δ / %)¶
标定图编辑器工具栏上有四个模式按钮:
| 按钮 | 快捷键 | 显示内容 |
|---|---|---|
Mod |
M |
修改后/当前值(可编辑) |
Ori |
O |
原始 ROM 值(只读) |
Δ |
D |
单元格级绝对差值:Mod − Ori |
% |
P |
单元格级百分比差值 |
- 相对原始值增加的单元格以暖色(红/橙)、减少的以冷色(蓝)着色; 发生变化的单元格角上会添加三角形差量标记。
Ori、Δ与%模式均为只读——不会误写入;要编辑请回到Mod模式。- 在
Δ/%模式下,顶部工具栏会出现增量汇总行:变化单元格 / 总数、 百分比、最小/平均/最大差值。 Physical/Raw Hex/Raw Dec选择器决定数值以物理单位显示,还是 以原始存储位显示。
编辑工具¶
编辑 菜单中的操作作用于选中单元格或整张标定图:
| 操作 | 效果 |
|---|---|
| 数值 +1 / −1 | 选中单元格加一或减一 |
| 绝对修改 | 写入单一数值 |
| 相对修改 | 增加百分比或绝对差值 |
| 滑块限制 | 把单元格锁定在某个范围 |
| 取整 | 按步长取整 |
| 恢复原值 | 把选中单元格恢复为原始值 |
| 插值 | 在两点之间生成线性或指数过渡 |
| 平滑 | 平滑相邻数值 |
| 拉平 | 把数值拉平 |
| 重复上次操作 | 再次应用同一编辑 |
所有编辑都可撤销:Ctrl+Z / Ctrl+Y。
常用操作也提供快捷键:+ / - 数值 +1/−1,= 绝对值,% 相对修改,
F4 重复上次操作(Again),F11 恢复原始值。编辑 ▸ Insert New
Hexdump 可打开额外的十六进制窗口。
编辑 ▸ 编辑历史… 会列出全部操作(含说明与字节范围)。双击某一步即可把 ROM
直接回滚/前进到该状态——十六进制、2D 与 3D 视图会立即刷新。
键盘快速编辑¶
在标定图表格中选中单元格后直接按键即可应用数学运算;所需数值会在一个小 窗口中询问:
| 按键 | 操作 |
|---|---|
% 或 * |
按百分比缩放选中单元格(105 → 增加 5%) |
/ |
应用除法比例 |
= |
为所有选中单元格设置绝对值 |
+ / - |
以细步长增加 / 减少 |
I |
在选区两端之间插值(填充中间值) |
S |
3×3 加权平滑滤波 |
Enter / F2 |
打开单元格内编辑器;Enter 确认并下移一行 |
Esc |
取消编辑 |
| 方向键 | 在单元格间移动;配合 Shift 选择范围 |
选择菜单¶
选择 菜单在 Text 与 2D 视图中均可用:
| 命令 | 作用 |
|---|---|
| Select Cell / Column / Row / Screen / Nothing | 选择单元格 / 列 / 行 / 屏幕,或清除选区 |
| Invert Selection | 反选当前选区 |
| Restore Last Selection | 恢复上一次选区 |
| Selection to Start / End | 把选区移到 ROM 的开头 / 末尾 |
| Save / Load Selection… | 把选区保存到 / 从 .sel 文件加载 |
Selection → Map…(K) |
把选中的字节范围转换为新的标定图 |
| Support map selection | 为选中范围估算列数与原点 |
Support map selection 会尝试把你选中的字节块对齐到 WinOLS 风格的网格: 找出最可能的列数与原点并加以应用。
区域编辑¶
选中单元格范围即可只修改标定图的一部分。补丁与标定图包文件用
row_start、row_end、col_start、col_end 描述同样的范围,因此只会
写入该区域而非整张标定图。
关于缩放¶
你看到的是物理域(bar、°C …)数值;应用通过缩放规则把它们换算为原始 字节。请在标定图属性中修改缩放,而不要手工换算:
- 系数与偏移,
- 字节序(部分 A2L 文件中单元格字节是反序的),
- 单位标签。
缩放错误会导致每一次编辑都写错,这也是优先从 A2L 导入的原因。
标定图属性¶
双击标定图打开属性窗口:名称、描述、单位、起始地址、类型 (MAP / CURVE / VALUE)、尺寸与缩放。地址旁的 From hexdump cursor 按钮 可把当前 hex 视图中的地址直接赋给标定图。
查找与替换¶
查找 菜单包含:
- 地址 —— 指定偏移,
- 数值 —— 含指定数值的单元格,
- 标定图 —— 按名称搜索与过滤,
- 相似文件 —— 查找相似的 ROM,
- Find bytes…(
Ctrl+Shift+F)—— 在当前 ROM 中搜索十六进制字节序列, 支持??通配字节。匹配结果在结果对话框中列出;点击某条即可让十六进制 视图跳到该地址。 - Replace bytes… —— 用新序列替换全部匹配;所有改动合并为一步撤销。
- Next comment / Previous comment —— 在工程内注释之间依次导航。
- 注释与标记 —— 添加批注并导航。
与原版的差异、打印与轴配置¶
视图 ▸ Differences to Original…打开列出变化单元格的对话框;点击某行即可 跳转到对应地址。视图 ▸ Next Difference/Previous Difference(F7/Shift+F7)在差异 之间导航。项目 ▸ Print…把调校报告发送到打印机或 PDF。项目 ▸ Export tune report as PDF…把同一份调校报告直接写入.pdf文件。项目 ▸ Export A2L (DAMOS)…把工程中的标定图导出为 ASAP2/DAMOS.a2l定义文件(相当于 Import A2L 的反向操作)。视图 ▸ Compare two maps…打开对话框,并排逐单元格对比两张标定图, 并以差值颜色显示。项目 ▸ Save axis profile…/Load axis profile…保存并恢复当前标定图的 X/Y 轴描述(名称、单位、数值)。
Excel 与 CSV 导出¶
项目 菜单中有两种表格导出:
- Export map list as Excel… —— 把标定图清单(名称、地址、尺寸、
缩放等)写为单个
.xls文件。 - Export map values… —— 选择一个文件夹后,把工程中全部标定图的 单元格数值按每图标定图一个 CSV 文件写入该文件夹,便于在电子表格中 查看或用外部工具处理。
示例调校包¶
data/tuningpacks/ 中提供由 EDC16/EDC17 调校指南派生的示例 .mtrpack
模板。这些包只携带标定图定义(地址为 0x000000 占位符,缩放/尺寸为
估计值),不含任何 ROM 字节。
⚠️ 地址、尺寸与缩放均未经验证。在按你自己的 ECU/软件版本与 A2L/DAMOS 文件验证之前,请勿使用任何标定图;错误应用可能使 ECU 变砖。
导入:项目 ▸ Import Map Pack… → 选择文件 → 勾选要包含的标定图。由于是
纯定义包,按钮显示为 Add selected to project;只添加定义,不写入任何
ROM 字节。
ECU 预设¶
项目 ▸ Apply ECU preset… 会列出 data/ecupresets/ 下的 JSON 预设(应用从
磁盘读取,因此新增预设无需重新编译)。
- 选择预设后会显示其 checksum 提示;
settings字段只写入空白的工程 字段(例如ecuType、ecuProducer)。 - 若设置了
mapPack,会打开常规的 Import Map Pack 对话框;仍由你选择要 应用的标定图。 verified: false的预设会带上 (unverified) 标签,并在对话框中给出警告。
⚠️ 这些预设是未经验证的骨架:不含真实 ROM 数据、已验证的地址、尺寸或 缩放。请按你自己的 ECU/软件版本与 A2L/DAMOS 文件验证每一项数值。
Auto-map (database) —— 目录驱动的标定图推断¶
其他 ▸ Auto-map (database)… 把标定图定义目录(data/ecukb/mapdefs.db,由
tools/dataset/build_mapdefs.py 生成)与 ROM 的盲结构扫描结合起来。
- 按家族推断: 目录依据匹配的 HW/SW 编号与 ECU 家族返回属于该软件版本的 标定图。工程家族为空时,会尝试从软件编号解析。
- 偏移/扇区漂移对齐: 当目标 ROM 来自不同的读取方式或软件修订版时,每条 记录的地址都会用指纹 + 数值签名重新验证,并漂移到其真实位置 (Relocation)。
- 与盲检测融合: 目录无法覆盖的区域由盲自动检测补齐;重叠命中的记录会提高 置信度。
- 复核 → 加入工程: 结果以可排序表格显示名称、类型、地址、尺寸、置信度与
来源(Database / Auto-detect / 两者);所有行默认选中。取消不需要的行后点击
Add selected to project。加入的标定图归入
Auto-inferred文件夹。 - ROM 不变: 添加标定图只会扩充工程的标定图列表;不会写入任何 ROM 字节, 也不产生撤销步骤。
若目录缺失(找不到
mapdefs.db),该工具只显示盲自动检测结果。请按DATASET_SETUP.md所述,用tools/dataset/build_mapdefs.py在本地生成目录 数据。
Maintenance mode(数据驱动的维护操作)¶
项目 ▸ Maintenance mode… 会列出 data/tuningops/*.json 目录中的维护操作,
例如 DPF / EGR / AdBlue / Lambda / TVA / Flaps。目录从磁盘读取,新增 JSON
无需重新编译。列表先按当前工程的 ECU 家族过滤;勾选 Show all ECU families
可浏览整个目录。
- 每个操作会显示品牌、家族、补丁数量、
confidence值,以及(如适用)[UNVERIFIED]标记。行提示中包含来源文件、软件参考与读取方式。 - 勾选一个或多个操作后,Preview 区域会启用:显示 Relocation
(偏移/扇区漂移)报告 ——
matched、shifted、ambiguous、not found数量与置信度百分比 —— 以及受影响的标定图。Relocation 先尝试补丁记录的偏移, 若失败则在其附近的有限窗口内搜索字节/锚点模式,因此即使软件版本变化导致地址 漂移,补丁也能被搬运。 - Apply 会把所选操作解析出的补丁作为单步撤销写入 ROM。若选中了未验证的 操作,确认对话框会额外提示。
- 应用后,程序会自动检查 checksum:有效时给出提示,无效时建议使用
项目 ▸ 修正 checksum…;若没有家族定义,则给出无法验证警告(见 校验)。
⚠️ 操作目录可能是未经验证的(
verified: false)。在按你自己的 ECU/软件 版本与 A2L/DAMOS 文件验证之前,请勿应用任何操作。
Change Recorder 面板¶
视图 ▸ Change Recorder(默认隐藏)打开一个实时记录 ROM 编辑的面板:
- Start recording / Stop recording 开始/停止录制;状态行显示已捕获的变更 数量。
- 列表显示每次编辑的偏移、长度与
before → after字节;完整字节串位于行 提示中。 - Copy 把录制内容以 Lua 脚本复制到剪贴板;Create script… 把同样内容
以 Lua 或
.mtrpatch文本写入文件(与项目菜单中的 Create script from changes… 相同)。 - Clear 清空录制内容。
安全的编辑流程¶
- 先做一次
项目 ▸ 版本快照。 - 从小区域开始,并用测量验证结果。
- 完成后打包为
.mtrpatch—— 以后"这个改动用在哪台车上"自然有答案。