startMagnetometer method

  1. @override
Future<Stream<SensorEvent>> startMagnetometer(
  1. double samplingRate
)
override

Starts streaming magnetometer data from the Movesense device at the given samplingRate (Hz). Returns a stream of SensorEvents.

Implementation

@override
Future<Stream<SensorEvent>> startMagnetometer(double samplingRate) async {
  try {
    if (connectedSerial == null) {
      throw Exception('No Movesense device connected');
    }
    if (_magController.isClosed) {
      _magController = StreamController<SensorEvent>.broadcast();
    }
    if (!_magController.hasListener && _magStreamSubscription == null) {
      _subscribeToMag(samplingRate);
    }
    return _magController.stream;
  } catch (e) {
    if (kDebugMode) {
      print('Error starting Movesense magnetometer: $e');
    }
    rethrow;
  }
}