summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcollin <collin+i@collinmcqueen.com>2020-06-17 13:14:44 -0400
committercollin <collin+i@collinmcqueen.com>2020-06-17 13:14:44 -0400
commit053ecb7848a42e1bd3f116629bc468eb0f5ae080 (patch)
treec6f4e76e0711eba3b9a2f9ce6dcd9757c0bd19a0
parentbf4c2cca97a09159f7461568e0ddaa7849069e35 (diff)
downloadsdl_core-fix/bluetooth_shutdown.tar.gz
Revert "remove hci inquiry call"fix/bluetooth_shutdown
This reverts commit bf4c2cca97a09159f7461568e0ddaa7849069e35.
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
index c561c50a75..4759b2003a 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
@@ -212,9 +212,40 @@ void BluetoothDeviceScanner::DoInquiry() {
CheckSDLServiceOnDevices(
paired_devices_, device_handle, &paired_devices_with_sdl_);
UpdateTotalDeviceList();
+
+ LOG4CXX_INFO(logger_, "Starting hci_inquiry on device " << device_id);
+ const uint8_t inquiry_time = 8u; // Time unit is 1.28 seconds
+ const size_t max_devices = 256u;
+ inquiry_info* inquiry_info_list = new inquiry_info[max_devices];
+
+ const int number_of_devices = hci_inquiry(device_id,
+ inquiry_time,
+ max_devices,
+ 0,
+ &inquiry_info_list,
+ IREQ_CACHE_FLUSH);
+
+ if (number_of_devices >= 0) {
+ LOG4CXX_INFO(logger_,
+ "hci_inquiry: found " << number_of_devices << " devices");
+ std::vector<bdaddr_t> found_devices(number_of_devices);
+ for (int i = 0; i < number_of_devices; ++i) {
+ found_devices[i] = inquiry_info_list[i].bdaddr;
+ }
+ found_devices_with_sdl_.clear();
+ CheckSDLServiceOnDevices(
+ found_devices, device_handle, &found_devices_with_sdl_);
+ }
+ UpdateTotalDeviceList();
controller_->FindNewApplicationsRequest();
close(device_handle);
+ delete[] inquiry_info_list;
+
+ if (number_of_devices < 0) {
+ LOG4CXX_DEBUG(logger_, "number_of_devices < 0");
+ controller_->SearchDeviceFailed(SearchDeviceError());
+ }
}
void BluetoothDeviceScanner::CheckSDLServiceOnDevices(