initializeCharacteristics method
Implementation
Future<VtjCommandResult<void>> initializeCharacteristics(
BluetoothDevice device,
) async {
try {
final services = await device.discoverServices();
for (final service in services) {
if (service.uuid.toString().toLowerCase() != serviceUuid.toLowerCase()) {
continue;
}
for (final characteristic in service.characteristics) {
final charUuid = characteristic.uuid.toString().toLowerCase();
if (charUuid == rpcCallCharUuid.toLowerCase()) {
_writeCharacteristic = characteristic;
} else if (charUuid == rpcReplyCharUuid.toLowerCase()) {
_replyCharacteristic = characteristic;
}
}
}
if (_writeCharacteristic == null || _replyCharacteristic == null) {
return const VtjCommandResult.failure(
'Required characteristics not found',
null,
);
}
await _replyCharacteristic!.setNotifyValue(true);
return const VtjCommandResult.success(null);
} catch (e) {
return VtjCommandResult.failure(
'Failed to initialize characteristics: $e',
null,
);
}
}