This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Queston about the pc-ble-driver-py for nRF52840-Dongle

Hi Dears,

I am using the pc-ble-friver-py-0.1.0 for the nRF5840-Dongle development, I have an issue with the ble scan:

I used the function ble_gap_scan_start to aotu start the ble-scna, my scene is that if the ble-device advertised is not which I wanted, I will restart the scan instead of connecting it. To restart the scan, I use the ble_gap_scan_stop-->ble_gap_scan_start serials  in order to get a new advertisement from different devices. But when I call the ble_gap_scan_start after called the ble_gap_scan_stop, I received the error:

  File "/home/BleCollector.py", line 92, in connect_and_discover
    self.adapter.driver.ble_gap_scan_start()
  File "/usr/local/lib/python3.7/dist-packages/pc_ble_driver_py-0.12.0-py3.7-linux-x86_64.egg/pc_ble_driver_py/ble_driver.py", line 99, in wrapper
    error_code=err_code,
pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_gap_scan_start. Error code: 8

8 means NRF_ERROR_INVALID_STATE, I have checked the nRF SoftDevice API, it says:

NRF_ERROR_INVALID_STATE	Invalid state to perform operation. Either:

                        Scanning is already ongoing and p_scan_params was not NULL
                        Scanning is not running and p_scan_params was NULL.
                        The scanner has timed out when this function is called to continue scanning.

But from the python api in pc-ble-driver-py, it doesn't have these two parameters:

   def ble_gap_scan_start(self, scan_params=None):
        if not scan_params:
            scan_params = self.scan_params_setup()
        assert isinstance(scan_params, BLEGapScanParams), "Invalid argument type"
        return driver.sd_ble_gap_scan_start(self.rpc_adapter, scan_params.to_c()

So I don't know how to afford it, or is there any other way to restart the scan to receive advertisement from other devices?

Thank you very much!

Parents Reply Children
No Data
Related