fix: correct region mapping (swap left/right, swap middle/bottom) and auto-scan proceeds on timeout

Region name mapping corrected to match actual hardware IO positions:
- 0x01: 左区→右区, 0x02: 右区→左区
- 0x08: 下区→中区, 0x10: 中区→下区
Auto-scan no longer shows timeout error, proceeds to next step instead.
这个提交包含在:
Guoguo
2026-06-05 23:37:03 -07:00
父节点 4666050458
当前提交 44935c4bf3
修改 6 个文件,包含 16 行新增15 行删除
+3 -2
查看文件
@@ -54,8 +54,9 @@ Page({
setTimeout(function () {
clearInterval(self._progressTimer)
if (!self.data.scanning) return
self.setData({ scanning: false, timeout: true })
wx.showToast({ title: '扫描超时,请重试', icon: 'none' })
self.setData({ scanning: false, scanProgress: 100 })
var names = ble.getRegionName(self.data.regions || 0x7F)
self.setData({ regionData: self.parseScanResults(names) })
}, 5000)
},
+1 -1
查看文件
@@ -20,7 +20,7 @@ Page({
},
_getRegionText: function (regionMask) {
var REGION_MAP = {1:'区', 2:'区', 4:'上区', 8:'区', 16:'区', 32:'左上区', 64:'右上区'}
var REGION_MAP = {1:'区', 2:'区', 4:'上区', 8:'区', 16:'区', 32:'左上区', 64:'右上区'}
if (regionMask === 0x7F) return '全区域'
var names = []
for (var bit in REGION_MAP) {
@@ -3,11 +3,11 @@ Page({
data: {
statusBarHeight: 44,
regions: [
{ name: '区', mask: 0x01, checked: true },
{ name: '区', mask: 0x02, checked: true },
{ name: '区', mask: 0x01, checked: true },
{ name: '区', mask: 0x02, checked: true },
{ name: '上区', mask: 0x04, checked: true },
{ name: '区', mask: 0x08, checked: true },
{ name: '区', mask: 0x10, checked: true }
{ name: '区', mask: 0x08, checked: true },
{ name: '区', mask: 0x10, checked: true }
],
selectedMode: 0,
subExpired: false,
@@ -27,10 +27,10 @@
<view class="face-map">
<view class="face-region forehead {{regions[2].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="2">上区</view>
<view class="face-region left-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">左区</view>
<view class="face-region right-cheek {{regions[1].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="1">右区</view>
<view class="face-region nose {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">中区</view>
<view class="face-region chin {{regions[3].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="3">下区</view>
<view class="face-region left-cheek {{regions[1].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="1">左区</view>
<view class="face-region right-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">右区</view>
<view class="face-region nose {{regions[3].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="3">中区</view>
<view class="face-region chin {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">下区</view>
</view>
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
+2 -2
查看文件
@@ -312,8 +312,8 @@ function parseException(payload) {
function getRegionName(mask) {
var names = []
var bits = [
[0x01, '区'], [0x02, '区'], [0x04, '上区'],
[0x08, '区'], [0x10, '区'], [0x20, '左上区'], [0x40, '右上区']
[0x01, '区'], [0x02, '区'], [0x04, '上区'],
[0x08, '区'], [0x10, '区'], [0x20, '左上区'], [0x40, '右上区']
]
for (var i = 0; i < bits.length; i++) {
if (mask & bits[i][0]) names.push(bits[i][1])