- Extract _cleanup() to properly unregister ADC listener + clear timers - ADC callback unregisters itself on first receive (prevent duplicates) - setParams failure now stops scanning and clears all state - Timeout handler unregisters ADC listener - Add BLE connection check before scan - SCAN_TIMEOUT 8s → 12s (must exceed hold_time 10s) - Pre-compute barWidth in JS instead of float math in WXML - Error only shows when scanning is false
40 行
1.6 KiB
Plaintext
40 行
1.6 KiB
Plaintext
<view class="page">
|
||
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
|
||
<view class="nav-back" bindtap="onBack">‹ 返回</view>
|
||
<view class="page-header-title">区域扫描</view>
|
||
<view class="page-header-subtitle">{{scanning ? '正在采集数据...' : '扫描完成'}}</view>
|
||
</view>
|
||
|
||
<view class="page-content">
|
||
<view class="scan-container" wx:if="{{scanning}}">
|
||
<view class="face-outline">
|
||
<view class="scan-line"></view>
|
||
</view>
|
||
<view class="scan-progress-bar">
|
||
<view class="scan-progress-fill" style="width: {{scanProgress}}%"></view>
|
||
</view>
|
||
<view class="scan-status">全域LED已开启,亮度 128,等待PD数据回传...</view>
|
||
</view>
|
||
|
||
<view class="scan-result" wx:if="{{!scanning && pdValues.length > 0}}">
|
||
<view class="result-title">PD 采集结果</view>
|
||
<view class="pd-list">
|
||
<view class="pd-item" wx:for="{{pdValues}}" wx:key="region">
|
||
<view class="pd-region">{{item.region}}</view>
|
||
<view class="pd-value {{item.pd > 0 ? '' : 'pd-empty'}}">{{item.pdText}}</view>
|
||
<view class="pd-bar-bg" wx:if="{{item.pd > 0}}">
|
||
<view class="pd-bar-fill" style="width: {{item.barWidth}}%"></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="vbat-info" wx:if="{{vbat > 0}}">
|
||
电池电压: {{vbat}}mV ({{battery}}%)
|
||
</view>
|
||
</view>
|
||
|
||
<view class="scan-error" wx:if="{{!scanning && error}}">{{error}}</view>
|
||
|
||
<button class="btn-primary mt-30" wx:if="{{!scanning}}" bindtap="onNext">下一步</button>
|
||
</view>
|
||
</view>
|