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      = 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=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()
Exemple #7
0
    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
Exemple #10
0
    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()