hrv_controller.dart 1.47 KB
import 'package:flutter/foundation.dart';
import 'package:get/get.dart';

import 'trend_period_controller.dart';

/// HRV 心率变异性 专属 Controller
class HrvController extends TrendPeriodController {
  // ── 响应式数据源 ──────────────────────────────────────
  final averageHrv = '0'.obs;
  final changeHrv = '0'.obs;
  final chartData = <double>[].obs;
  final chartLabels = <String>[].obs;

  @override
  void loadData() {
    final stopwatch = Stopwatch()..start();
    _log('legacy_load_start period=${currentPeriod.value.name} '
        'offset=${dateOffset.value}');
    isLoading.value = true;

    final offset = dateOffset.value;

    // 依据时间范围偏移动态渲染不同数据,模拟真实 API 拉取效果
    averageHrv.value = '${46 + offset}';
    changeHrv.value = offset >= 0 ? '+3' : '${offset * 2}';

    chartData.value = [
      42.0 + offset,
      48.0 - offset,
      55.0 + offset * 2,
      46.0 - offset,
      52.0 + offset,
      58.0 + offset * 3,
      50.0 - offset * 2,
    ].map((e) => e.clamp(20.0, 80.0)).toList();

    chartLabels.value = ['一', '二', '三', '四', '五', '六', '日'];

    isLoading.value = false;
    _log('legacy_load_finish period=${currentPeriod.value.name} '
        'count=${chartData.length} elapsedMs=${stopwatch.elapsedMilliseconds}');
  }

  void _log(String message) {
    debugPrint('[OHOS_HRV_TREND_PROFILE] $message');
  }
}