nimble/adv: Use ble_uuid types in ble_hs_adv_fields
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/ef6808ab Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/ef6808ab Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/ef6808ab Branch: refs/heads/develop Commit: ef6808ab5ed765ff2e3f35d5a60901c81a03fe42 Parents: 1fe117a Author: Andrzej Kaczmarek <[email protected]> Authored: Fri Jan 27 13:26:11 2017 +0100 Committer: Andrzej Kaczmarek <[email protected]> Committed: Fri Jan 27 16:51:45 2017 +0100 ---------------------------------------------------------------------- apps/blecent/src/main.c | 2 +- apps/blecent/src/misc.c | 12 +-- apps/bleprph/src/main.c | 4 +- apps/bleprph_oic/src/main.c | 5 +- apps/bletiny/src/cmd.c | 13 +-- apps/bletiny/src/main.c | 12 +-- apps/bleuart/src/main.c | 2 +- net/nimble/host/include/host/ble_hs_adv.h | 7 +- net/nimble/host/src/ble_eddystone.c | 6 +- net/nimble/host/src/ble_hs_adv.c | 129 +++++++++++++++++++----- net/nimble/host/test/src/ble_hs_adv_test.c | 66 ++++++++---- 11 files changed, 181 insertions(+), 77 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/blecent/src/main.c ---------------------------------------------------------------------- diff --git a/apps/blecent/src/main.c b/apps/blecent/src/main.c index 64279a9..28fadf8 100755 --- a/apps/blecent/src/main.c +++ b/apps/blecent/src/main.c @@ -279,7 +279,7 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) * service (0x1811). */ for (i = 0; i < fields.num_uuids16; i++) { - if (fields.uuids16[i] == BLECENT_SVC_ALERT_UUID) { + if (ble_uuid_u16(&fields.uuids16[i].u) == BLECENT_SVC_ALERT_UUID) { return 1; } } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/blecent/src/misc.c ---------------------------------------------------------------------- diff --git a/apps/blecent/src/misc.c b/apps/blecent/src/misc.c index a51377d..11360e5 100644 --- a/apps/blecent/src/misc.c +++ b/apps/blecent/src/misc.c @@ -105,7 +105,6 @@ print_adv_fields(const struct ble_hs_adv_fields *fields) { char s[BLE_HS_ADV_MAX_SZ]; const uint8_t *u8p; - ble_uuid_any_t uuid; int i; if (fields->flags != 0) { @@ -116,7 +115,8 @@ print_adv_fields(const struct ble_hs_adv_fields *fields) BLECENT_LOG(DEBUG, " uuids16(%scomplete)=", fields->uuids16_is_complete ? "" : "in"); for (i = 0; i < fields->num_uuids16; i++) { - BLECENT_LOG(DEBUG, "0x%04x ", fields->uuids16[i]); + print_uuid(&fields->uuids16[i].u); + BLECENT_LOG(DEBUG, " "); } BLECENT_LOG(DEBUG, "\n"); } @@ -125,7 +125,8 @@ print_adv_fields(const struct ble_hs_adv_fields *fields) BLECENT_LOG(DEBUG, " uuids32(%scomplete)=", fields->uuids32_is_complete ? "" : "in"); for (i = 0; i < fields->num_uuids32; i++) { - BLECENT_LOG(DEBUG, "0x%08x ", fields->uuids32[i]); + print_uuid(&fields->uuids32[i].u); + BLECENT_LOG(DEBUG, " "); } BLECENT_LOG(DEBUG, "\n"); } @@ -133,12 +134,9 @@ print_adv_fields(const struct ble_hs_adv_fields *fields) if (fields->uuids128 != NULL) { BLECENT_LOG(DEBUG, " uuids128(%scomplete)=", fields->uuids128_is_complete ? "" : "in"); - u8p = fields->uuids128; for (i = 0; i < fields->num_uuids128; i++) { - ble_uuid_init_from_buf(&uuid, u8p, 16); - print_uuid(&uuid.u); + print_uuid(&fields->uuids128[i].u); BLECENT_LOG(DEBUG, " "); - u8p += 16; } BLECENT_LOG(DEBUG, "\n"); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/bleprph/src/main.c ---------------------------------------------------------------------- diff --git a/apps/bleprph/src/main.c b/apps/bleprph/src/main.c index 962a345..62da56a 100755 --- a/apps/bleprph/src/main.c +++ b/apps/bleprph/src/main.c @@ -113,7 +113,9 @@ bleprph_advertise(void) fields.name_len = strlen(name); fields.name_is_complete = 1; - fields.uuids16 = (uint16_t[]){ GATT_SVR_SVC_ALERT_UUID }; + fields.uuids16 = (ble_uuid16_t[]){ + BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) + }; fields.num_uuids16 = 1; fields.uuids16_is_complete = 1; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/bleprph_oic/src/main.c ---------------------------------------------------------------------- diff --git a/apps/bleprph_oic/src/main.c b/apps/bleprph_oic/src/main.c index 513c875..e25f182 100755 --- a/apps/bleprph_oic/src/main.c +++ b/apps/bleprph_oic/src/main.c @@ -117,8 +117,9 @@ bleprph_advertise(void) fields.name_len = strlen(name); fields.name_is_complete = 1; - fields.uuids128 = - BLE_UUID128(BLE_UUID128_DECLARE(OC_GATT_SERVICE_UUID))->value; + fields.uuids128 = (ble_uuid128_t []) { + BLE_UUID128_INIT(OC_GATT_SERVICE_UUID) + }; fields.num_uuids128 = 1; fields.uuids128_is_complete = 1; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/bletiny/src/cmd.c ---------------------------------------------------------------------- diff --git a/apps/bletiny/src/cmd.c b/apps/bletiny/src/cmd.c index e03872a..3019bb3 100644 --- a/apps/bletiny/src/cmd.c +++ b/apps/bletiny/src/cmd.c @@ -1883,9 +1883,9 @@ bletiny_set_adv_data_help(void) static int cmd_set_adv_data(void) { - static bssnz_t uint16_t uuids16[CMD_ADV_DATA_MAX_UUIDS16]; - static bssnz_t uint32_t uuids32[CMD_ADV_DATA_MAX_UUIDS32]; - static bssnz_t uint8_t uuids128[CMD_ADV_DATA_MAX_UUIDS128][16]; + static bssnz_t ble_uuid16_t uuids16[CMD_ADV_DATA_MAX_UUIDS16]; + static bssnz_t ble_uuid32_t uuids32[CMD_ADV_DATA_MAX_UUIDS32]; + static bssnz_t ble_uuid128_t uuids128[CMD_ADV_DATA_MAX_UUIDS128]; static bssnz_t uint8_t public_tgt_addrs[CMD_ADV_DATA_MAX_PUBLIC_TGT_ADDRS] [BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN]; @@ -1935,7 +1935,7 @@ cmd_set_adv_data(void) help_cmd_uint16("uuid16"); return EINVAL; } - uuids16[adv_fields.num_uuids16] = uuid16; + uuids16[adv_fields.num_uuids16] = (ble_uuid16_t) BLE_UUID16_INIT(uuid16); adv_fields.num_uuids16++; } else if (rc == ENOENT) { break; @@ -1966,7 +1966,7 @@ cmd_set_adv_data(void) help_cmd_uint32("uuid32"); return EINVAL; } - uuids32[adv_fields.num_uuids32] = uuid32; + uuids32[adv_fields.num_uuids32] = (ble_uuid32_t) BLE_UUID32_INIT(uuid32); adv_fields.num_uuids32++; } else if (rc == ENOENT) { break; @@ -1997,7 +1997,8 @@ cmd_set_adv_data(void) help_cmd_byte_stream_exact_length("uuid128", 16); return EINVAL; } - memcpy(uuids128[adv_fields.num_uuids128], uuid128, 16); + ble_uuid_init_from_buf((ble_uuid_any_t *) &uuids128[adv_fields.num_uuids128], + uuid128, 16); adv_fields.num_uuids128++; } else if (rc == ENOENT) { break; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/bletiny/src/main.c ---------------------------------------------------------------------- diff --git a/apps/bletiny/src/main.c b/apps/bletiny/src/main.c index 63b0535..5f76bcf 100755 --- a/apps/bletiny/src/main.c +++ b/apps/bletiny/src/main.c @@ -124,7 +124,6 @@ static void bletiny_print_adv_fields(const struct ble_hs_adv_fields *fields) { uint8_t *u8p; - ble_uuid_any_t uuid; int i; if (fields->flags != 0) { @@ -152,7 +151,8 @@ bletiny_print_adv_fields(const struct ble_hs_adv_fields *fields) console_printf(" uuids16(%scomplete)=", fields->uuids16_is_complete ? "" : "in"); for (i = 0; i < fields->num_uuids16; i++) { - console_printf("0x%04x ", fields->uuids16[i]); + print_uuid(&fields->uuids16[i].u); + console_printf(" "); } console_printf("\n"); } @@ -161,7 +161,8 @@ bletiny_print_adv_fields(const struct ble_hs_adv_fields *fields) console_printf(" uuids32(%scomplete)=", fields->uuids32_is_complete ? "" : "in"); for (i = 0; i < fields->num_uuids32; i++) { - console_printf("0x%08x ", (unsigned int)fields->uuids32[i]); + print_uuid(&fields->uuids32[i].u); + console_printf(" "); } console_printf("\n"); } @@ -169,12 +170,9 @@ bletiny_print_adv_fields(const struct ble_hs_adv_fields *fields) if (fields->uuids128 != NULL) { console_printf(" uuids128(%scomplete)=", fields->uuids128_is_complete ? "" : "in"); - u8p = fields->uuids128; for (i = 0; i < fields->num_uuids128; i++) { - ble_uuid_init_from_buf(&uuid, u8p, 16); - print_uuid(&uuid.u); + print_uuid(&fields->uuids128[i].u); console_printf(" "); - u8p += 16; } console_printf("\n"); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/apps/bleuart/src/main.c ---------------------------------------------------------------------- diff --git a/apps/bleuart/src/main.c b/apps/bleuart/src/main.c index 270bb70..1a9e4dc 100755 --- a/apps/bleuart/src/main.c +++ b/apps/bleuart/src/main.c @@ -89,7 +89,7 @@ bleuart_advertise(void) fields.tx_pwr_lvl_is_present = 1; fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; - fields.uuids128 = BLE_UUID128(&gatt_svr_svc_uart_uuid.u)->value; + fields.uuids128 = BLE_UUID128(&gatt_svr_svc_uart_uuid.u); fields.num_uuids128 = 1; fields.uuids128_is_complete = 1; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/net/nimble/host/include/host/ble_hs_adv.h ---------------------------------------------------------------------- diff --git a/net/nimble/host/include/host/ble_hs_adv.h b/net/nimble/host/include/host/ble_hs_adv.h index 538fc7d..23c2155 100644 --- a/net/nimble/host/include/host/ble_hs_adv.h +++ b/net/nimble/host/include/host/ble_hs_adv.h @@ -21,6 +21,7 @@ #define H_BLE_HS_ADV_ #include <inttypes.h> +#include "host/ble_uuid.h" #ifdef __cplusplus extern "C" { @@ -45,17 +46,17 @@ struct ble_hs_adv_fields { uint8_t flags; /*** 0x02,0x03 - 16-bit service class UUIDs. */ - uint16_t *uuids16; + ble_uuid16_t *uuids16; uint8_t num_uuids16; unsigned uuids16_is_complete:1; /*** 0x04,0x05 - 32-bit service class UUIDs. */ - uint32_t *uuids32; + ble_uuid32_t *uuids32; uint8_t num_uuids32; unsigned uuids32_is_complete:1; /*** 0x06,0x07 - 128-bit service class UUIDs. */ - void *uuids128; + ble_uuid128_t *uuids128; uint8_t num_uuids128; unsigned uuids128_is_complete:1; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/net/nimble/host/src/ble_eddystone.c ---------------------------------------------------------------------- diff --git a/net/nimble/host/src/ble_eddystone.c b/net/nimble/host/src/ble_eddystone.c index e1d8ec8..fa4a783 100644 --- a/net/nimble/host/src/ble_eddystone.c +++ b/net/nimble/host/src/ble_eddystone.c @@ -30,7 +30,7 @@ #define BLE_EDDYSTONE_FRAME_TYPE_UID 0x00 #define BLE_EDDYSTONE_FRAME_TYPE_URL 0x10 -static uint16_t ble_eddystone_uuids16[BLE_EDDYSTONE_MAX_UUIDS16 + 1]; +static ble_uuid16_t ble_eddystone_uuids16[BLE_EDDYSTONE_MAX_UUIDS16 + 1]; static uint8_t ble_eddystone_svc_data[BLE_EDDYSTONE_MAX_SVC_DATA_LEN]; /** @@ -85,9 +85,9 @@ ble_eddystone_set_adv_data_gen(struct ble_hs_adv_fields *adv_fields, return BLE_HS_EINVAL; } - ble_eddystone_uuids16[0] = BLE_EDDYSTONE_SERVICE_UUID; + ble_eddystone_uuids16[0] = (ble_uuid16_t) BLE_UUID16_INIT(BLE_EDDYSTONE_SERVICE_UUID); memcpy(ble_eddystone_uuids16 + 1, adv_fields->uuids16, - adv_fields->num_uuids16 * 2); + adv_fields->num_uuids16 * sizeof(ble_uuid16_t)); adv_fields->uuids16 = ble_eddystone_uuids16; adv_fields->num_uuids16++; adv_fields->uuids16_is_complete = 1; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/net/nimble/host/src/ble_hs_adv.c ---------------------------------------------------------------------- diff --git a/net/nimble/host/src/ble_hs_adv.c b/net/nimble/host/src/ble_hs_adv.c index 37236c8..01ea981 100644 --- a/net/nimble/host/src/ble_hs_adv.c +++ b/net/nimble/host/src/ble_hs_adv.c @@ -28,8 +28,9 @@ struct find_field_data { const struct ble_hs_adv_field *field; }; -static uint16_t ble_hs_adv_uuids16[BLE_HS_ADV_MAX_FIELD_SZ / 2]; -static uint32_t ble_hs_adv_uuids32[BLE_HS_ADV_MAX_FIELD_SZ / 4]; +static ble_uuid16_t ble_hs_adv_uuids16[BLE_HS_ADV_MAX_FIELD_SZ / 2]; +static ble_uuid32_t ble_hs_adv_uuids32[BLE_HS_ADV_MAX_FIELD_SZ / 4]; +static ble_uuid128_t ble_hs_adv_uuids128[BLE_HS_ADV_MAX_FIELD_SZ / 16]; static int ble_hs_adv_set_hdr(uint8_t type, uint8_t data_len, uint8_t max_len, @@ -71,28 +72,77 @@ ble_hs_adv_set_flat(uint8_t type, int data_len, const void *data, } static int -ble_hs_adv_set_array16(uint8_t type, uint8_t num_elems, const uint16_t *elems, - uint8_t *dst, uint8_t *dst_len, uint8_t max_len) +ble_hs_adv_set_array_uuid16(uint8_t type, uint8_t num_elems, + const ble_uuid16_t *elems, uint8_t *dst, + uint8_t *dst_len, uint8_t max_len) { int rc; int i; - rc = ble_hs_adv_set_hdr(type, num_elems * sizeof *elems, max_len, dst, + rc = ble_hs_adv_set_hdr(type, num_elems * 2, max_len, dst, dst_len); if (rc != 0) { return rc; } for (i = 0; i < num_elems; i++) { - put_le16(dst + *dst_len, elems[i]); - *dst_len += sizeof elems[i]; + ble_uuid_flat(&elems[i].u, dst + *dst_len); + *dst_len += 2; } return 0; } static int -ble_hs_adv_set_array32(uint8_t type, uint8_t num_elems, const uint32_t *elems, +ble_hs_adv_set_array_uuid32(uint8_t type, uint8_t num_elems, + const ble_uuid32_t *elems, uint8_t *dst, + uint8_t *dst_len, uint8_t max_len) +{ + int rc; + int i; + + rc = ble_hs_adv_set_hdr(type, num_elems * 4, max_len, dst, + dst_len); + if (rc != 0) { + return rc; + } + + for (i = 0; i < num_elems; i++) { + /* We cannot use ble_uuid_flat here since it converts 32-bit UUIDs to + * 128-bit as ATT requires. In AD, 32-bit UUID shall be written as an + * actual 32-bit value. + */ + put_le32(dst + *dst_len, elems[i].value); + *dst_len += 4; + } + + return 0; +} + +static int +ble_hs_adv_set_array_uuid128(uint8_t type, uint8_t num_elems, + const ble_uuid128_t *elems, uint8_t *dst, + uint8_t *dst_len, uint8_t max_len) +{ + int rc; + int i; + + rc = ble_hs_adv_set_hdr(type, num_elems * 16, max_len, dst, + dst_len); + if (rc != 0) { + return rc; + } + + for (i = 0; i < num_elems; i++) { + ble_uuid_flat(&elems[i].u, dst + *dst_len); + *dst_len += 16; + } + + return 0; +} + +static int +ble_hs_adv_set_array16(uint8_t type, uint8_t num_elems, const uint16_t *elems, uint8_t *dst, uint8_t *dst_len, uint8_t max_len) { int rc; @@ -105,7 +155,7 @@ ble_hs_adv_set_array32(uint8_t type, uint8_t num_elems, const uint32_t *elems, } for (i = 0; i < num_elems; i++) { - put_le32(dst + *dst_len, elems[i]); + put_le16(dst + *dst_len, elems[i]); *dst_len += sizeof elems[i]; } @@ -152,9 +202,9 @@ ble_hs_adv_set_fields(const struct ble_hs_adv_fields *adv_fields, type = BLE_HS_ADV_TYPE_INCOMP_UUIDS16; } - rc = ble_hs_adv_set_array16(type, adv_fields->num_uuids16, - adv_fields->uuids16, dst, dst_len, - max_len); + rc = ble_hs_adv_set_array_uuid16(type, adv_fields->num_uuids16, + adv_fields->uuids16, dst, dst_len, + max_len); if (rc != 0) { return rc; } @@ -168,9 +218,9 @@ ble_hs_adv_set_fields(const struct ble_hs_adv_fields *adv_fields, type = BLE_HS_ADV_TYPE_INCOMP_UUIDS32; } - rc = ble_hs_adv_set_array32(type, adv_fields->num_uuids32, - adv_fields->uuids32, dst, dst_len, - max_len); + rc = ble_hs_adv_set_array_uuid32(type, adv_fields->num_uuids32, + adv_fields->uuids32, dst, dst_len, + max_len); if (rc != 0) { return rc; } @@ -184,8 +234,9 @@ ble_hs_adv_set_fields(const struct ble_hs_adv_fields *adv_fields, type = BLE_HS_ADV_TYPE_INCOMP_UUIDS128; } - rc = ble_hs_adv_set_flat(type, adv_fields->num_uuids128 * 16, - adv_fields->uuids128, dst, dst_len, max_len); + rc = ble_hs_adv_set_array_uuid128(type, adv_fields->num_uuids128, + adv_fields->uuids128, dst, dst_len, + max_len); if (rc != 0) { return rc; } @@ -332,6 +383,7 @@ static int ble_hs_adv_parse_uuids16(struct ble_hs_adv_fields *adv_fields, const uint8_t *data, uint8_t data_len) { + ble_uuid_any_t uuid; int i; if (data_len % 2 != 0) { @@ -342,7 +394,8 @@ ble_hs_adv_parse_uuids16(struct ble_hs_adv_fields *adv_fields, adv_fields->num_uuids16 = data_len / 2; for (i = 0; i < adv_fields->num_uuids16; i++) { - adv_fields->uuids16[i] = get_le16(data + i * 2); + ble_uuid_init_from_buf(&uuid, data + i * 2, 2); + adv_fields->uuids16[i] = uuid.u16; } return 0; @@ -352,6 +405,7 @@ static int ble_hs_adv_parse_uuids32(struct ble_hs_adv_fields *adv_fields, const uint8_t *data, uint8_t data_len) { + ble_uuid_any_t uuid; int i; if (data_len % 4 != 0) { @@ -362,7 +416,30 @@ ble_hs_adv_parse_uuids32(struct ble_hs_adv_fields *adv_fields, adv_fields->num_uuids32 = data_len / 4; for (i = 0; i < adv_fields->num_uuids32; i++) { - adv_fields->uuids32[i] = get_le32(data + i * 4); + ble_uuid_init_from_buf(&uuid, data + i * 4, 4); + adv_fields->uuids32[i] = uuid.u32; + } + + return 0; +} + +static int +ble_hs_adv_parse_uuids128(struct ble_hs_adv_fields *adv_fields, + const uint8_t *data, uint8_t data_len) +{ + ble_uuid_any_t uuid; + int i; + + if (data_len % 16 != 0) { + return BLE_HS_EBADDATA; + } + + adv_fields->uuids128 = ble_hs_adv_uuids128; + adv_fields->num_uuids128 = data_len / 16; + + for (i = 0; i < adv_fields->num_uuids128; i++) { + ble_uuid_init_from_buf(&uuid, data + i * 16, 16); + adv_fields->uuids128[i] = uuid.u128; } return 0; @@ -435,20 +512,18 @@ ble_hs_adv_parse_one_field(struct ble_hs_adv_fields *adv_fields, break; case BLE_HS_ADV_TYPE_INCOMP_UUIDS128: - if (data_len % 16 != 0) { - return BLE_HS_EBADDATA; + rc = ble_hs_adv_parse_uuids128(adv_fields, data, data_len); + if (rc != 0) { + return rc; } - adv_fields->uuids128 = data; - adv_fields->num_uuids128 = data_len / 16; adv_fields->uuids128_is_complete = 0; break; case BLE_HS_ADV_TYPE_COMP_UUIDS128: - if (data_len % 16 != 0) { - return BLE_HS_EBADDATA; + rc = ble_hs_adv_parse_uuids128(adv_fields, data, data_len); + if (rc != 0) { + return rc; } - adv_fields->uuids128 = data; - adv_fields->num_uuids128 = data_len / 16; adv_fields->uuids128_is_complete = 1; break; http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ef6808ab/net/nimble/host/test/src/ble_hs_adv_test.c ---------------------------------------------------------------------- diff --git a/net/nimble/host/test/src/ble_hs_adv_test.c b/net/nimble/host/test/src/ble_hs_adv_test.c index c1a7e55..526fa74 100644 --- a/net/nimble/host/test/src/ble_hs_adv_test.c +++ b/net/nimble/host/test/src/ble_hs_adv_test.c @@ -189,7 +189,11 @@ TEST_CASE(ble_hs_adv_test_case_user) adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; adv_fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; - adv_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab }; + adv_fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(0x0001), + BLE_UUID16_INIT(0x1234), + BLE_UUID16_INIT(0x54ab) + }; adv_fields.num_uuids16 = 3; adv_fields.uuids16_is_complete = 1; @@ -217,7 +221,11 @@ TEST_CASE(ble_hs_adv_test_case_user) memset(&adv_fields, 0, sizeof adv_fields); adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; - adv_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab }; + adv_fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(0x0001), + BLE_UUID16_INIT(0x1234), + BLE_UUID16_INIT(0x54ab) + }; adv_fields.num_uuids16 = 3; adv_fields.uuids16_is_complete = 0; @@ -245,7 +253,10 @@ TEST_CASE(ble_hs_adv_test_case_user) memset(&adv_fields, 0, sizeof adv_fields); adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; - adv_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae }; + adv_fields.uuids32 = (ble_uuid32_t[]) { + BLE_UUID32_INIT(0x12345678), + BLE_UUID32_INIT(0xabacadae) + }; adv_fields.num_uuids32 = 2; adv_fields.uuids32_is_complete = 1; @@ -273,7 +284,10 @@ TEST_CASE(ble_hs_adv_test_case_user) memset(&adv_fields, 0, sizeof adv_fields); adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; - adv_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae }; + adv_fields.uuids32 = (ble_uuid32_t[]) { + BLE_UUID32_INIT(0x12345678), + BLE_UUID32_INIT(0xabacadae) + }; adv_fields.num_uuids32 = 2; adv_fields.uuids32_is_complete = 0; @@ -301,9 +315,9 @@ TEST_CASE(ble_hs_adv_test_case_user) memset(&adv_fields, 0, sizeof adv_fields); adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; - adv_fields.uuids128 = (uint8_t[]) { - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, + adv_fields.uuids128 = (ble_uuid128_t[]) { + BLE_UUID128_INIT(0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff) }; adv_fields.num_uuids128 = 1; adv_fields.uuids128_is_complete = 1; @@ -335,10 +349,10 @@ TEST_CASE(ble_hs_adv_test_case_user) memset(&adv_fields, 0, sizeof adv_fields); adv_fields.flags = BLE_HS_ADV_F_BREDR_UNSUP; adv_fields.tx_pwr_lvl_is_present = 1; - adv_fields.uuids128 = (uint8_t[]) { + adv_fields.uuids128 = BLE_UUID128(BLE_UUID128_DECLARE( 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, - }; + )); adv_fields.num_uuids128 = 1; adv_fields.uuids128_is_complete = 0; @@ -677,7 +691,11 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Complete 16-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab }; + rsp_fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(0x0001), + BLE_UUID16_INIT(0x1234), + BLE_UUID16_INIT(0x54ab) + }; rsp_fields.num_uuids16 = 3; rsp_fields.uuids16_is_complete = 1; @@ -707,7 +725,11 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Incomplete 16-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab }; + rsp_fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(0x0001), + BLE_UUID16_INIT(0x1234), + BLE_UUID16_INIT(0x54ab) + }; rsp_fields.num_uuids16 = 3; rsp_fields.uuids16_is_complete = 0; @@ -737,7 +759,10 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Complete 32-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae }; + rsp_fields.uuids32 = (ble_uuid32_t[]) { + BLE_UUID32_INIT(0x12345678), + BLE_UUID32_INIT(0xabacadae) + }; rsp_fields.num_uuids32 = 2; rsp_fields.uuids32_is_complete = 1; @@ -767,7 +792,10 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Incomplete 32-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae }; + rsp_fields.uuids32 = (ble_uuid32_t[]) { + BLE_UUID32_INIT(0x12345678), + BLE_UUID32_INIT(0xabacadae) + }; rsp_fields.num_uuids32 = 2; rsp_fields.uuids32_is_complete = 0; @@ -797,9 +825,9 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Complete 128-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids128 = (uint8_t[]) { - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, + rsp_fields.uuids128 = (ble_uuid128_t[]) { + BLE_UUID128_INIT(0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff) }; rsp_fields.num_uuids128 = 1; rsp_fields.uuids128_is_complete = 1; @@ -833,9 +861,9 @@ TEST_CASE(ble_hs_adv_test_case_user_rsp) /*** Incomplete 128-bit service class UUIDs. */ memset(&rsp_fields, 0, sizeof rsp_fields); - rsp_fields.uuids128 = (uint8_t[]) { - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, + rsp_fields.uuids128 = (ble_uuid128_t[]) { + BLE_UUID128_INIT(0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff) }; rsp_fields.num_uuids128 = 1; rsp_fields.uuids128_is_complete = 0;
