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

NRF_ERROR_INVALID_STATE

I am trying to connect ,disconnect and connect using nRF dev kit with one of the BLE product. (using PC-BLE-DRIVER-PY)

Steps:

  1) Open driver connection:
        self.adapter.driver.open()
        gatt_cfg = BLEConfigConnGatt()
        gatt_cfg.att_mtu = 250
        gatt_cfg.tag = 1
        self.adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg)

        conn_cfg = BLEConfigConnGap()
        conn_cfg.conn_count = 1
        conn_cfg.event_length = 320
        self.adapter.driver.ble_cfg_set(BLEConfig.conn_gap, conn_cfg)

        self.adapter.driver.ble_enable()
        self.adapter.driver.ble_vs_uuid_add(self.zcsBase)
2) Scan,discover and connect with the device:
       
        params = BLEGapScanParams(interval_ms=200, window_ms=150, timeout_s=scan_duration)
        self.adapter.driver.ble_gap_scan_start(scan_params=params)
        
         new_conn = self.conn_q.get(timeout=scan_duration)
         self.adapter.service_discovery(new_conn)
         for service in self.adapter.db_conns[new_conn].services:
                self.services.append(str(service.uuid))
                 
          time.sleep(5)
          self.conn_hdl = new_conn
    
          return self.adapter 
3) Disconnect:
self.adapter.disconnect(self.conn_hdl)
4) Scan,Discover and connect again:
getting error:pc_ble_driver_py.ble_driver:ble_driver.py:2772 Exception: Failed to ble_gap_scan_start. Error code: NRF_ERROR_INVALID_STATE
Related