feat: implement sensor calibration flow

This commit is contained in:
2026-05-21 16:19:43 +02:00
parent acbba735a0
commit cf3019f484
9 changed files with 1370 additions and 8 deletions
+17
View File
@@ -2,6 +2,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'domain/models/server_config.dart';
import 'domain/models/sensor.dart';
import 'domain/models/calibration.dart';
import 'features/sensors/calibration_notifier.dart';
import 'domain/models/floor.dart';
import 'domain/models/tag.dart';
import 'domain/models/particle.dart';
@@ -208,3 +210,18 @@ final particleSnapshotProvider =
StreamProvider.autoDispose.family<ParticleSnapshot, String>((ref, tagId) {
return ref.watch(tagRepositoryProvider).watchParticleCloud(tagId);
});
// ---------------------------------------------------------------------------
// Calibration state - keyed by sensor DB id
// ---------------------------------------------------------------------------
/// Interactive calibration state machine for a specific sensor.
/// Auto-disposed when no widget is watching (e.g. after the sheet closes).
final calibrationProvider = StateNotifierProvider.autoDispose
.family<CalibrationNotifier, CalibrationState, ({int id, String deviceId})>(
(ref, sensor) => CalibrationNotifier(
sensorId: sensor.id,
sensorDeviceId: sensor.deviceId,
repo: ref.watch(sensorRepositoryProvider),
),
);