/*
 * Copyright (c) 2022 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/** Keys "test" IDs associated with a BT address */
#define BT_ADDR_ID_1 (0x55)
#define BT_ADDR_ID_2 (0xAA)
#define BT_ADDR_ID_3 (0xA5)
#define BT_ADDR_ID_4 (0x5A)
#define BT_ADDR_ID_5 (0xAC)

/** Bluetooth LE device "test" addresses */
#define BT_ADDR_LE_1 ((bt_addr_le_t[]) { { 0, { { 0x0A, 0x89, 0x67, 0x45, 0x23, 0x01 } } } })
#define BT_ADDR_LE_2 ((bt_addr_le_t[]) { { 0, { { 0x0B, 0x89, 0x67, 0x45, 0x23, 0x01 } } } })
#define BT_ADDR_LE_3 ((bt_addr_le_t[]) { { 0, { { 0x0C, 0x89, 0x67, 0x45, 0x23, 0x01 } } } })
#define BT_ADDR_LE_4 ((bt_addr_le_t[]) { { 0, { { 0x0D, 0x89, 0x67, 0x45, 0x23, 0x01 } } } })
#define BT_ADDR_LE_5 ((bt_addr_le_t[]) { { 0, { { 0x0E, 0x89, 0x67, 0x45, 0x23, 0x01 } } } })
