diff --git a/tests/multi_bluetooth/ble_gap_advertise.py b/tests/multi_bluetooth/ble_gap_advertise.py index 67c8bf4593..e2209cfae9 100644 --- a/tests/multi_bluetooth/ble_gap_advertise.py +++ b/tests/multi_bluetooth/ble_gap_advertise.py @@ -6,20 +6,22 @@ import time, machine, bluetooth _IRQ_SCAN_RESULT = const(5) _IRQ_SCAN_DONE = const(6) -ADV_TIME_S = 3 +ADV_TIME_MS = 3000 def instance0(): multitest.globals(BDADDR=ble.config("mac")) multitest.next() + adv_data = b"\x02\x01\x06\x04\xffMPY" + print("gap_advertise(100_000, connectable=False)") - ble.gap_advertise(100_000, b"\x02\x01\x06\x04\xffMPY", connectable=False) - time.sleep(ADV_TIME_S) + ble.gap_advertise(100_000, adv_data, connectable=False) + time.sleep_ms(ADV_TIME_MS) print("gap_advertise(20_000, connectable=True)") - ble.gap_advertise(20_000, b"\x02\x01\x06\x04\xffMPY", connectable=True) - time.sleep(ADV_TIME_S) + ble.gap_advertise(20_000, adv_data, connectable=True) + time.sleep_ms(ADV_TIME_MS) print("gap_advertise(None)") ble.gap_advertise(None) @@ -30,19 +32,20 @@ def instance0(): def instance1(): multitest.next() finished = False - adv_types = {} - adv_data = None + matched_adv_types = {} + matched_adv_data = None def irq(ev, data): - nonlocal finished, adv_types, adv_data + nonlocal finished, matched_adv_types, matched_adv_data if ev == _IRQ_SCAN_RESULT: - if data[0] == BDADDR[0] and data[1] == BDADDR[1]: - adv_types[data[2]] = True - if adv_data is None: - adv_data = bytes(data[4]) + addr_type, addr, adv_type, rssi, adv_data = data + if addr_type == BDADDR[0] and addr == BDADDR[1]: + matched_adv_types[adv_type] = True + if matched_adv_data is None: + matched_adv_data = bytes(adv_data) else: - if adv_data != data[4]: - adv_data = b"MISMATCH" + if adv_data != matched_adv_data: + matched_adv_data = b"MISMATCH" elif ev == _IRQ_SCAN_DONE: finished = True @@ -51,12 +54,12 @@ def instance1(): except: pass ble.irq(irq) - ble.gap_scan(2 * ADV_TIME_S * 1000, 10000, 10000) + ble.gap_scan(2 * ADV_TIME_MS, 30000, 30000) while not finished: machine.idle() ble.active(0) - print("adv_types:", sorted(adv_types)) - print("adv_data:", adv_data) + print("adv_types:", sorted(matched_adv_types)) + print("adv_data:", matched_adv_data) ble = bluetooth.BLE()