From 21dccd2274d428bb971255a9494462b9b398593a Mon Sep 17 00:00:00 2001 From: Guoguo Date: Tue, 28 Jul 2026 07:22:36 -0700 Subject: [PATCH] =?UTF-8?q?fix(mapping):=20correct=20region=E2=86=94IO=20m?= =?UTF-8?q?apping=20per=20on-device=20measurement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Measured on real hardware: IO1=right IO2=left IO3=top IO4=middle IO5=bottom (0x01=right 0x02=left 0x04=top 0x08=middle 0x10=bottom). The earlier verbal 'left=IO1/upper=IO2...' spec was wrong; this reverts to the original Phase-1 mapping, which the measurement confirms. - protocol.js REGION constants + getRegionName + REGION_NAMES - CRITICAL: buildVendorCommand ioMasks was built from REGION.* constants whose values just flipped, scrambling IO slot order; pin to literal [0x01..0x10] - diagnosis.js REGION_DEFS key↔mask; pd_region_map values unchanged (PD is keyed by orientation, which is stable) — right=PD5 left=PD1 top=PD2 middle=PD3,6,7 bottom=PD4 - common.js region labels back to right/left/top/middle/bottom (上/中/下) - treatment-setup / manual-treatment / treating / scan-report / ble-debug face-map bindings and REGION_MAP realigned - verified: mock pipeline lands left→IO2, middle→IO4 correctly --- miniprogram/i18n/locales/common.js | 16 +++++------ miniprogram/pages/ble-debug/ble-debug.js | 2 +- miniprogram/pages/ble-debug/ble-debug.wxml | 10 +++---- .../manual-treatment/manual-treatment.js | 12 ++++---- .../manual-treatment/manual-treatment.wxml | 10 +++---- .../pages/scan-report/scan-report.wxml | 28 +++++++++---------- miniprogram/pages/treating/treating.js | 12 ++++---- .../pages/treatment-setup/treatment-setup.js | 4 +-- .../treatment-setup/treatment-setup.wxml | 10 +++---- miniprogram/services/ble/protocol.js | 24 ++++++++-------- miniprogram/services/diagnosis.js | 20 ++++++------- 11 files changed, 75 insertions(+), 73 deletions(-) diff --git a/miniprogram/i18n/locales/common.js b/miniprogram/i18n/locales/common.js index ed378f9..a349d6e 100644 --- a/miniprogram/i18n/locales/common.js +++ b/miniprogram/i18n/locales/common.js @@ -18,14 +18,14 @@ module.exports = { saveFailed: '保存失败', networkError: '网络异常,请重试', deviceNotConnected: '设备未连接', - // 区域 = IO 纵列布局:left=IO1(0x01) top=IO2(0x02中上) middle=IO3(0x04中) - // bottom=IO4(0x08中下) right=IO5(0x10)。key 名沿用,语义以掩码为准。 + // 区域 = IO↔物理位置(实测):right=IO1(0x01) left=IO2(0x02) top=IO3(0x04) + // middle=IO4(0x08) bottom=IO5(0x10)。语义以掩码为准。 regions: { + right: '右区', left: '左区', - top: '中上区', + top: '上区', middle: '中区', - bottom: '中下区', - right: '右区' + bottom: '下区' }, wavelengths: { red: '红光', @@ -53,11 +53,11 @@ module.exports = { networkError: 'Network error, please retry', deviceNotConnected: 'Device not connected', regions: { + right: 'Right', left: 'Left', - top: 'Upper Center', + top: 'Top', middle: 'Center', - bottom: 'Lower Center', - right: 'Right' + bottom: 'Bottom' }, wavelengths: { red: 'Red', diff --git a/miniprogram/pages/ble-debug/ble-debug.js b/miniprogram/pages/ble-debug/ble-debug.js index fd2c768..37d1462 100644 --- a/miniprogram/pages/ble-debug/ble-debug.js +++ b/miniprogram/pages/ble-debug/ble-debug.js @@ -10,7 +10,7 @@ var WAVES = [ { key: 'uv', code: 3, label: '紫外' }, { key: 'yellow', code: 4, label: '暖黄' } ] -var REGION_LABELS = { 1: '左区/IO1', 2: '中上/IO2', 4: '中区/IO3', 8: '中下/IO4', 16: '右区/IO5' } +var REGION_LABELS = { 1: '右区/IO1', 2: '左区/IO2', 4: '上区/IO3', 8: '中区/IO4', 16: '下区/IO5' } var RUN_STATES = { 0: 'IDLE', 1: '检测', 2: '治疗', 255: '故障(0xFF)' } function hex(bytes) { diff --git a/miniprogram/pages/ble-debug/ble-debug.wxml b/miniprogram/pages/ble-debug/ble-debug.wxml index 6a36630..22c3243 100644 --- a/miniprogram/pages/ble-debug/ble-debug.wxml +++ b/miniprogram/pages/ble-debug/ble-debug.wxml @@ -37,11 +37,11 @@ 点分区 → 该区 2 秒治疗(对物理位置) - 中上\nIO2 - 左\nIO1 - 右\nIO5 - 中\nIO3 - 中下\nIO4 + 上\nIO3 + 左\nIO2 + 右\nIO1 + 中\nIO4 + 下\nIO5 diff --git a/miniprogram/pages/manual-treatment/manual-treatment.js b/miniprogram/pages/manual-treatment/manual-treatment.js index 982dd54..956c78b 100644 --- a/miniprogram/pages/manual-treatment/manual-treatment.js +++ b/miniprogram/pages/manual-treatment/manual-treatment.js @@ -22,13 +22,13 @@ Page({ ], selectedFunctionId: 'rejuvenate', selectedWavelength: 2, - // 掩码 = IO 纵列布局(与 treatment-setup 一致):左=0x01 中上=0x02 中=0x04 中下=0x08 右=0x10 + // 掩码 = IO↔物理位置(实测):右=0x01 左=0x02 上=0x04 中=0x08 下=0x10 regions: [ - { key: 'left', mask: 0x01, checked: true }, - { key: 'top', mask: 0x02, checked: true }, - { key: 'middle', mask: 0x04, checked: true }, - { key: 'bottom', mask: 0x08, checked: true }, - { key: 'right', mask: 0x10, checked: true } + { key: 'right', mask: 0x01, checked: true }, + { key: 'left', mask: 0x02, checked: true }, + { key: 'top', mask: 0x04, checked: true }, + { key: 'middle', mask: 0x08, checked: true }, + { key: 'bottom', mask: 0x10, checked: true } ], // safety: a single session must NOT exceed 10 minutes (hardware caps at 10). durations: [5, 10], diff --git a/miniprogram/pages/manual-treatment/manual-treatment.wxml b/miniprogram/pages/manual-treatment/manual-treatment.wxml index 9a8eb68..5d45731 100644 --- a/miniprogram/pages/manual-treatment/manual-treatment.wxml +++ b/miniprogram/pages/manual-treatment/manual-treatment.wxml @@ -26,11 +26,11 @@ {{i18n.manual.regionTitle}} - {{i18n.common.regions.top}} - {{i18n.common.regions.left}} - {{i18n.common.regions.right}} - {{i18n.common.regions.middle}} - {{i18n.common.regions.bottom}} + {{i18n.common.regions.top}} + {{i18n.common.regions.left}} + {{i18n.common.regions.right}} + {{i18n.common.regions.middle}} + {{i18n.common.regions.bottom}} {{i18n.manual.durationTitle}} diff --git a/miniprogram/pages/scan-report/scan-report.wxml b/miniprogram/pages/scan-report/scan-report.wxml index a56d2f3..22e2a44 100644 --- a/miniprogram/pages/scan-report/scan-report.wxml +++ b/miniprogram/pages/scan-report/scan-report.wxml @@ -35,26 +35,26 @@ {{i18n.report.faceTitle}} - - {{faceZones[1].name}} - {{faceZones[1].modeLabel}} - - - {{faceZones[0].name}} - {{faceZones[0].modeLabel}} - - - {{faceZones[4].name}} - {{faceZones[4].modeLabel}} - - + {{faceZones[2].name}} {{faceZones[2].modeLabel}} - + + {{faceZones[1].name}} + {{faceZones[1].modeLabel}} + + + {{faceZones[0].name}} + {{faceZones[0].modeLabel}} + + {{faceZones[3].name}} {{faceZones[3].modeLabel}} + + {{faceZones[4].name}} + {{faceZones[4].modeLabel}} + diff --git a/miniprogram/pages/treating/treating.js b/miniprogram/pages/treating/treating.js index a3256a0..866a63c 100644 --- a/miniprogram/pages/treating/treating.js +++ b/miniprogram/pages/treating/treating.js @@ -23,13 +23,13 @@ Page({ }, _getRegionText: function (regionMask) { - // 掩码 = IO 纵列布局:0x01左 0x02中上 0x04中 0x08中下 0x10右 + // 掩码 = IO↔物理位置(实测):0x01右 0x02左 0x04上 0x08中 0x10下 var REGION_MAP = { - 1: 'common.regions.left', - 2: 'common.regions.top', - 4: 'common.regions.middle', - 8: 'common.regions.bottom', - 16: 'common.regions.right' + 1: 'common.regions.right', + 2: 'common.regions.left', + 4: 'common.regions.top', + 8: 'common.regions.middle', + 16: 'common.regions.bottom' } if (regionMask === 0x1F) return i18n.t('treating.allRegions') var names = [] diff --git a/miniprogram/pages/treatment-setup/treatment-setup.js b/miniprogram/pages/treatment-setup/treatment-setup.js index 04e10fc..f21d3cd 100644 --- a/miniprogram/pages/treatment-setup/treatment-setup.js +++ b/miniprogram/pages/treatment-setup/treatment-setup.js @@ -34,8 +34,8 @@ Page({ var app = getApp() this.setData({ statusBarHeight: app.globalData.statusBarHeight }) i18n.bind(this) - // 顺序对应 data.regions 的掩码 0x01..0x10(IO1..IO5 = 左/中上/中/中下/右) - var regionKeys = ['left', 'top', 'middle', 'bottom', 'right'] + // 顺序对应 data.regions 掩码 0x01..0x10 = IO1..IO5 = 右/左/上/中/下(实测) + var regionKeys = ['right', 'left', 'top', 'middle', 'bottom'] var regions = this.data.regions regions.forEach(function (r, i) { r.name = i18n.t('common.regions.' + regionKeys[i]) diff --git a/miniprogram/pages/treatment-setup/treatment-setup.wxml b/miniprogram/pages/treatment-setup/treatment-setup.wxml index a31a9a1..c672401 100644 --- a/miniprogram/pages/treatment-setup/treatment-setup.wxml +++ b/miniprogram/pages/treatment-setup/treatment-setup.wxml @@ -27,11 +27,11 @@ - {{i18n.common.regions.top}} - {{i18n.common.regions.left}} - {{i18n.common.regions.right}} - {{i18n.common.regions.middle}} - {{i18n.common.regions.bottom}} + {{i18n.common.regions.top}} + {{i18n.common.regions.left}} + {{i18n.common.regions.right}} + {{i18n.common.regions.middle}} + {{i18n.common.regions.bottom}}