feat(dfu): add connection and MTU preflight checks
This commit is contained in:
@ -299,11 +299,20 @@ class BluetoothController {
|
||||
|
||||
Future<Result<void>> requestMtu(String deviceId,
|
||||
{int mtu = defaultMtu}) async {
|
||||
final result = await requestMtuAndGetValue(deviceId, mtu: mtu);
|
||||
if (result.isErr()) {
|
||||
return bail(result.unwrapErr());
|
||||
}
|
||||
return Ok(null);
|
||||
}
|
||||
|
||||
Future<Result<int>> requestMtuAndGetValue(String deviceId,
|
||||
{int mtu = defaultMtu}) async {
|
||||
try {
|
||||
final negotiatedMtu = await _ble.requestMtu(deviceId: deviceId, mtu: mtu);
|
||||
log.info(
|
||||
'MTU negotiated for $deviceId: requested $mtu, got $negotiatedMtu');
|
||||
return Ok(null);
|
||||
return Ok(negotiatedMtu);
|
||||
} catch (e) {
|
||||
return bail('Error requesting MTU $mtu for $deviceId: $e');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user