Skip to content

[Experimental] Improved integrated tests with nRF52840-Dongles#172

Open
mdxs wants to merge 1 commit intoThomasGerstenberg:masterfrom
mdxs:fix_make_run_tests
Open

[Experimental] Improved integrated tests with nRF52840-Dongles#172
mdxs wants to merge 1 commit intoThomasGerstenberg:masterfrom
mdxs:fix_make_run_tests

Conversation

@mdxs
Copy link
Copy Markdown
Contributor

@mdxs mdxs commented Nov 13, 2023

When trying to run the make run-tests with 2x nRF52840-Dongle (PCA10056) and 1x the nRF52-DK (PCA10040; a Dev Kit for the nRF52832), the nature of the nRF52840-Dongle to reset with breaking the USB device connection causes the tests to fail in the current code base after some tests:

# tests results with 2x PCA10056 and 1x PCA10040 with as-is code base (read: pre-PR)
$ export BLATANN_DEV_1=/dev/ttyACM0
$ export BLATANN_DEV_2=/dev/ttyACM1
$ export BLATANN_DEV_3=/dev/ttyACM2
$ make run-tests
[2023-11-13 17:47:03,519] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:47:03,520] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] open()
[2023-11-13 17:47:04,736] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_conn_configure(<blatann.nrf.nrf_types.config.BleConnConfig object at 0x7fdd6ab606a0>,)
[2023-11-13 17:47:04,741] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_enable(<blatann.nrf.nrf_types.config.BleEnableConfig object at 0x7fdd6ab62e60>,)
[2023-11-13 17:47:04,749] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_device_name_set(b'nRF5x',)

# snipped some of the results ...

[DEBUG]: [/dev/ttyACM0] ble_gap_tx_power_set(0,)
[2023-11-13 17:55:12,671] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_tx_power_set(0,)
[2023-11-13 17:55:12,674] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_adv_data_set({<Types.flags: 1>: [6], <Types.complete_local_name: 9>: 'Blatann Test'}, {})
[2023-11-13 17:55:12,676] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_addr_get()
[2023-11-13 17:55:12,679] [MainThread] [blatann.gap.advertising._start:210] [INFO]: Starting advertising, params: 'BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 30s, ch mask: 000), auto-restart: False
[2023-11-13 17:55:12,679] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_adv_start('BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 30s, ch mask: 000), 1)
[2023-11-13 17:55:12,684] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_connect(BLEGapAddr(F2:06:73:60:6A:E3,s),)
[2023-11-13 17:55:12,794] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=0, peer_addr=BLEGapAddr(F2:06:73:60:6A:E3,s), role=<BLEGapRoles.central: 2>, conn_params=BLEGapConnParams(interval: [7.5-7.5] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 17:55:12,794] [/dev/ttyACM1_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_addr_get()
[2023-11-13 17:55:12,795] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=1, peer_addr=BLEGapAddr(DA:A4:43:6F:89:6D,s), role=<BLEGapRoles.periph: 1>, conn_params=BLEGapConnParams(interval: [7.5-7.5] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 17:55:12,796] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_addr_get()
[2023-11-13 17:55:12,800] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_rssi_start(1, 5, 3)
[2023-11-13 17:55:12,810] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtRssiChanged(conn_handle=1, rssi=-18)
[2023-11-13 17:55:12,810] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_tx_power_set(-20,)
[2023-11-13 17:55:12,840] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtRssiChanged(conn_handle=1, rssi=-32)
[2023-11-13 17:55:12,840] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_tx_power_set(-8,)
[2023-11-13 17:55:12,870] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtRssiChanged(conn_handle=1, rssi=-23)
[2023-11-13 17:55:12,870] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_privacy_set(BLEGapPrivacyParams(enabled=False, resolvable_addr=True, addr_update_rate_s=900),)
[2023-11-13 17:55:12,872] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_disconnect(0, <BLEHci.remote_user_terminated_connection: 19>)
[2023-11-13 17:55:12,886] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=0, reason=<BLEHci.local_host_terminated_connection: 22>)
[2023-11-13 17:55:12,891] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=1, reason=<BLEHci.remote_user_terminated_connection: 19>)
ok
[2023-11-13 17:55:12,938] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] close()
[2023-11-13 17:55:18,127] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] close()
[2023-11-13 17:55:25,258] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:55:25,259] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] open()
ERROR
[2023-11-13 17:55:28,469] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:55:28,469] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] open()
[2023-11-13 17:55:29,686] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_conn_configure(<blatann.nrf.nrf_types.config.BleConnConfig object at 0x7fdd5772d270>,)
[2023-11-13 17:55:29,691] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_enable(<blatann.nrf.nrf_types.config.BleEnableConfig object at 0x7fdd577121d0>,)
[2023-11-13 17:55:29,699] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_device_name_set(b'nRF5x',)
[2023-11-13 17:55:29,701] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_appearance_set(<Appearance.unknown: 0>,)
[2023-11-13 17:55:29,703] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:55:29,704] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] open()
ERROR
[2023-11-13 17:55:33,114] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:55:33,114] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] open()
ERROR
[2023-11-13 17:55:36,521] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 17:55:36,521] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] open()
[2023-11-13 17:55:37,734] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_conn_configure(<blatann.nrf.nrf_types.config.BleConnConfig object at 0x7fdd578d6350>,)
ERROR

======================================================================
ERROR: setUpClass (integrated.test_gatt.TestGatt)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mdxs/dev/gh/blatann/tests/integrated/test_gatt.py", line 74, in setUpClass
    super(TestGatt, cls).setUpClass()
  File "/home/mdxs/dev/gh/blatann/tests/integrated/base.py", line 63, in setUpClass
    cls.dev1.open(True)
  File "/home/mdxs/dev/gh/blatann/blatann/device.py", line 198, in open
    self.ble_driver.open()
  File "/home/mdxs/dev/gh/blatann/blatann/nrf/nrf_driver.py", line 80, in wrapper
    raise NordicSemiException('Failed to {}. {}'.format(wrapped.__name__, err_string), err_code)
pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: NrfError.rpc_h5_transport_state

======================================================================
ERROR: setUpClass (integrated.test_gatt_writes.TestGattWrites)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mdxs/dev/gh/blatann/tests/integrated/test_gatt_writes.py", line 44, in setUpClass
    super(TestGattWrites, cls).setUpClass()
  File "/home/mdxs/dev/gh/blatann/tests/integrated/base.py", line 64, in setUpClass
    cls.dev2.open(True)
  File "/home/mdxs/dev/gh/blatann/blatann/device.py", line 198, in open
    self.ble_driver.open()
  File "/home/mdxs/dev/gh/blatann/blatann/nrf/nrf_driver.py", line 80, in wrapper
    raise NordicSemiException('Failed to {}. {}'.format(wrapped.__name__, err_string), err_code)
pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: NrfError.timeout

======================================================================
ERROR: setUpClass (integrated.test_scanner.TestScanner)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mdxs/dev/gh/blatann/tests/integrated/base.py", line 63, in setUpClass
    cls.dev1.open(True)
  File "/home/mdxs/dev/gh/blatann/blatann/device.py", line 198, in open
    self.ble_driver.open()
  File "/home/mdxs/dev/gh/blatann/blatann/nrf/nrf_driver.py", line 80, in wrapper
    raise NordicSemiException('Failed to {}. {}'.format(wrapped.__name__, err_string), err_code)
pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: NrfError.timeout

======================================================================
ERROR: setUpClass (integrated.test_security.TestSecurity)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mdxs/dev/gh/blatann/tests/integrated/test_security.py", line 27, in setUpClass
    super(TestSecurity, cls).setUpClass()
  File "/home/mdxs/dev/gh/blatann/tests/integrated/base.py", line 63, in setUpClass
    cls.dev1.open(True)
  File "/home/mdxs/dev/gh/blatann/blatann/device.py", line 200, in open
    self.ble_driver.ble_conn_configure(self._default_conn_config)
  File "/home/mdxs/dev/gh/blatann/blatann/nrf/nrf_driver.py", line 80, in wrapper
    raise NordicSemiException('Failed to {}. {}'.format(wrapped.__name__, err_string), err_code)
pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_conn_configure. Error code: NrfError.rpc_no_response

----------------------------------------------------------------------
Ran 16 tests in 514.829s

FAILED (errors=4)
make: *** [Makefile:48: run-tests] Error 1

One of the errors seen is the NrfError.rpc_h5_transport_state, which was also reported in #75 and #103 - in which I wrote about a workaround that worked for me on Linux (I've not yet tested it on Windows).

Using that approach in this PR improved the number of tests performed with make run-tests on Linux, though it doesn't seem to complete all the tests either:

# tests results with 2x PCA10056 and 1x PCA10040 with this PR applied to the code base

# snipped some of the results ...
[2023-11-13 18:57:57,304] [MainThread] [blatann.gap.smp.pair:300] [INFO]: Re-establishing encryption with peer using LTKs
[2023-11-13 18:57:57,304] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_encrypt(0, BLEGapMasterId(e: 0, r: b'0000000000000000'), Encrypt(ltk: b'154fbf2923e23baf68bb630da29f4f25', lesc: 1, auth: 0))
[2023-11-13 18:57:57,501] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtSecInfoRequest(conn_handle=1, peer_addr=BLEGapAddr(F2:06:73:60:6A:E3,s), master_id=BLEGapMasterId(e: 0, r: b'0000000000000000'), enc=1, id=0, sign=0)
[2023-11-13 18:57:57,502] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_sec_info_reply(1, Encrypt(ltk: b'154fbf2923e23baf68bb630da29f4f25', lesc: 1, auth: 0), irk: b3ca68cc2abde80368d0f81973a7b080, peer: F2:06:73:60:6A:E3,s, None)
[2023-11-13 18:57:58,000] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=0, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 18:57:58,001] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=1, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 18:57:58,502] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_disconnect(0, <BLEHci.remote_user_terminated_connection: 19>)
[2023-11-13 18:57:58,700] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=0, reason=<BLEHci.local_host_terminated_connection: 22>)
[2023-11-13 18:57:58,701] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=1, reason=<BLEHci.remote_user_terminated_connection: 19>)
ok
[2023-11-13 18:57:59,935] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] close()
[2023-11-13 18:58:00,038] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] close()

======================================================================
ERROR: test_long_reads_writes (integrated.test_gatt.TestGatt)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mdxs/dev/gh/blatann/tests/integrated/test_gatt.py", line 264, in test_long_reads_writes
    self.periph_conn.large_char.set_value(value)
  File "/home/mdxs/dev/gh/blatann/blatann/gatt/gatts.py", line 168, in set_value
    self._value_attr.set_value(value)
  File "/home/mdxs/dev/gh/blatann/blatann/gatt/gatts_attribute.py", line 114, in set_value
    self._ble_device.ble_driver.ble_gatts_value_set(self._peer.conn_handle, self._handle, v)
  File "/home/mdxs/dev/gh/blatann/blatann/nrf/nrf_driver.py", line 80, in wrapper
    raise NordicSemiException('Failed to {}. {}'.format(wrapped.__name__, err_string), err_code)
pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_gatts_value_set. Error code: NrfError.rpc_no_response

----------------------------------------------------------------------
Ran 37 tests in 810.756s

FAILED (errors=1)
make: *** [Makefile:48: run-tests] Error 1

Right now, I don't know what caused this particular error. Perhaps it is a callback with something after the devices have been closed. But I honestly didn't look into this too much at this point...

So this PR is improving the ability to test Blatann when using the nRF52840-Dongle (one or more), but it is clearly incomplete and thus I marked it [Experimental]. I've also added PySerial to the requirements and updated the pc-ble-driver-py requirement to use the latest v0.17 to make it explicit under which conditions I've started the tests.

@mdxs mdxs changed the title Improved integrated tests with nRF52840-Dongles [Experimental] Improved integrated tests with nRF52840-Dongles Nov 13, 2023
@mdxs
Copy link
Copy Markdown
Contributor Author

mdxs commented Nov 13, 2023

When testing with just two nRF52840-Dongle (PCA10056) devices, it appears that I get all tests completed (with the PR applied):

# tests results with 2x PCA10056 with this PR applied to the code base
# NOTE: just 2 devices, not 3
$ export BLATANN_DEV_1=/dev/ttyACM0
$ export BLATANN_DEV_2=/dev/ttyACM1

# snipped some of the results ...

test_pairing_peripheral_private_resolvable_address (integrated.test_security.TestSecurity) ... [2023-11-13 23:56:56,553] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 23:56:56,553] [MainThread] [blatann.device.clear_bonding_data:220] [INFO]: Clearing out all bonding information
[2023-11-13 23:56:56,553] [MainThread] [blatann.gap.advertising._start:210] [INFO]: Starting advertising, params: 'BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 0s, ch mask: 000), auto-restart: False
[2023-11-13 23:56:56,553] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_adv_start('BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 0s, ch mask: 000), 1)
[2023-11-13 23:56:57,056] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_addr_get()
[2023-11-13 23:56:57,058] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_connect(BLEGapAddr(F2:06:73:60:6A:E3,s),)
[2023-11-13 23:56:57,097] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=0, peer_addr=BLEGapAddr(F2:06:73:60:6A:E3,s), role=<BLEGapRoles.central: 2>, conn_params=BLEGapConnParams(interval: [100.0-100.0] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 23:56:57,097] [/dev/ttyACM1_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_addr_get()
[2023-11-13 23:56:57,097] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=1, peer_addr=BLEGapAddr(DA:A4:43:6F:89:6D,s), role=<BLEGapRoles.periph: 1>, conn_params=BLEGapConnParams(interval: [100.0-100.0] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 23:56:57,098] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_addr_get()
[2023-11-13 23:56:57,100] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_privacy_set(BLEGapPrivacyParams(enabled=True, resolvable_addr=True, addr_update_rate_s=900),)
[2023-11-13 23:56:57,102] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_authenticate(0, BLEGapSecParams(bond=True, mitm=False, lesc=True, keypress_noti=False, io_caps=<BLEGapIoCaps.NONE: 3>, oob=False, min_key_size=7, max_key_size=16, kdist_own=BLEGapSecKeyDist(enc_key=True, id_key=True, sign_key=False, link_key=False), kdist_peer=BLEGapSecKeyDist(enc_key=True, id_key=True, sign_key=False, link_key=False)))
[2023-11-13 23:56:57,198] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtSecParamsRequest(conn_handle=1, sec_params=BLEGapSecParams(bond=1, mitm=0, lesc=1, keypress_noti=0, io_caps=3, oob=0, min_key_size=0, max_key_size=16, kdist_own=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0), kdist_peer=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0)))
[2023-11-13 23:56:57,198] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_sec_params_reply(1, <BLEGapSecStatus.success: 0>, BLEGapSecParams(bond=True, mitm=False, lesc=True, keypress_noti=False, io_caps=<BLEGapIoCaps.NONE: 3>, oob=False, min_key_size=7, max_key_size=16, kdist_own=BLEGapSecKeyDist(enc_key=True, id_key=True, sign_key=False, link_key=False), kdist_peer=BLEGapSecKeyDist(enc_key=True, id_key=True, sign_key=False, link_key=False)), BLEGapSecKeyset(own: BLEGapSecKeys(enc: key: , master_id: BLEGapMasterId(e: 0, r: b''), id: , sign: , pk: 2dc17a79ac822936d6e47bc8bf73b84a30d7763f6c21f18c18f1075897b671fe6e6221566c06e5925cf7f9175b3869f35e5211b06761ef38524ebeb7edb8db44), peer: BLEGapSecKeys(enc: key: , master_id: BLEGapMasterId(e: 0, r: b''), id: , sign: , pk: )))
[2023-11-13 23:56:57,298] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtSecParamsRequest(conn_handle=0, sec_params=BLEGapSecParams(bond=1, mitm=0, lesc=1, keypress_noti=0, io_caps=3, oob=0, min_key_size=0, max_key_size=16, kdist_own=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0), kdist_peer=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0)))
[2023-11-13 23:56:57,298] [/dev/ttyACM1_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_sec_params_reply(0, <BLEGapSecStatus.success: 0>, None, BLEGapSecKeyset(own: BLEGapSecKeys(enc: key: , master_id: BLEGapMasterId(e: 0, r: b''), id: , sign: , pk: 8b065770e3786867d66933c448425802ab6727a615423cc043cf135fd009c2fad19a5ed57c3fdbf57626932b2f549730fff4ed7e6040f0758bea4e4ec473231f), peer: BLEGapSecKeys(enc: key: , master_id: BLEGapMasterId(e: 0, r: b''), id: , sign: , pk: )))
[2023-11-13 23:56:57,400] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtLescDhKeyRequest(conn_handle=1, remote_key=8b065770e3786867d66933c448425802ab6727a615423cc043cf135fd009c2fad19a5ed57c3fdbf57626932b2f549730fff4ed7e6040f0758bea4e4ec473231f, oob=False)
[2023-11-13 23:56:57,400] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_lesc_dhkey_reply(1, 9fe757136683435a1238f642560e9e1408bec10eed8fabf06a7b9cd4e11dbe1f)
[2023-11-13 23:56:57,501] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtLescDhKeyRequest(conn_handle=0, remote_key=2dc17a79ac822936d6e47bc8bf73b84a30d7763f6c21f18c18f1075897b671fe6e6221566c06e5925cf7f9175b3869f35e5211b06761ef38524ebeb7edb8db44, oob=False)
[2023-11-13 23:56:57,502] [/dev/ttyACM1_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_lesc_dhkey_reply(0, 9fe757136683435a1238f642560e9e1408bec10eed8fabf06a7b9cd4e11dbe1f)
[2023-11-13 23:56:58,598] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=1, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 23:56:58,598] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=0, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 23:56:58,903] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtAuthStatus(conn_handle=0, auth_status=<BLEGapSecStatus.success: 0>, error_src=0, bonded=1, sm1_levels=BLEGapSecLevels(lv1=1, lv2=1, lv3=0, lv4=0), sm2_levels=BLEGapSecLevels(lv1=0, lv2=0, lv3=0, lv4=0), kdist_own=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0), kdist_peer=BLEGapSecKeyDist(enc_key=0, id_key=1, sign_key=0, link_key=0))
[2023-11-13 23:56:58,903] [/dev/ttyACM1_Event] [blatann.gap.smp._on_authentication_status:526] [INFO]: New bonded device, creating a DB Entry
[2023-11-13 23:56:58,904] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtAuthStatus(conn_handle=1, auth_status=<BLEGapSecStatus.success: 0>, error_src=0, bonded=1, sm1_levels=BLEGapSecLevels(lv1=1, lv2=1, lv3=0, lv4=0), sm2_levels=BLEGapSecLevels(lv1=0, lv2=0, lv3=0, lv4=0), kdist_own=BLEGapSecKeyDist(enc_key=1, id_key=1, sign_key=0, link_key=0), kdist_peer=BLEGapSecKeyDist(enc_key=0, id_key=1, sign_key=0, link_key=0))
[2023-11-13 23:56:58,904] [/dev/ttyACM0_Event] [blatann.gap.smp._on_authentication_status:526] [INFO]: New bonded device, creating a DB Entry
[2023-11-13 23:56:59,905] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_disconnect(0, <BLEHci.remote_user_terminated_connection: 19>)
[2023-11-13 23:57:00,098] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=0, reason=<BLEHci.local_host_terminated_connection: 22>)
[2023-11-13 23:57:00,098] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=1, reason=<BLEHci.remote_user_terminated_connection: 19>)
[2023-11-13 23:57:00,600] [MainThread] [blatann.gap.advertising._start:210] [INFO]: Starting advertising, params: 'BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 0s, ch mask: 000), auto-restart: False
[2023-11-13 23:57:00,600] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_adv_start('BLEGapAdvParams'(type: <BLEGapAdvType.connectable_undirected: 0>, interval: 100ms, timeout: 0s, ch mask: 000), 1)
[2023-11-13 23:57:00,602] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_scan_stop()
[2023-11-13 23:57:00,605] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_addr_get()
[2023-11-13 23:57:00,606] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_scan_start(ScanParameters(window: 75ms, interval: 125ms, timeout: 10s, active: False),)
[2023-11-13 23:57:00,616] [/dev/ttyACM1_Event] [blatann.gap.bond_db.peer_address_matches_or_resolves:102] [DEBUG]: Resolved Peer address to F2:06:73:60:6A:E3,s
[2023-11-13 23:57:00,617] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_connect(BLEGapAddr(5D:80:E0:A2:99:06,r),)
[2023-11-13 23:57:00,716] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=1, peer_addr=BLEGapAddr(DA:A4:43:6F:89:6D,s), role=<BLEGapRoles.periph: 1>, conn_params=BLEGapConnParams(interval: [100.0-100.0] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 23:57:00,717] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_addr_get()
[2023-11-13 23:57:00,717] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnected(conn_handle=0, peer_addr=BLEGapAddr(5D:80:E0:A2:99:06,r), role=<BLEGapRoles.central: 2>, conn_params=BLEGapConnParams(interval: [100.0-100.0] ms, timeout: 4000.0 ms, latency: 0))
[2023-11-13 23:57:00,717] [/dev/ttyACM1_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_addr_get()
[2023-11-13 23:57:00,719] [/dev/ttyACM0_Event] [blatann.gap.smp._on_peer_connected:373] [INFO]: Connected to previously bonded device DA:A4:43:6F:89:6D,s
[2023-11-13 23:57:00,720] [/dev/ttyACM1_Event] [blatann.gap.bond_db.peer_address_matches_or_resolves:102] [DEBUG]: Resolved Peer address to F2:06:73:60:6A:E3,s
[2023-11-13 23:57:00,720] [/dev/ttyACM1_Event] [blatann.gap.smp._on_peer_connected:373] [INFO]: Connected to previously bonded device F2:06:73:60:6A:E3,s
[2023-11-13 23:57:00,721] [MainThread] [blatann.gap.bond_db.peer_address_matches_or_resolves:102] [DEBUG]: Resolved Peer address to F2:06:73:60:6A:E3,s
[2023-11-13 23:57:00,721] [MainThread] [blatann.gap.smp.pair:300] [INFO]: Re-establishing encryption with peer using LTKs
[2023-11-13 23:57:00,721] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_encrypt(0, BLEGapMasterId(e: 0, r: b'0000000000000000'), Encrypt(ltk: b'797773dee8a8b45d68df5c61035bfa55', lesc: 1, auth: 0))
[2023-11-13 23:57:00,918] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtSecInfoRequest(conn_handle=1, peer_addr=BLEGapAddr(DA:A4:43:6F:89:6D,s), master_id=BLEGapMasterId(e: 0, r: b'0000000000000000'), enc=1, id=0, sign=0)
[2023-11-13 23:57:00,918] [/dev/ttyACM0_Event] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] ble_gap_sec_info_reply(1, Encrypt(ltk: b'797773dee8a8b45d68df5c61035bfa55', lesc: 1, auth: 0), irk: 3d46de1a8667ed472cc87223fe049a5a, peer: DA:A4:43:6F:89:6D,s, None)
[2023-11-13 23:57:01,417] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=1, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 23:57:01,417] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtConnSecUpdate(conn_handle=0, sec_mode=1, sec_level=2, encr_key_size=16)
[2023-11-13 23:57:01,919] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] ble_gap_disconnect(0, <BLEHci.remote_user_terminated_connection: 19>)
[2023-11-13 23:57:02,117] [/dev/ttyACM1_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=0, reason=<BLEHci.local_host_terminated_connection: 22>)
[2023-11-13 23:57:02,118] [/dev/ttyACM0_Event] [blatann.device.on_driver_event:35] [DEBUG]: Got NRF Driver event: GapEvtDisconnected(conn_handle=1, reason=<BLEHci.remote_user_terminated_connection: 19>)
ok
[2023-11-13 23:57:03,121] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM0] close()
[2023-11-13 23:57:03,225] [MainThread] [blatann.nrf.nrf_driver.wrapper:64] [DEBUG]: [/dev/ttyACM1] close()

----------------------------------------------------------------------
Ran 37 tests in 787.157s

OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant