The way of detect other Bluetooth devices is making a scan looking advertisements. There are some parameters can be configured to allow scanning in the desired way. These parameters are: Scan Interval, Scan Window and Scanning mode.
Scan Interval
In BLE terminology, scan interval is the duration of time between two consecutive times that the scanner wakes up to receive the advertising messages. This parameter is defined in units of 0.625ms and has a range between 4 and 16384. By default is set to 189, which is equivalent to 189 * 0.625ms = 118.125ms.
Scan Window
The Scan Window parameter defines how long to scan at each interval. This parameter is defined in units of 0.625ms and has a range between 4 and 16384. By default is set to 29, which is equivalent to 18.125ms. The Scan Window parameter must be equal or smaller than Scan Interval.
Scanning Mode
There are two scanning mode: Active and Passive scanning. In passive scanning, the BLE radio just
listens to other devices advertisements. When one of these advertisements is detected, the radio reports to
Bluetooth Framework the discovered device and all the advertisement packet. The advertisement contains information
like discoverability and connectability modes, TX power level, MAC address of the device and/or application data.
In active scanning the radio will request more information once an advertisement is received, and the advertiser
will answer with information like friendly name and supported profiles.
Bluetooth Framework allows you to change the scan parameters when you use wclBluetoothLeBeaconWatcher class. Its Start method takes the ScanningMode, ScanInterval and ScanWindow as its parameters (with default value set to ScanningMode = smActive, ScanInterval = WCL_BLE_DEFAULT_SCAN_INTERVAL and ScanWindow = WCL_BLE_DEFAULT_SCAN_WINDOW. The WCL_BLE_DEFAULT_SCAN_INTERVAL = 189 and the WCL_BLE_DEFAULT_SCAN_WINDOW = 29. If the Start() method returns one of the following errors: WCL_E_BLUETOOTH_LE_CREATE_SCAN_PARAMS_SET_EVENT_FAILED, WCL_E_BLUETOOTH_RADIO_INSTANCE_NOT_FOUND, WCL_E_BLUETOOTH_OPEN_RADIO_FAILED or WCL_E_BLUETOOTH_LE_SET_SCAN_PARAMS_FAILED then simple call this method with default scan parameters.