getMeasurementStatus method

Future<MeasurementStatus?> getMeasurementStatus()

Returns the status of the measurement as an enum MeasurementStatus.

Implementation

Future<MeasurementStatus?> getMeasurementStatus() async {
  if (_measurementStatus == null) {
    _log.warning("Measurement Status characteristic not found on device");
    return null;
  }
  List<int> bytes = await _measurementStatus!.read();
  ByteData byteData = ByteData.sublistView(Uint8List.fromList(bytes));
  int measurementStatus = byteData.getUint8(0);
  MeasurementStatus mStatus = MeasurementStatus.unknown;
  switch (measurementStatus) {
    case 1:
      mStatus = MeasurementStatus.stoppedDurationReached;
      break;
    case 2:
      mStatus = MeasurementStatus.stoppedUserUsb;
      break;
    case 3:
      mStatus = MeasurementStatus.stoppedBatteryEmpty;
      break;
    case 4:
      mStatus = MeasurementStatus.stoppedError;
      break;
    case 5:
      mStatus = MeasurementStatus.stoppedUserBle;
      break;
    case 6:
      mStatus = MeasurementStatus.stoppedStorageFull;
      break;
    case 7:
      mStatus = MeasurementStatus.pausedBatteryLow;
      break;
    case 8:
      mStatus = MeasurementStatus.stoppedEmpty;
      break;
    case 9:
      mStatus = MeasurementStatus.measuring;
      break;
  }
  return mStatus;
}