Fix implementation of OnChipScanComplete and OnScanComplete - second PR (#24873)
* Remove on connection error from on scan complete
Create a separate error handler for scan errors
* Fix typo
* Remove redundant variable set
* Rewrite OnScanComplete to make it more readable.
Create a separate function to handle scan errors.
* Add missing override
* Style fix
* Change log level
* Call an error in darwin on StopTimeoutReached
* Error as int
diff --git a/src/platform/Linux/BLEManagerImpl.cpp b/src/platform/Linux/BLEManagerImpl.cpp
index 2c2a879..c9ae6ae 100644
--- a/src/platform/Linux/BLEManagerImpl.cpp
+++ b/src/platform/Linux/BLEManagerImpl.cpp
@@ -790,7 +790,7 @@
}
else
{
- // Internal consistency eerror
+ // Internal consistency error
ChipLogError(Ble, "Unknown discovery type. Ignoring scanned device.");
return;
}
@@ -804,15 +804,24 @@
void BLEManagerImpl::OnScanComplete()
{
- if (mBLEScanConfig.mBleScanState != BleScanState::kScanForDiscriminator &&
- mBLEScanConfig.mBleScanState != BleScanState::kScanForAddress)
+ switch (mBLEScanConfig.mBleScanState)
{
+ case BleScanState::kNotScanning:
ChipLogProgress(Ble, "Scan complete notification without an active scan.");
- return;
+ break;
+ case BleScanState::kScanForAddress:
+ case BleScanState::kScanForDiscriminator:
+ mBLEScanConfig.mBleScanState = BleScanState::kNotScanning;
+ ChipLogProgress(Ble, "Scan complete. No matching device found.");
+ break;
+ case BleScanState::kConnecting:
+ break;
}
+}
- BleConnectionDelegate::OnConnectionError(mBLEScanConfig.mAppState, CHIP_ERROR_TIMEOUT);
- mBLEScanConfig.mBleScanState = BleScanState::kNotScanning;
+void BLEManagerImpl::OnScanError(CHIP_ERROR err)
+{
+ ChipLogError(Ble, "BLE scan error: %" CHIP_ERROR_FORMAT, err.Format());
}
} // namespace Internal