exitProvisioning method
Future<void>
exitProvisioning(
{ - String psk = 'viamsetup',
})
Implementation
Future<void> exitProvisioning({String psk = 'viamsetup'}) async {
final bleService = await getBleService();
final cryptoCharacteristic = bleService.characteristics.firstWhere(
(char) => char.uuid.str == ViamBluetoothUUIDs.cryptoUUID,
orElse: () => throw Exception('cryptoCharacteristic not found'),
);
final publicKeyBytes = await cryptoCharacteristic.read();
final publicKey = _publicKey(Uint8List.fromList(publicKeyBytes));
final encoder = _encoder(publicKey);
final exitProvisioningCharacteristic = bleService.characteristics.firstWhere(
(char) => char.uuid.str == ViamBluetoothUUIDs.exitProvisioningUUID,
orElse: () => throw Exception('exitProvisioningCharacteristic not found'),
);
// "1" is arbitrary
await exitProvisioningCharacteristic.write(encoder.process(utf8.encode("$psk:1")));
}