void ble_hs_test_util_rx_und_adv_acks_count(int start, int count) { int end; int i; i = 0; end = start + count; if (i >= start && i < end) { /* Receive set-adv-params ack. */ ble_hci_sched_wakeup(); ble_hs_test_util_rx_le_ack(BLE_HCI_OCF_LE_SET_ADV_PARAMS, BLE_ERR_SUCCESS); TEST_ASSERT(ble_gap_slave_in_progress()); } i++; if (i >= start && i < end) { /* Receive read-power-level ack. */ ble_hci_sched_wakeup(); ble_hs_test_util_rx_le_ack_param(BLE_HCI_OCF_LE_RD_ADV_CHAN_TXPWR, BLE_ERR_SUCCESS, (uint8_t[]){0}, 1); TEST_ASSERT(ble_gap_slave_in_progress()); }
struct ble_hs_conn * ble_hs_test_util_create_conn(uint16_t handle, uint8_t *addr, ble_gap_conn_fn *cb, void *cb_arg) { struct hci_le_conn_complete evt; struct ble_hs_conn *conn; int rc; rc = ble_gap_conn_initiate(0, addr, NULL, cb, cb_arg); TEST_ASSERT(rc == 0); ble_hci_sched_wakeup(); ble_hs_test_util_rx_le_ack(BLE_HCI_OCF_LE_CREATE_CONN, BLE_ERR_SUCCESS); memset(&evt, 0, sizeof evt); evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE; evt.status = BLE_ERR_SUCCESS; evt.connection_handle = handle; evt.role = BLE_HCI_LE_CONN_COMPLETE_ROLE_MASTER; evt.peer_addr_type = BLE_ADDR_TYPE_PUBLIC; memcpy(evt.peer_addr, addr, 6); evt.conn_itvl = BLE_GAP_INITIAL_CONN_ITVL_MAX; evt.conn_latency = BLE_GAP_INITIAL_CONN_LATENCY; evt.supervision_timeout = BLE_GAP_INITIAL_SUPERVISION_TIMEOUT; rc = ble_gap_rx_conn_complete(&evt); TEST_ASSERT(rc == 0); conn = ble_hs_conn_find(handle); TEST_ASSERT_FATAL(conn != NULL); return conn; }
void ble_hs_test_util_rx_und_adv_acks_count(int count) { if (count > 0) { /* Receive set-adv-params ack. */ ble_hci_sched_wakeup(); ble_hs_test_util_rx_le_ack(BLE_HCI_OCF_LE_SET_ADV_PARAMS, BLE_ERR_SUCCESS); TEST_ASSERT(ble_gap_slave_in_progress()); count--; } if (count > 0) { /* Receive read-power-level ack. */ ble_hci_sched_wakeup(); ble_hs_test_util_rx_le_ack_param(BLE_HCI_OCF_LE_RD_ADV_CHAN_TXPWR, BLE_ERR_SUCCESS, (uint8_t[]){0}, 1); TEST_ASSERT(ble_gap_slave_in_progress()); count--; }