readStatus method

Future<({bool isConfigured, bool isConnected})> readStatus()

Implementation

Future<({bool isConfigured, bool isConnected})> readStatus() async {
  final bleService = await getBleService();
  final statusCharacteristic = bleService.characteristics.firstWhere(
    (char) => char.uuid.str == ViamBluetoothUUIDs.statusUUID,
    orElse: () => throw Exception('statusCharacteristic not found'),
  );

  final buffer = await statusCharacteristic.read();
  final status = buffer[0];
  bool isConfigured = false;
  bool isConnected = false;
  switch (status) {
    case 0:
      break;
    case 1:
      isConfigured = true;
    case 2:
      isConnected = true;
    case 3:
      isConfigured = true;
      isConnected = true;
    default:
      throw Exception('Invalid status');
  }
  return (isConfigured: isConfigured, isConnected: isConnected);
}