def __init__(self, comport, periph_name, s_conn): driver = BLEDriver(serial_port = comport, baud_rate = 115200) adapter = BLEAdapter(driver) self.evt_sync = EvtSync(['connected', 'disconnected']) self.target_device_name = periph_name self.target_device_addr = 0 self.conn_handle = None self.adapter = adapter self.notifications_q = Queue.Queue() self.adapter.observer_register(self) self.adapter.driver.observer_register(self) self.s_conn = s_conn self.adapter.driver.open() ble_enable_params = BLEEnableParams(vs_uuid_count = 10, service_changed = False, periph_conn_count = 0, central_conn_count = 1, central_sec_count = 1) if nrf_sd_ble_api_ver >= 3: logger.info("\nBLE: ble_enable with local ATT MTU: {}".format(DFUAdapter.LOCAL_ATT_MTU)) ble_enable_params.att_mtu = BLE_Serial.LOCAL_ATT_MTU self.adapter.driver.ble_enable(ble_enable_params) self.adapter.driver.ble_vs_uuid_add(BLE_Serial.BASE_UUID) self.connect()
def open(self): self.adapter.driver.open() ble_enable_params = BLEEnableParams(vs_uuid_count = 10, service_changed = True, periph_conn_count = 0, central_conn_count = 1, central_sec_count = 1) if nrf_sd_ble_api_ver >= 3: logger.info("\nBLE: ble_enable with local ATT MTU: {}".format(DFUAdapter.LOCAL_ATT_MTU)) ble_enable_params.att_mtu = DFUAdapter.LOCAL_ATT_MTU self.adapter.driver.ble_enable(ble_enable_params) self.adapter.driver.ble_vs_uuid_add(DFUAdapter.BASE_UUID)
def open(self): self.adapter.driver.open() ble_enable_params = BLEEnableParams(vs_uuid_count = 1, service_changed = False, periph_conn_count = 0, central_conn_count = CONNECTIONS, central_sec_count = CONNECTIONS) if nrf_sd_ble_api_ver >= 3: print("Enabling larger ATT MTUs") ble_enable_params.att_mtu = 50 self.adapter.driver.ble_enable(ble_enable_params)
def open(self): self.adapter.driver.open() ble_enable_params = BLEEnableParams(vs_uuid_count=2, service_changed=False, periph_conn_count=0, central_conn_count=CONNECTIONS, central_sec_count=CONNECTIONS) if nrf_sd_ble_api_ver >= 3: ble_enable_params.att_mtu = 247 print("Enabling packet length %d", ble_enable_params.att_mtu) self.adapter.driver.ble_enable(ble_enable_params) for uuid in self.uuids: self.adapter.driver.ble_vs_uuid_add(uuid)
def main(serial_port): print("Serial port used: {}".format(serial_port)) driver = BLEDriver(serial_port=serial_port, baud_rate=1000000) observer = TimeoutObserver() adv_data = BLEAdvData(complete_local_name="pc_ble_driver_py") driver.observer_register(observer) driver.open() if config.__conn_ic_id__.upper() == "NRF51": driver.ble_enable( BLEEnableParams( vs_uuid_count=0, service_changed=0, periph_conn_count=1, central_conn_count=0, central_sec_count=0, ) ) elif config.__conn_ic_id__.upper() == "NRF52": driver.ble_enable() driver.ble_gap_adv_data_set(adv_data) driver.ble_gap_adv_start() observer.wait_for_timeout() print("Closing") driver.close()
def open(self): self.adapter.driver.open() assert nrf_sd_ble_api_ver in [2, 5] if nrf_sd_ble_api_ver == 2: self.adapter.driver.ble_enable( BLEEnableParams( vs_uuid_count=10, service_changed=True, periph_conn_count=0, central_conn_count=1, central_sec_count=1, )) if nrf_sd_ble_api_ver == 5: self.adapter.driver.ble_cfg_set( BLEConfig.conn_gatt, BLEConfigConnGatt(att_mtu=DFUAdapter.LOCAL_ATT_MTU), ) self.adapter.driver.ble_cfg_set( BLEConfig.conn_gap, BLEConfigConnGap(event_length=5) ) # Event length 5 is required for max data length self.adapter.driver.ble_enable() self.adapter.driver.ble_vs_uuid_add(DFUAdapter.BASE_UUID)
def setUp(self): settings = Settings.current() self.driver = BLEDriver( serial_port=settings.serial_ports[0], auto_flash=False, baud_rate=settings.baud_rate, retransmission_interval=settings.retransmission_interval, response_timeout=settings.response_timeout, log_severity_level=settings.driver_log_level, ) self.adapter = BLEAdapter(self.driver) self.adapter.open() if settings.nrf_family == "NRF51": self.adapter.driver.ble_enable( BLEEnableParams( vs_uuid_count=1, service_changed=0, periph_conn_count=0, central_conn_count=1, central_sec_count=0, )) elif settings.nrf_family == "NRF52": gatt_cfg = BLEConfigConnGatt() gatt_cfg.att_mtu = self.adapter.default_mtu gatt_cfg.tag = 1 self.adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg) self.adapter.driver.ble_enable()
def setup_adapter( port, auto_flash, baud_rate, retransmission_interval, response_timeout, driver_log_level, ): settings = Settings.current() driver = BLEDriver( serial_port=port, auto_flash=auto_flash, baud_rate=baud_rate, retransmission_interval=retransmission_interval, response_timeout=response_timeout, log_severity_level=driver_log_level, ) adapter = BLEAdapter(driver) adapter.default_mtu = settings.mtu adapter.open() if settings.nrf_family == "NRF51": adapter.driver.ble_enable( BLEEnableParams( vs_uuid_count=1, service_changed=0, periph_conn_count=1, central_conn_count=1, central_sec_count=0, )) elif settings.nrf_family == "NRF52": gatt_cfg = BLEConfigConnGatt() gatt_cfg.att_mtu = adapter.default_mtu gatt_cfg.tag = Settings.CFG_TAG adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg) if hasattr(settings, "event_length"): gap_cfg = BLEConfigConnGap() gap_cfg.event_length = settings.event_length adapter.driver.ble_cfg_set(BLEConfig.conn_gap, gap_cfg) adapter.driver.ble_enable() return adapter
def open(self): self.adapter.driver.open() if config.__conn_ic_id__ == "NRF51": self.adapter.driver.ble_enable( BLEEnableParams( vs_uuid_count=1, service_changed=0, periph_conn_count=0, central_conn_count=1, central_sec_count=0, )) elif config.__conn_ic_id__ == "NRF52": gatt_cfg = BLEConfigConnGatt() gatt_cfg.att_mtu = self.adapter.default_mtu gatt_cfg.tag = CFG_TAG self.adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg) self.adapter.driver.ble_enable()
def test_open_close(self): settings = Settings.current() driver = BLEDriver( serial_port=settings.serial_ports[0], auto_flash=False, baud_rate=settings.baud_rate, retransmission_interval=settings.retransmission_interval, response_timeout=settings.response_timeout, log_severity_level=settings.driver_log_level, ) adapter = BLEAdapter(driver) central = Central(adapter) logger.info("Number of iterations: %s", settings.number_of_iterations) for _ in range(0, settings.number_of_iterations): adapter.open() if settings.nrf_family == "NRF51": adapter.driver.ble_enable( BLEEnableParams( vs_uuid_count=1, service_changed=0, periph_conn_count=0, central_conn_count=1, central_sec_count=0, ) ) elif settings.nrf_family == "NRF52": gatt_cfg = BLEConfigConnGatt() gatt_cfg.att_mtu = adapter.default_mtu gatt_cfg.tag = 1 adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg) adapter.driver.ble_enable() adapter.driver.ble_gap_scan_start() time.sleep(1) self.assertTrue(central.adv_received) adapter.close()