/* * Copyright (c) 2022 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #include "bs_bt_utils.h" #include #include #include #include #include #include void dut_procedure(void) { bs_bt_utils_setup(); printk("DUT start\n"); /* start scanning (using NRPA) */ scan_connect_to_first_result(); advertise_connectable(0, 0); wait_connected(); printk("DUT is peripheral\n"); /* tester advertises using a new identity * -> will get detected and connected to by DUT */ wait_connected(); printk("DUT is central & peripheral\n"); /* restart advertiser: it will fail because we have run out of contexts. * But since we pass the `persist` flag, it will start up as soon as a * peripheral role is disconnected. * * We can't start it with the `persist` flag the first time, because adv * will resume straight after the peripheral's connection completes, * 'stealing' the last conn context and preventing the scanner from * establishing a connection. */ advertise_connectable(0, 1); wait_disconnected(); printk("DUT is central\n"); scan_connect_to_first_result(); wait_disconnected(); printk("DUT has no connections\n"); PASS("PASS\n"); } void dut_procedure_2(void) { bs_bt_utils_setup(); printk("DUT start\n"); /* Start a resumable advertiser. */ advertise_connectable(0, true); PASS("DUT done\n"); }