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