![]() |
Bluetooth LE Profile API document
Bluetooth LE Profile API document Rev.1.00 [May 22, 2020]
|
Utility Macros from Profile Common Library. More...
Utility Macros from Profile Common Library.
Packing Macros and Unpacking Macros for Little Endian and MIN/MAX Macro are defined.
By default both the packing and unpaking macros uses pointer to a single or multi-octet variable which to be packed to or unpacked from a buffer (unsinged character array).
Macros | |
#define | BT_PACK_LE_1_BYTE(dst, src) |
#define | BT_PACK_LE_1_BYTE_VAL(dst, src) *((uint8_t *)(dst) + 0) = (src); |
#define | BT_PACK_LE_2_BYTE(dst, src) |
#define | BT_PACK_LE_2_BYTE_VAL(dst, src) |
#define | BT_PACK_LE_3_BYTE(dst, src) |
#define | BT_PACK_LE_3_BYTE_VAL(dst, src) |
#define | BT_PACK_LE_4_BYTE(dst, src) |
#define | BT_PACK_LE_4_BYTE_VAL(dst, src) |
#define | BT_PACK_LE_8_BYTE(dst, val) memcpy ((dst), (val), 8) |
#define | BT_PACK_LE_16_BYTE(dst, val) memcpy ((dst), (val), 16) |
#define | BT_PACK_LE_N_BYTE(dst, val, n) memcpy ((dst), (val), (n)) |
#define | BT_UNPACK_LE_1_BYTE(dst, src) *((uint8_t *)(dst)) = (uint8_t)(*((uint8_t *)(src))); |
#define | BT_UNPACK_LE_2_BYTE(dst, src) |
#define | BT_UNPACK_LE_3_BYTE(dst, src) |
#define | BT_UNPACK_LE_4_BYTE(dst, src) |
#define | BT_UNPACK_LE_8_BYTE(dst, src) memcpy ((dst), (src), 8) |
#define | BT_UNPACK_LE_16_BYTE(dst, src) memcpy ((dst), (src), 16) |
#define | BT_UNPACK_LE_N_BYTE(dst, src, n) memcpy ((dst), (src), (n)) |
#define | MAX(x, y) (((x) > (y)) ? (x) : (y)) |
#define | MIN(x, y) (((x) < (y)) ? (x) : (y)) |
#define BT_PACK_LE_1_BYTE | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 1 byte (uint8_t for source).
#define BT_PACK_LE_1_BYTE_VAL | ( | dst, | |
src | |||
) | *((uint8_t *)(dst) + 0) = (src); |
Little Endian Packing Macros for 1 byte (uint8_t[1] for source).
#define BT_PACK_LE_2_BYTE | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 2 byte (uint16_t for source).
#define BT_PACK_LE_2_BYTE_VAL | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 2 byte (uint8_t[2] for source).
#define BT_PACK_LE_3_BYTE | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 3 byte (uint32_t for source)..
#define BT_PACK_LE_3_BYTE_VAL | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 3 byte (uint8_t[3] for source).
#define BT_PACK_LE_4_BYTE | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 4 byte (uint32_t for source).
#define BT_PACK_LE_4_BYTE_VAL | ( | dst, | |
src | |||
) |
Little Endian Packing Macros for 1 byte (uint8_t[4] for source).
#define BT_PACK_LE_8_BYTE | ( | dst, | |
val | |||
) | memcpy ((dst), (val), 8) |
Little Endian Packing Macros for 8 byte.
#define BT_PACK_LE_16_BYTE | ( | dst, | |
val | |||
) | memcpy ((dst), (val), 16) |
Little Endian Packing Macros for 16 byte.
#define BT_PACK_LE_N_BYTE | ( | dst, | |
val, | |||
n | |||
) | memcpy ((dst), (val), (n)) |
Little Endian Packing Macros for variable length.
#define BT_UNPACK_LE_1_BYTE | ( | dst, | |
src | |||
) | *((uint8_t *)(dst)) = (uint8_t)(*((uint8_t *)(src))); |
Little Endian Unpacking Macros for 1 byte.
#define BT_UNPACK_LE_2_BYTE | ( | dst, | |
src | |||
) |
Little Endian Unpacking Macros for 2 byte.
#define BT_UNPACK_LE_3_BYTE | ( | dst, | |
src | |||
) |
Little Endian Unpacking Macros for 3 byte.
#define BT_UNPACK_LE_4_BYTE | ( | dst, | |
src | |||
) |
Little Endian Unpacking Macros for 4 byte.
#define BT_UNPACK_LE_8_BYTE | ( | dst, | |
src | |||
) | memcpy ((dst), (src), 8) |
Little Endian Unpacking Macros for 8 byte.
#define BT_UNPACK_LE_16_BYTE | ( | dst, | |
src | |||
) | memcpy ((dst), (src), 16) |
Little Endian Unpacking Macros for 16 byte.
#define BT_UNPACK_LE_N_BYTE | ( | dst, | |
src, | |||
n | |||
) | memcpy ((dst), (src), (n)) |
Little Endian Unpacking Macros for variable length.
#define MAX | ( | x, | |
y | |||
) | (((x) > (y)) ? (x) : (y)) |
Defines which value is bigger.
#define MIN | ( | x, | |
y | |||
) | (((x) < (y)) ? (x) : (y)) |
Defines which value is smaller.