/* * Copyright (c) 2023 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include "common.h" extern enum bst_result_t bst_result; struct bt_conn *default_conn; atomic_t flag_connected; atomic_t flag_conn_updated; static void connected(struct bt_conn *conn, uint8_t err) { char addr[BT_ADDR_LE_STR_LEN]; (void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); if (default_conn == NULL) { default_conn = bt_conn_ref(conn); } if (err != 0) { bt_conn_unref(default_conn); default_conn = NULL; FAIL("Failed to connect to %s (0x%02x)\n", addr, err); return; } printk("Connected to %s\n", addr); SET_FLAG(flag_connected); } static void disconnected(struct bt_conn *conn, uint8_t reason) { char addr[BT_ADDR_LE_STR_LEN]; if (conn != default_conn) { return; } bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); printk("Disconnected: %s (reason 0x%02x)\n", addr, reason); bt_conn_unref(default_conn); default_conn = NULL; UNSET_FLAG(flag_connected); UNSET_FLAG(flag_conn_updated); } static void conn_param_updated_cb(struct bt_conn *conn, uint16_t interval, uint16_t latency, uint16_t timeout) { printk("Connection parameter updated: %p 0x%04X (%u us), 0x%04X, 0x%04X\n", conn, interval, BT_CONN_INTERVAL_TO_US(interval), latency, timeout); SET_FLAG(flag_conn_updated); } BT_CONN_CB_DEFINE(conn_callbacks) = { .connected = connected, .disconnected = disconnected, .le_param_updated = conn_param_updated_cb, }; void test_init(void) { bst_result = In_progress; bst_ticker_set_next_tick_absolute(WAIT_TIME); } void test_tick(bs_time_t HW_device_time) { if (bst_result != Passed) { FAIL("Test failed (not passed after %i us)\n", WAIT_TIME); } }