feat: implement sensor calibration flow
This commit is contained in:
@@ -16,4 +16,30 @@ abstract class SensorRepository {
|
||||
/// Stream of raw SensorsChannel messages. Each map contains an `event` key
|
||||
/// (`sensor_announced` or `sensor_enrollment_timeout`) plus the payload.
|
||||
Stream<Map<String, dynamic>> sensorEvents();
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Calibration
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/// Enters calibration mode on the sensor. Returns the number of samples the
|
||||
/// server will collect per stage.
|
||||
Future<int> beginCalibration(int id);
|
||||
|
||||
/// Starts a collection stage at [distance] metres.
|
||||
Future<void> startStage(int id, double distance);
|
||||
|
||||
/// Runs least-squares regression over all completed stages and persists the
|
||||
/// result. Returns the fitted (rssiRef, pathLossExp) pair.
|
||||
Future<({double rssiRef, double pathLossExp})> finishCalibration(int id);
|
||||
|
||||
/// Aborts calibration and discards all accumulated stage data.
|
||||
Future<void> cancelCalibration(int id);
|
||||
|
||||
/// Real-time events from the server's CalibrationChannel.
|
||||
/// Topic: `calibration:{sensorDeviceId}` (the string BLE device ID).
|
||||
Stream<({String event, Map<String, dynamic> payload})> calibrationEvents(
|
||||
String sensorDeviceId);
|
||||
|
||||
/// Leaves the calibration Phoenix channel for [sensorDeviceId].
|
||||
void leaveCalibrationChannel(String sensorDeviceId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user