feat: auto-scan receives 4 sequential ADC sets for multi-spectrum scan

Firmware does R→UV→Y→IR sequential scan autonomously. Miniprogram
now listens for 4 consecutive ADC notifications, storing each as a
separate spectrum group. Also listens for run_state=IDLE as scan
completion signal. Displays all 4 spectrum groups with PD1-PD7 bars.
Stores full scan data in globalData.lastScanData for diagnosis phase.
这个提交包含在:
Guoguo
2026-06-22 06:20:53 -07:00
父节点 b5c6038273
当前提交 f4e74e9460
修改 3 个文件,包含 115 行新增50 行删除
+17 -11
查看文件
@@ -1,8 +1,8 @@
<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 class="page-header-title">多光谱扫描</view>
<view class="page-header-subtitle">{{scanning ? '正在采集数据 (' + spectrumIndex + '/4)...' : '扫描完成'}}</view>
</view>
<view class="page-content">
@@ -13,17 +13,19 @@
<view class="scan-progress-bar">
<view class="scan-progress-fill" style="width: {{scanProgress}}%"></view>
</view>
<view class="scan-status">全域LED已开启,亮度 128,等待PD数据回传...</view>
<view class="scan-status">固件序贯扫描中:红光 → 紫外光 → 黄光 → 红外光</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 class="scan-result" wx:if="{{!scanning && spectrumData.length > 0}}">
<view class="spectrum-group" wx:for="{{spectrumData}}" wx:key="name">
<view class="spectrum-title">{{item.name}} (第{{index + 1}}组)</view>
<view class="pd-list">
<view class="pd-item" wx:for="{{item.items}}" wx:for-item="pd" wx:key="label">
<view class="pd-region">{{pd.label}}</view>
<view class="pd-value">{{pd.value}}</view>
<view class="pd-bar-bg" wx:if="{{pd.value > 0}}">
<view class="pd-bar-fill" style="width: {{pd.barWidth}}%"></view>
</view>
</view>
</view>
</view>
@@ -32,6 +34,10 @@
</view>
</view>
<view class="scan-result" wx:if="{{!scanning && spectrumData.length === 0 && !error}}">
<view class="empty-hint">未收到扫描数据</view>
</view>
<view class="scan-error" wx:if="{{!scanning && error}}">{{error}}</view>
<button class="btn-primary mt-30" wx:if="{{!scanning}}" bindtap="onNext">下一步</button>