mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-04-20 22:13:48 +00:00
Merge pull request #117 from wel97459/dev-reconnection
This cures a race condition that was messing up the disconnection handler. Before the bluetooth device was fully connected _handleDisconnection() was being called from the lisener.
This commit is contained in:
commit
4650584f9b
1 changed files with 3 additions and 7 deletions
|
|
@ -706,7 +706,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||
|
||||
try {
|
||||
_connectionSubscription = device.connectionState.listen((state) {
|
||||
if (state == BluetoothConnectionState.disconnected) {
|
||||
if (state == BluetoothConnectionState.disconnected && isConnected) {
|
||||
_handleDisconnection();
|
||||
}
|
||||
});
|
||||
|
|
@ -959,12 +959,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||
if (!isConnected) return;
|
||||
if (_batteryRequested && !force) return;
|
||||
_batteryRequested = true;
|
||||
try {
|
||||
await sendFrame(buildGetBattAndStorageFrame());
|
||||
} catch (e) {
|
||||
// Connection likely lost - trigger disconnection handling
|
||||
_handleDisconnection();
|
||||
}
|
||||
await sendFrame(buildGetBattAndStorageFrame());
|
||||
}
|
||||
|
||||
void _startBatteryPolling() {
|
||||
|
|
@ -995,6 +990,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<void> _requestDeviceInfo() async {
|
||||
if (!isConnected || _awaitingSelfInfo) return;
|
||||
_awaitingSelfInfo = true;
|
||||
await sendFrame(buildDeviceQueryFrame());
|
||||
await sendFrame(buildAppStartFrame());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue