思澈科技软件开发工具包  2.20
BLE Attribute Protocol

BLE Attribute Protocol definitions. More...

Data Structures

struct  att_uuid_128
 UUID - 128-bit type. More...
 
struct  att_uuid_32
 UUID - 32-bit type. More...
 
struct  att_char_desc
 Characteristic Value Descriptor. More...
 
struct  att_char128_desc
 Characteristic Value Descriptor. More...
 
struct  att_incl_desc
 include service entry element More...
 
struct  att_incl128_desc
 include service entry element More...
 
struct  att_pdu_handler
 Element of a pdu handler table. More...
 

Macros

#define ATT_UUID_16(uuid)   (uuid)
 Macro used to convert CPU integer define to LSB first 16-bits UUID.
 
#define ATT_INVALID_HDL   (0x0000)
 Invalid attribute handle.
 
#define ATT_INVALID_IDX   (0xff)
 Invalid attribute idx (used for profiles)
 
#define ATT_1ST_REQ_START_HDL   0x0001
 
#define ATT_1ST_REQ_END_HDL   0xFFFF
 
#define ATT_MAX_ATTR_HDL   ATT_1ST_REQ_END_HDL
 Maximum possible attribute handle.
 
#define ATT_SIGNED_PDU_VAL_OFFSET   0x03
 Offset of value in signed PDU.
 
#define ATT_SIGNED_PDU_VAL_OFFSET   0x03
 Offset of value in signed PDU.
 
#define ATT_SERVER_CONFIG   0x0001
 Attribute Features.
 
#define ATT_SERVICE_DISC   0x0002
 
#define ATT_RELATIONSHIP_DISC   0x0004
 
#define ATT_CHAR_DISC   0x0008
 
#define ATT_CHAR_DESC_DISC   0x0010
 
#define ATT_RD_CHAR_VALUE   0x0020
 
#define ATT_WR_CHAR_VALUE   0x0040
 
#define ATT_NOTIF_CHAR_VALUE   0x0080
 
#define ATT_IND_CHAR_VALUE   0x0100
 
#define ATT_RD_CHAR_DESC   0x0200
 
#define ATT_WR_CHAR_DESC   0x0400
 
#define ATT_SVC_VALUE_MAX_LEN   0x0030
 Length, number, offset defines.
 
#define ATT_CHAR_NAME_MAX_LEN   0x0030
 
#define ATT_UUID_16_LEN   0x0002
 
#define ATT_UUID_32_LEN   0x0004
 
#define ATT_UUID_128_LEN   0x0010
 
#define ATT_PDU_DATA_OFFSET   0x05
 offset - l2cap header and ATT code
 
#define ATT_CHAR_PROP_BCAST   0x01
 Characteristic Properties Bit.
 
#define ATT_CHAR_PROP_RD   0x02
 
#define ATT_CHAR_PROP_WR_NO_RESP   0x04
 
#define ATT_CHAR_PROP_WR   0x08
 
#define ATT_CHAR_PROP_NTF   0x10
 
#define ATT_CHAR_PROP_IND   0x20
 
#define ATT_CHAR_PROP_AUTH   0x40
 
#define ATT_CHAR_PROP_EXT_PROP   0x80
 
#define ATT_INVALID_SEARCH_HANDLE   0x0000
 Invalid Attribute Handle.
 
#define ATT_INVALID_HANDLE   0x0000
 
#define ATT_UUID_FILTER_0   0x00
 Read Information Request.
 
#define ATT_UUID_FILTER_2   0x02
 
#define ATT_UUID_FILTER_16   0x10
 
#define ATT_FORMAT_LEN   0x0001
 Read Information Response.
 
#define ATT_FORMAT_16BIT_UUID   0x01
 
#define ATT_FORMAT_128BIT_UUID   0x02
 
#define ATT_HANDLE_LEN   0x0002
 For No fix length PDU.
 
#define ATT_EACHLEN_LEN   0x0001
 
#define ATT_PROP_LEN   0x0001
 
#define ATT_CODE_LEN   0x0001
 
#define ATT_CODE_AND_DATA_LEN   0x0002
 
#define ATT_CODE_AND_HANDLE_LEN   0x0003
 
#define ATT_CODE_AND_HANDLE_LEN_AND_OFFSET   0x0005
 
#define ATT_SIGNATURE_LEN   0x0C
 
#define ATT_EXT_RELIABLE_WRITE   0x0001
 extended characteristics
 
#define ATT_EXT_WRITABLE_AUX   0x0002
 
#define ATT_EXT_RFU   0xFFFC
 
#define ATT_ERROR_RESP_LEN   0x05
 PDU size for error response.
 
#define ATT_OPCODE_METHOD_MASK   0x3F
 Attribute operation code - Method (bit 5 - 0)
 
#define ATT_OPCODE_METHOD_LSB   0
 
#define ATT_OPCODE_CMD_FLAG_BIT   0x40
 Attribute operation code - Command Flag (bit 6)
 
#define ATT_OPCODE_CMD_FLAG_POS   6
 
#define ATT_OPCODE_AUTH_SIGNATURE_FLAG_BIT   0x80
 Attribute operation code - Authentication Signature Flag (bit 7)
 
#define ATT_OPCODE_AUTH_SIGNATURE_FLAG_POS   7
 
#define ATT_BT_UUID_128
 
#define ATT_PDU_HANDLER_NOT_FOUND   (0xff)
 used to know if PDU handler has been found
 
#define PERM_GET(perm, access)   (((perm) & (PERM_MASK_ ## access)) >> (PERM_POS_ ## access))
 Macro used to retrieve access permission rights.
 
#define PERM_SET(perm, access, value)   perm = ((perm & ~(PERM_MASK_ ## access)) | ((value << (PERM_POS_ ## access)) & (PERM_MASK_ ## access)))
 Macro used to set a permission value.
 
#define PERM(access, right)   (((PERM_RIGHT_ ## right) << (PERM_POS_ ## access)) & (PERM_MASK_ ## access))
 Macro used to retrieve permission value from access and rights on attribute.
 
#define PERM_IS_SET(perm, access, right)
 Macro used know if permission is set or not. More...
 
#define PERM_VAL(access, perm)   ((((perm) << (PERM_POS_ ## access))) & (PERM_MASK_ ## access))
 Macro used to create permission value.
 
#define ATT_GET_SEC_LVL(att_right, svc_right)   co_max(((att_right) & PERM_RIGHT_AUTH), ((svc_right) & PERM_RIGHT_AUTH));
 Retrieve attribute security level from attribute right and service right.
 
#define ATT_UUID_LEN(uuid_len_perm)
 Retrieve UUID LEN from UUID Length Permission. More...
 
#define ATT_ELEMT_INIT   {{NULL}, false}
 Initialization of attribute element.
 

Typedefs

typedef uint16_t att_size_t
 Attribute length type.
 
typedef uint16_t att_svc_desc_t
 Service Value Descriptor - 16-bit.
 
typedef int(* att_func_t) (uint8_t conidx, void *pdu)
 Format of a pdu handler function.
 

Enumerations

enum  {
  ATT_INVALID_UUID = ( 0x0000 ),
  ATT_SVC_GENERIC_ACCESS = ( 0x1800 ),
  ATT_SVC_GENERIC_ATTRIBUTE = ( 0x1801 ),
  ATT_SVC_IMMEDIATE_ALERT = ( 0x1802 ),
  ATT_SVC_LINK_LOSS = ( 0x1803 ),
  ATT_SVC_TX_POWER = ( 0x1804 ),
  ATT_SVC_CURRENT_TIME = ( 0x1805 ),
  ATT_SVC_REF_TIME_UPDATE = ( 0x1806 ),
  ATT_SVC_NEXT_DST_CHANGE = ( 0x1807 ),
  ATT_SVC_GLUCOSE = ( 0x1808 ),
  ATT_SVC_HEALTH_THERMOM = ( 0x1809 ),
  ATT_SVC_DEVICE_INFO = ( 0x180A ),
  ATT_SVC_HEART_RATE = ( 0x180D ),
  ATT_SVC_PHONE_ALERT_STATUS = ( 0x180E ),
  ATT_SVC_BATTERY_SERVICE = ( 0x180F ),
  ATT_SVC_BLOOD_PRESSURE = ( 0x1810 ),
  ATT_SVC_ALERT_NTF = ( 0x1811 ),
  ATT_SVC_HID = ( 0x1812 ),
  ATT_SVC_SCAN_PARAMETERS = ( 0x1813 ),
  ATT_SVC_RUNNING_SPEED_CADENCE = ( 0x1814 ),
  ATT_SVC_CYCLING_SPEED_CADENCE = ( 0x1816 ),
  ATT_SVC_CYCLING_POWER = ( 0x1818 ),
  ATT_SVC_LOCATION_AND_NAVIGATION = ( 0x1819 ),
  ATT_SVC_ENVIRONMENTAL_SENSING = ( 0x181A ),
  ATT_SVC_BODY_COMPOSITION = ( 0x181B ),
  ATT_SVC_USER_DATA = ( 0x181C ),
  ATT_SVC_WEIGHT_SCALE = ( 0x181D ),
  ATT_SVC_BOND_MANAGEMENT = ( 0x181E ),
  ATT_SVC_CONTINUOUS_GLUCOSE_MONITORING = ( 0x181F ),
  ATT_SVC_IP_SUPPORT = ( 0x1820 ),
  ATT_SVC_INDOOR_POSITIONING = ( 0x1821 ),
  ATT_SVC_PULSE_OXIMETER = ( 0x1822 ),
  ATT_SVC_HTTP_PROXY = ( 0x1823 ),
  ATT_SVC_TRANSPORT_DISCOVERY = ( 0x1824 ),
  ATT_SVC_OBJECT_TRANSFER = ( 0x1825 ),
  ATT_SVC_MESH_PROVISIONING = ( 0x1827 ),
  ATT_SVC_MESH_PROXY = ( 0x1828 ),
  ATT_UNIT_UNITLESS = ( 0x2700 ),
  ATT_UNIT_METRE = ( 0x2701 ),
  ATT_UNIT_KG = ( 0x2702 ),
  ATT_UNIT_SECOND = ( 0x2703 ),
  ATT_UNIT_AMPERE = ( 0x2704 ),
  ATT_UNIT_KELVIN = ( 0x2705 ),
  ATT_UNIT_MOLE = ( 0x2706 ),
  ATT_UNIT_CANDELA = ( 0x2707 ),
  ATT_UNIT_SQ_METRE = ( 0x2710 ),
  ATT_UNIT_CUBIC_METRE = ( 0x2710 ),
  ATT_UNIT_METRE_PER_SECOND = ( 0x2711 ),
  ATT_UNIT_METRES_PER_SEC_SQ = ( 0x2712 ),
  ATT_UNIT_RECIPROCAL_METRE = ( 0x2713 ),
  ATT_UNIT_DENS_KG_PER_CUBIC_METRE = ( 0x2714 ),
  ATT_UNIT_KG_PER_SQ_METRE = ( 0x2715 ),
  ATT_UNIT_CUBIC_METRE_PER_KG = ( 0x2716 ),
  ATT_UNIT_AMPERE_PER_SQ_METRE = ( 0x2717 ),
  ATT_UNIT_AMPERE_PER_METRE = ( 0x2718 ),
  ATT_UNIT_MOLE_PER_CUBIC_METRE = ( 0x2719 ),
  ATT_UNIT_MASS_KG_PER_CUBIC_METRE = ( 0x271A ),
  ATT_UNIT_CANDELA_PER_SQ_METRE = ( 0x271B ),
  ATT_UNIT_REFRACTIVE_INDEX = ( 0x271C ),
  ATT_UNIT_RELATIVE_PERMEABILITY = ( 0x271D ),
  ATT_UNIT_RADIAN = ( 0x2720 ),
  ATT_UNIT_STERADIAN = ( 0x2721 ),
  ATT_UNIT_HERTZ = ( 0x2722 ),
  ATT_UNIT_NEWTON = ( 0x2723 ),
  ATT_UNIT_PASCAL = ( 0x2724 ),
  ATT_UNIT_JOULE = ( 0x2725 ),
  ATT_UNIT_WATT = ( 0x2726 ),
  ATT_UNIT_COULOMB = ( 0x2727 ),
  ATT_UNIT_VOLT = ( 0x2728 ),
  ATT_UNIT_FARAD = ( 0x2729 ),
  ATT_UNIT_OHM = ( 0x272A ),
  ATT_UNIT_SIEMENS = ( 0x272B ),
  ATT_UNIT_WEBER = ( 0x272C ),
  ATT_UNIT_TESLA = ( 0x272D ),
  ATT_UNIT_HENRY = ( 0x272E ),
  ATT_UNIT_CELSIUS = ( 0x272F ),
  ATT_UNIT_LUMEN = ( 0x2730 ),
  ATT_UNIT_LUX = ( 0x2731 ),
  ATT_UNIT_BECQUEREL = ( 0x2732 ),
  ATT_UNIT_GRAY = ( 0x2733 ),
  ATT_UNIT_SIEVERT = ( 0x2734 ),
  ATT_UNIT_KATAL = ( 0x2735 ),
  ATT_UNIT_PASCAL_SECOND = ( 0x2740 ),
  ATT_UNIT_NEWTON_METRE = ( 0x2741 ),
  ATT_UNIT_NEWTON_PER_METRE = ( 0x2742 ),
  ATT_UNIT_RADIAN_PER_SECOND = ( 0x2743 ),
  ATT_UNIT_RADIAN_PER_SECOND_SQ = ( 0x2744 ),
  ATT_UNIT_WATT_PER_SQ_METRE = ( 0x2745 ),
  ATT_UNIT_JOULE_PER_KELVIN = ( 0x2746 ),
  ATT_UNIT_JOULE_PER_KG_KELVIN = ( 0x2747 ),
  ATT_UNIT_JOULE_PER_KG = ( 0x2748 ),
  ATT_UNIT_WATT_PER_METRE_KELVIN = ( 0x2749 ),
  ATT_UNIT_JOULE_PER_CUBIC_METRE = ( 0x274A ),
  ATT_UNIT_VOLT_PER_METRE = ( 0x274B ),
  ATT_UNIT_COULOMB_PER_CUBIC_METRE = ( 0x274C ),
  ATT_UNIT_SURF_COULOMB_PER_SQ_METRE = ( 0x274D ),
  ATT_UNIT_FLUX_COULOMB_PER_SQ_METRE = ( 0x274E ),
  ATT_UNIT_FARAD_PER_METRE = ( 0x274F ),
  ATT_UNIT_HENRY_PER_METRE = ( 0x2750 ),
  ATT_UNIT_JOULE_PER_MOLE = ( 0x2751 ),
  ATT_UNIT_JOULE_PER_MOLE_KELVIN = ( 0x2752 ),
  ATT_UNIT_COULOMB_PER_KG = ( 0x2753 ),
  ATT_UNIT_GRAY_PER_SECOND = ( 0x2754 ),
  ATT_UNIT_WATT_PER_STERADIAN = ( 0x2755 ),
  ATT_UNIT_WATT_PER_SQ_METRE_STERADIAN = ( 0x2756 ),
  ATT_UNIT_KATAL_PER_CUBIC_METRE = ( 0x2757 ),
  ATT_UNIT_MINUTE = ( 0x2760 ),
  ATT_UNIT_HOUR = ( 0x2761 ),
  ATT_UNIT_DAY = ( 0x2762 ),
  ATT_UNIT_ANGLE_DEGREE = ( 0x2763 ),
  ATT_UNIT_ANGLE_MINUTE = ( 0x2764 ),
  ATT_UNIT_ANGLE_SECOND = ( 0x2765 ),
  ATT_UNIT_HECTARE = ( 0x2766 ),
  ATT_UNIT_LITRE = ( 0x2767 ),
  ATT_UNIT_TONNE = ( 0x2768 ),
  ATT_UNIT_BAR = ( 0x2780 ),
  ATT_UNIT_MM_MERCURY = ( 0x2781 ),
  ATT_UNIT_ANGSTROM = ( 0x2782 ),
  ATT_UNIT_NAUTICAL_MILE = ( 0x2783 ),
  ATT_UNIT_BARN = ( 0x2784 ),
  ATT_UNIT_KNOT = ( 0x2785 ),
  ATT_UNIT_NEPER = ( 0x2786 ),
  ATT_UNIT_BEL = ( 0x2787 ),
  ATT_UNIT_YARD = ( 0x27A0 ),
  ATT_UNIT_PARSEC = ( 0x27A1 ),
  ATT_UNIT_INCH = ( 0x27A2 ),
  ATT_UNIT_FOOT = ( 0x27A3 ),
  ATT_UNIT_MILE = ( 0x27A4 ),
  ATT_UNIT_POUND_FORCE_PER_SQ_INCH = ( 0x27A5 ),
  ATT_UNIT_KM_PER_HOUR = ( 0x27A6 ),
  ATT_UNIT_MILE_PER_HOUR = ( 0x27A7 ),
  ATT_UNIT_REVOLUTION_PER_MINUTE = ( 0x27A8 ),
  ATT_UNIT_GRAM_CALORIE = ( 0x27A9 ),
  ATT_UNIT_KG_CALORIE = ( 0x27AA ),
  ATT_UNIT_KILOWATT_HOUR = ( 0x27AB ),
  ATT_UNIT_FAHRENHEIT = ( 0x27AC ),
  ATT_UNIT_PERCENTAGE = ( 0x27AD ),
  ATT_UNIT_PER_MILLE = ( 0x27AE ),
  ATT_UNIT_BEATS_PER_MINUTE = ( 0x27AF ),
  ATT_UNIT_AMPERE_HOURS = ( 0x27B0 ),
  ATT_UNIT_MILLIGRAM_PER_DECILITRE = ( 0x27B1 ),
  ATT_UNIT_MILLIMOLE_PER_LITRE = ( 0x27B2 ),
  ATT_UNIT_YEAR = ( 0x27B3 ),
  ATT_UNIT_MONTH = ( 0x27B4 ),
  ATT_DECL_PRIMARY_SERVICE = ( 0x2800 ),
  ATT_DECL_SECONDARY_SERVICE = ( 0x2801 ),
  ATT_DECL_INCLUDE = ( 0x2802 ),
  ATT_DECL_CHARACTERISTIC = ( 0x2803 ),
  ATT_DESC_CHAR_EXT_PROPERTIES = ( 0x2900 ),
  ATT_DESC_CHAR_USER_DESCRIPTION = ( 0x2901 ),
  ATT_DESC_CLIENT_CHAR_CFG = ( 0x2902 ),
  ATT_DESC_SERVER_CHAR_CFG = ( 0x2903 ),
  ATT_DESC_CHAR_PRES_FORMAT = ( 0x2904 ),
  ATT_DESC_CHAR_AGGREGATE_FORMAT = ( 0x2905 ),
  ATT_DESC_VALID_RANGE = ( 0x2906 ),
  ATT_DESC_EXT_REPORT_REF = ( 0x2907 ),
  ATT_DESC_REPORT_REF = ( 0x2908 ),
  ATT_DESC_ES_CONFIGURATION = ( 0x290B ),
  ATT_DESC_ES_MEASUREMENT = ( 0x290C ),
  ATT_DESC_ES_TRIGGER_SETTING = ( 0x290D ),
  ATT_CHAR_DEVICE_NAME = ( 0x2A00 ),
  ATT_CHAR_APPEARANCE = ( 0x2A01 ),
  ATT_CHAR_PRIVACY_FLAG = ( 0x2A02 ),
  ATT_CHAR_RECONNECTION_ADDR = ( 0x2A03 ),
  ATT_CHAR_PERIPH_PREF_CON_PARAM = ( 0x2A04 ),
  ATT_CHAR_SERVICE_CHANGED = ( 0x2A05 ),
  ATT_CHAR_ALERT_LEVEL = ( 0x2A06 ),
  ATT_CHAR_TX_POWER_LEVEL = ( 0x2A07 ),
  ATT_CHAR_DATE_TIME = ( 0x2A08 ),
  ATT_CHAR_DAY_WEEK = ( 0x2A09 ),
  ATT_CHAR_DAY_DATE_TIME = ( 0x2A0A ),
  ATT_CHAR_EXACT_TIME_256 = ( 0x2A0C ),
  ATT_CHAR_DST_OFFSET = ( 0x2A0D ),
  ATT_CHAR_TIME_ZONE = ( 0x2A0E ),
  ATT_CHAR_LOCAL_TIME_INFO = ( 0x2A0F ),
  ATT_CHAR_TIME_WITH_DST = ( 0x2A11 ),
  ATT_CHAR_TIME_ACCURACY = ( 0x2A12 ),
  ATT_CHAR_TIME_SOURCE = ( 0x2A13 ),
  ATT_CHAR_REFERENCE_TIME_INFO = ( 0x2A14 ),
  ATT_CHAR_TIME_UPDATE_CNTL_POINT = ( 0x2A16 ),
  ATT_CHAR_TIME_UPDATE_STATE = ( 0x2A17 ),
  ATT_CHAR_GLUCOSE_MEAS = ( 0x2A18 ),
  ATT_CHAR_BATTERY_LEVEL = ( 0x2A19 ),
  ATT_CHAR_TEMPERATURE_MEAS = ( 0x2A1C ),
  ATT_CHAR_TEMPERATURE_TYPE = ( 0x2A1D ),
  ATT_CHAR_INTERMED_TEMPERATURE = ( 0x2A1E ),
  ATT_CHAR_MEAS_INTERVAL = ( 0x2A21 ),
  ATT_CHAR_BOOT_KB_IN_REPORT = ( 0x2A22 ),
  ATT_CHAR_SYS_ID = ( 0x2A23 ),
  ATT_CHAR_MODEL_NB = ( 0x2A24 ),
  ATT_CHAR_SERIAL_NB = ( 0x2A25 ),
  ATT_CHAR_FW_REV = ( 0x2A26 ),
  ATT_CHAR_HW_REV = ( 0x2A27 ),
  ATT_CHAR_SW_REV = ( 0x2A28 ),
  ATT_CHAR_MANUF_NAME = ( 0x2A29 ),
  ATT_CHAR_IEEE_CERTIF = ( 0x2A2A ),
  ATT_CHAR_CT_TIME = ( 0x2A2B ),
  ATT_CHAR_MAGN_DECLINE = ( 0x2A2C ),
  ATT_CHAR_SCAN_REFRESH = ( 0x2A31 ),
  ATT_CHAR_BOOT_KB_OUT_REPORT = ( 0x2A32 ),
  ATT_CHAR_BOOT_MOUSE_IN_REPORT = ( 0x2A33 ),
  ATT_CHAR_GLUCOSE_MEAS_CTX = ( 0x2A34 ),
  ATT_CHAR_BLOOD_PRESSURE_MEAS = ( 0x2A35 ),
  ATT_CHAR_INTERMEDIATE_CUFF_PRESSURE = ( 0x2A36 ),
  ATT_CHAR_HEART_RATE_MEAS = ( 0x2A37 ),
  ATT_CHAR_BODY_SENSOR_LOCATION = ( 0x2A38 ),
  ATT_CHAR_HEART_RATE_CNTL_POINT = ( 0x2A39 ),
  ATT_CHAR_ALERT_STATUS = ( 0x2A3F ),
  ATT_CHAR_RINGER_CNTL_POINT = ( 0x2A40 ),
  ATT_CHAR_RINGER_SETTING = ( 0x2A41 ),
  ATT_CHAR_ALERT_CAT_ID_BIT_MASK = ( 0x2A42 ),
  ATT_CHAR_ALERT_CAT_ID = ( 0x2A43 ),
  ATT_CHAR_ALERT_NTF_CTNL_PT = ( 0x2A44 ),
  ATT_CHAR_UNREAD_ALERT_STATUS = ( 0x2A45 ),
  ATT_CHAR_NEW_ALERT = ( 0x2A46 ),
  ATT_CHAR_SUP_NEW_ALERT_CAT = ( 0x2A47 ),
  ATT_CHAR_SUP_UNREAD_ALERT_CAT = ( 0x2A48 ),
  ATT_CHAR_BLOOD_PRESSURE_FEATURE = ( 0x2A49 ),
  ATT_CHAR_HID_INFO = ( 0x2A4A ),
  ATT_CHAR_REPORT_MAP = ( 0x2A4B ),
  ATT_CHAR_HID_CTNL_PT = ( 0x2A4C ),
  ATT_CHAR_REPORT = ( 0x2A4D ),
  ATT_CHAR_PROTOCOL_MODE = ( 0x2A4E ),
  ATT_CHAR_SCAN_INTV_WD = ( 0x2A4F ),
  ATT_CHAR_PNP_ID = ( 0x2A50 ),
  ATT_CHAR_GLUCOSE_FEATURE = ( 0x2A51 ),
  ATT_CHAR_REC_ACCESS_CTRL_PT = ( 0x2A52 ),
  ATT_CHAR_RSC_MEAS = ( 0x2A53 ),
  ATT_CHAR_RSC_FEAT = ( 0x2A54 ),
  ATT_CHAR_SC_CNTL_PT = ( 0x2A55 ),
  ATT_CHAR_CSC_MEAS = ( 0x2A5B ),
  ATT_CHAR_CSC_FEAT = ( 0x2A5C ),
  ATT_CHAR_SENSOR_LOC = ( 0x2A5D ),
  ATT_CHAR_PLX_SPOT_CHECK_MEASUREMENT_LOC = ( 0x2A5E ),
  ATT_CHAR_PLX_CONTINUOUS_MEASUREMENT_LOC = ( 0x2A5F ),
  ATT_CHAR_PLX_FEATURES_LOC = ( 0x2A60 ),
  ATT_CHAR_CP_MEAS = ( 0x2A63 ),
  ATT_CHAR_CP_VECTOR = ( 0x2A64 ),
  ATT_CHAR_CP_FEAT = ( 0x2A65 ),
  ATT_CHAR_CP_CNTL_PT = ( 0x2A66 ),
  ATT_CHAR_LOC_SPEED = ( 0x2A67 ),
  ATT_CHAR_NAVIGATION = ( 0x2A68 ),
  ATT_CHAR_POS_QUALITY = ( 0x2A69 ),
  ATT_CHAR_LN_FEAT = ( 0x2A6A ),
  ATT_CHAR_LN_CNTL_PT = ( 0x2A6B ),
  ATT_CHAR_ELEVATION = ( 0x2A6C ),
  ATT_CHAR_PRESSURE = ( 0x2A6D ),
  ATT_CHAR_TEMPERATURE = ( 0x2A6E ),
  ATT_CHAR_HUMIDITY = ( 0x2A6F ),
  ATT_CHAR_TRUE_WIND_SPEED = ( 0x2A70 ),
  ATT_CHAR_TRUE_WIND_DIR = ( 0x2A71 ),
  ATT_CHAR_APRNT_WIND_SPEED = ( 0x2A72 ),
  ATT_CHAR_APRNT_WIND_DIRECTION = ( 0x2A73 ),
  ATT_CHAR_GUST_FACTOR = ( 0x2A74 ),
  ATT_CHAR_POLLEN_CONC = ( 0x2A75 ),
  ATT_CHAR_UV_INDEX = ( 0x2A76 ),
  ATT_CHAR_IRRADIANCE = ( 0x2A77 ),
  ATT_CHAR_RAINFALL = ( 0x2A78 ),
  ATT_CHAR_WIND_CHILL = ( 0x2A79 ),
  ATT_CHAR_HEAT_INDEX = ( 0x2A7A ),
  ATT_CHAR_DEW_POINT = ( 0x2A7B ),
  ATT_CHAR_DESCRIPTOR_VALUE_CHANGED = ( 0x2A7D ),
  ATT_CHAR_AEROBIC_HEART_RATE_LOWER_LIMIT = ( 0x2A7E ),
  ATT_CHAR_AEROBIC_THRESHHOLD = ( 0x2A7F ),
  ATT_CHAR_AGE = ( 0x2A80 ),
  ATT_CHAR_ANAEROBIC_HEART_RATE_LOWER_LIMIT = ( 0x2A81 ),
  ATT_CHAR_ANAEROBIC_HEART_RATE_UPPER_LIMIT = ( 0x2A82 ),
  ATT_CHAR_ANAEROBIC_THRESHHOLD = ( 0x2A83 ),
  ATT_CHAR_AEROBIC_HEART_RATE_UPPER_LIMIT = ( 0x2A84 ),
  ATT_CHAR_DATE_OF_BIRTH = ( 0x2A85 ),
  ATT_CHAR_DATE_OF_THRESHOLD_ASSESSMENT = ( 0x2A86 ),
  ATT_CHAR_EMAIL_ADDRESS = ( 0x2A87 ),
  ATT_CHAR_FAT_BURN_HEART_RATE_LOWER_LIMIT = ( 0x2A88 ),
  ATT_CHAR_FAT_BURN_HEART_RATE_UPPER_LIMIT = ( 0x2A89 ),
  ATT_CHAR_FIRST_NAME = ( 0x2A8A ),
  ATT_CHAR_FIVE_ZONE_HEART_RATE_LIMITS = ( 0x2A8B ),
  ATT_CHAR_GENDER = ( 0x2A8C ),
  ATT_CHAR_MAX_HEART_RATE = ( 0x2A8D ),
  ATT_CHAR_HEIGHT = ( 0x2A8E ),
  ATT_CHAR_HIP_CIRCUMFERENCE = ( 0x2A8F ),
  ATT_CHAR_LAST_NAME = ( 0x2A90 ),
  ATT_CHAR_MAXIMUM_RECOMMENDED_HEART_RATE = ( 0x2A91 ),
  ATT_CHAR_RESTING_HEART_RATE = ( 0x2A92 ),
  ATT_CHAR_SPORT_TYPE_FOR_AEROBIC_AND_ANAEROBIC_THRESHOLDS = ( 0x2A93 ),
  ATT_CHAR_THREE_ZONE_HEART_RATE_LIMITS = ( 0x2A94 ),
  ATT_CHAR_TWO_ZONE_HEART_RATE_LIMIT = ( 0x2A95 ),
  ATT_CHAR_VO2_MAX = ( 0x2A96 ),
  ATT_CHAR_WAIST_CIRCUMFERENCE = ( 0x2A97 ),
  ATT_CHAR_WEIGHT = ( 0x2A98 ),
  ATT_CHAR_DATABASE_CHANGE_INCREMENT = ( 0x2A99 ),
  ATT_CHAR_USER_INDEX = ( 0x2A9A ),
  ATT_CHAR_BODY_COMPOSITION_FEATURE = ( 0x2A9B ),
  ATT_CHAR_BODY_COMPOSITION_MEASUREMENT = ( 0x2A9C ),
  ATT_CHAR_WEIGHT_MEASUREMENT = ( 0x2A9D ),
  ATT_CHAR_WEIGHT_SCALE_FEATURE = ( 0x2A9E ),
  ATT_CHAR_USER_CONTROL_POINT = ( 0x2A9F ),
  ATT_CHAR_MAGN_FLUX_2D = ( 0x2AA0 ),
  ATT_CHAR_MAGN_FLUX_3D = ( 0x2AA1 ),
  ATT_CHAR_LANGUAGE = ( 0x2AA2 ),
  ATT_CHAR_BAR_PRES_TREND = ( 0x2AA3 ),
  ATT_CHAR_CTL_ADDR_RESOL_SUPP = ( 0x2AA6 ),
  ATT_CHAR_CGM_MEASUREMENT = ( 0x2AA7 ),
  ATT_CHAR_CGM_FEATURES = ( 0x2AA8 ),
  ATT_CHAR_CGM_STATUS = ( 0x2AA9 ),
  ATT_CHAR_CGM_SESSION_START = ( 0x2AAA ),
  ATT_CHAR_CGM_SESSION_RUN = ( 0x2AAB ),
  ATT_CHAR_CGM_SPECIFIC_OPS_CTRL_PT = ( 0x2AAC ),
  ATT_CHAR_RSLV_PRIV_ADDR_ONLY = ( 0x2AC9 ),
  ATT_CHAR_MESH_PROV_DATA_IN = ( 0x2ADB ),
  ATT_CHAR_MESH_PROV_DATA_OUT = ( 0x2ADC ),
  ATT_CHAR_MESH_PROXY_DATA_IN = ( 0x2ADD ),
  ATT_CHAR_MESH_PROXY_DATA_OUT = ( 0x2ADE )
}
 Common 16-bit Universal Unique Identifier. More...
 
enum  {
  ATT_FORMAT_BOOL = 0x01,
  ATT_FORMAT_2BIT,
  ATT_FORMAT_NIBBLE,
  ATT_FORMAT_UINT8,
  ATT_FORMAT_UINT12,
  ATT_FORMAT_UINT16,
  ATT_FORMAT_UINT24,
  ATT_FORMAT_UINT32,
  ATT_FORMAT_UINT48,
  ATT_FORMAT_UINT64,
  ATT_FORMAT_UINT128,
  ATT_FORMAT_SINT8,
  ATT_FORMAT_SINT12,
  ATT_FORMAT_SINT16,
  ATT_FORMAT_SINT24,
  ATT_FORMAT_SINT32,
  ATT_FORMAT_SINT48,
  ATT_FORMAT_SINT64,
  ATT_FORMAT_SINT128,
  ATT_FORMAT_FLOAT32,
  ATT_FORMAT_FLOAT64,
  ATT_FORMAT_SFLOAT,
  ATT_FORMAT_FLOAT,
  ATT_FORMAT_DUINT16,
  ATT_FORMAT_UTF8S,
  ATT_FORMAT_UTF16S,
  ATT_FORMAT_STRUCT,
  ATT_FORMAT_LAST
}
 Format for Characteristic Presentation. More...
 
enum  att_ccc_val {
  ATT_CCC_STOP_NTFIND = 0x0000,
  ATT_CCC_START_NTF,
  ATT_CCC_START_IND
}
 Client Characteristic Configuration Codes. More...
 
enum  attm_perm_mask {
  PERM_MASK_ALL = 0x0000,
  PERM_MASK_RP = 0x0003,
  PERM_POS_RP = 0,
  PERM_MASK_WP = 0x000C,
  PERM_POS_WP = 2,
  PERM_MASK_IP = 0x0030,
  PERM_POS_IP = 4,
  PERM_MASK_NP = 0x00C0,
  PERM_POS_NP = 6,
  PERM_MASK_BROADCAST = 0x0100,
  PERM_POS_BROADCAST = 8,
  PERM_MASK_RD = 0x0200,
  PERM_POS_RD = 9,
  PERM_MASK_WRITE_COMMAND = 0x0400,
  PERM_POS_WRITE_COMMAND = 10,
  PERM_MASK_WRITE_REQ = 0x0800,
  PERM_POS_WRITE_REQ = 11,
  PERM_MASK_NTF = 0x1000,
  PERM_POS_NTF = 12,
  PERM_MASK_IND = 0x2000,
  PERM_POS_IND = 13,
  PERM_MASK_WRITE_SIGNED = 0x4000,
  PERM_POS_WRITE_SIGNED = 14,
  PERM_MASK_EXT = 0x8000,
  PERM_POS_EXT = 15,
  PERM_MASK_PROP = 0xFF00,
  PERM_POS_PROP = 8
}
 
enum  attm_value_perm_mask {
  PERM_MASK_MAX_LEN = 0x0FFF,
  PERM_POS_MAX_LEN = 0,
  PERM_MASK_VAL_OFFSET = 0x0FFF,
  PERM_POS_VAL_OFFSET = 0,
  PERM_MASK_EKS = 0x1000,
  PERM_POS_EKS = 12,
  PERM_MASK_UUID_LEN = 0x6000,
  PERM_POS_UUID_LEN = 13,
  PERM_MASK_RI = 0x8000,
  PERM_POS_RI = 15
}
 
enum  attm_svc_perm_mask {
  PERM_MASK_SVC_MI = 0x01,
  PERM_POS_SVC_MI = 0,
  PERM_MASK_SVC_EKS = 0x02,
  PERM_POS_SVC_EKS = 1,
  PERM_MASK_SVC_AUTH = 0x0C,
  PERM_POS_SVC_AUTH = 2,
  PERM_MASK_SVC_DIS = 0x10,
  PERM_POS_SVC_DIS = 4,
  PERM_MASK_SVC_UUID_LEN = 0x60,
  PERM_POS_SVC_UUID_LEN = 5,
  PERM_MASK_SVC_SECONDARY = 0x80,
  PERM_POS_SVC_SECONDARY = 7
}
 
enum  {
  PERM_RIGHT_DISABLE = 0,
  PERM_RIGHT_ENABLE = 1
}
 Attribute & Service access mode. More...
 
enum  {
  PERM_RIGHT_NO_AUTH = 0,
  PERM_RIGHT_UNAUTH = 1,
  PERM_RIGHT_AUTH = 2,
  PERM_RIGHT_SEC_CON = 3
}
 Attribute & Service access rights. More...
 
enum  {
  PERM_UUID_16 = 0,
  PERM_RIGHT_UUID_16 = 0,
  PERM_UUID_32 = 1,
  PERM_RIGHT_UUID_32 = 1,
  PERM_UUID_128 = 2,
  PERM_RIGHT_UUID_128 = 2,
  PERM_UUID_RFU = 3
}
 Attribute & Service UUID Length. More...
 
enum  {
  ATT_CANCEL_ALL_PREPARED_WRITES = 0x00,
  ATT_EXECUTE_ALL_PREPARED_WRITES
}
 execute flags More...
 

Detailed Description

BLE Attribute Protocol definitions.

The ATT block contains the procedures for discovering, reading, writing and indicating attributes to peer device . It also defines a number of items that caters to the security aspect of the block as access to some information may require both authorization and an authenticated and encrypted physical link before an attribute can be read or written

Macro Definition Documentation

◆ ATT_BT_UUID_128

#define ATT_BT_UUID_128
Value:
{0xFB, 0x34, 0x9B, 0x5F, 0x80, 0x00, 0x00, 0x80, \
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}

◆ ATT_UUID_LEN

#define ATT_UUID_LEN (   uuid_len_perm)
Value:
((uuid_len_perm == 0) ? ATT_UUID_16_LEN : \
((uuid_len_perm == 1) ? ATT_UUID_32_LEN : \
((uuid_len_perm == 2) ? ATT_UUID_128_LEN : 0)))

Retrieve UUID LEN from UUID Length Permission.

◆ PERM_IS_SET

#define PERM_IS_SET (   perm,
  access,
  right 
)
Value:
(((perm) & (((PERM_RIGHT_ ## right) << (PERM_POS_ ## access))) \
& (PERM_MASK_ ## access)) == PERM(access, right))

Macro used know if permission is set or not.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Common 16-bit Universal Unique Identifier.

Enumerator
ATT_SVC_GENERIC_ACCESS 

Generic Access Profile.

ATT_SVC_GENERIC_ATTRIBUTE 

Attribute Profile.

ATT_SVC_IMMEDIATE_ALERT 

Immediate alert Service.

ATT_SVC_LINK_LOSS 

Link Loss Service.

ATT_SVC_TX_POWER 

Tx Power Service.

ATT_SVC_CURRENT_TIME 

Current Time Service Service.

ATT_SVC_REF_TIME_UPDATE 

Reference Time Update Service.

ATT_SVC_NEXT_DST_CHANGE 

Next DST Change Service.

ATT_SVC_GLUCOSE 

Glucose Service.

ATT_SVC_HEALTH_THERMOM 

Health Thermometer Service.

ATT_SVC_DEVICE_INFO 

Device Information Service.

ATT_SVC_HEART_RATE 

Heart Rate Service.

ATT_SVC_PHONE_ALERT_STATUS 

Phone Alert Status Service.

ATT_SVC_BATTERY_SERVICE 

Battery Service.

ATT_SVC_BLOOD_PRESSURE 

Blood Pressure Service.

ATT_SVC_ALERT_NTF 

Alert Notification Service.

ATT_SVC_HID 

HID Service.

ATT_SVC_SCAN_PARAMETERS 

Scan Parameters Service.

ATT_SVC_RUNNING_SPEED_CADENCE 

Running Speed and Cadence Service.

ATT_SVC_CYCLING_SPEED_CADENCE 

Cycling Speed and Cadence Service.

ATT_SVC_CYCLING_POWER 

Cycling Power Service.

ATT_SVC_LOCATION_AND_NAVIGATION 

Location and Navigation Service.

ATT_SVC_ENVIRONMENTAL_SENSING 

Environmental Sensing Service.

ATT_SVC_BODY_COMPOSITION 

Body Composition Service.

ATT_SVC_USER_DATA 

User Data Service.

ATT_SVC_WEIGHT_SCALE 

Weight Scale Service.

ATT_SVC_BOND_MANAGEMENT 

Bond Management Service.

ATT_SVC_CONTINUOUS_GLUCOSE_MONITORING 

Continuous Glucose Monitoring Service.

ATT_SVC_IP_SUPPORT 

Internet Protocol Support Service.

ATT_SVC_INDOOR_POSITIONING 

Indoor Positioning Service.

ATT_SVC_PULSE_OXIMETER 

Pulse Oximeter Service.

ATT_SVC_HTTP_PROXY 

HTTP Proxy Service.

ATT_SVC_TRANSPORT_DISCOVERY 

Transport Discovery Service.

ATT_SVC_OBJECT_TRANSFER 

Object Transfer Service.

ATT_SVC_MESH_PROVISIONING 

Mesh Provisioning Service.

ATT_SVC_MESH_PROXY 

Mesh Proxy Service.

ATT_UNIT_UNITLESS 

No defined unit.

ATT_UNIT_METRE 

Length Unit - Metre.

ATT_UNIT_KG 

Mass unit - Kilogram.

ATT_UNIT_SECOND 

Time unit - second.

ATT_UNIT_AMPERE 

Electric current unit - Ampere.

ATT_UNIT_KELVIN 

Thermodynamic Temperature unit - Kelvin.

ATT_UNIT_MOLE 

Amount of substance unit - mole.

ATT_UNIT_CANDELA 

Luminous intensity unit - candela.

ATT_UNIT_SQ_METRE 

Area unit - square metres.

ATT_UNIT_CUBIC_METRE 

Colume unit - cubic metres.

ATT_UNIT_METRE_PER_SECOND 

Velocity unit - metres per second.

ATT_UNIT_METRES_PER_SEC_SQ 

Acceleration unit - metres per second squared.

ATT_UNIT_RECIPROCAL_METRE 

Wavenumber unit - reciprocal metre.

ATT_UNIT_DENS_KG_PER_CUBIC_METRE 

Density unit - kilogram per cubic metre.

ATT_UNIT_KG_PER_SQ_METRE 

Surface density unit - kilogram per square metre.

ATT_UNIT_CUBIC_METRE_PER_KG 

Specific volume unit - cubic metre per kilogram.

ATT_UNIT_AMPERE_PER_SQ_METRE 

Current density unit - ampere per square metre.

ATT_UNIT_AMPERE_PER_METRE 

Magnetic field strength unit - Ampere per metre.

ATT_UNIT_MOLE_PER_CUBIC_METRE 

Amount concentration unit - mole per cubic metre.

ATT_UNIT_MASS_KG_PER_CUBIC_METRE 

Mass Concentration unit - kilogram per cubic metre.

ATT_UNIT_CANDELA_PER_SQ_METRE 

Luminance unit - candela per square metre.

ATT_UNIT_REFRACTIVE_INDEX 

Refractive index unit.

ATT_UNIT_RELATIVE_PERMEABILITY 

Relative permeability unit.

ATT_UNIT_RADIAN 

Plane angle unit - radian.

ATT_UNIT_STERADIAN 

Solid angle unit - steradian.

ATT_UNIT_HERTZ 

Frequency unit - Hertz.

ATT_UNIT_NEWTON 

Force unit - Newton.

ATT_UNIT_PASCAL 

Pressure unit - Pascal.

ATT_UNIT_JOULE 

Energy unit - Joule.

ATT_UNIT_WATT 

Power unit - Watt.

ATT_UNIT_COULOMB 

electric Charge unit - Coulomb

ATT_UNIT_VOLT 

Electric potential difference - Volt.

ATT_UNIT_FARAD 

Capacitance unit - Farad.

ATT_UNIT_OHM 

electric resistance unit - Ohm

ATT_UNIT_SIEMENS 

Electric conductance - Siemens.

ATT_UNIT_WEBER 

Magnetic flux unit - Weber.

ATT_UNIT_TESLA 

Magnetic flux density unit - Tesla.

ATT_UNIT_HENRY 

Inductance unit - Henry.

ATT_UNIT_CELSIUS 

Temperature unit - degree Celsius.

ATT_UNIT_LUMEN 

Luminous flux unit - lumen.

ATT_UNIT_LUX 

Illuminance unit - lux.

ATT_UNIT_BECQUEREL 

Activity referred to a radionuclide unit - becquerel.

ATT_UNIT_GRAY 

Absorbed dose unit - Gray.

ATT_UNIT_SIEVERT 

Dose equivalent unit - Sievert.

ATT_UNIT_KATAL 

Catalytic activity unit - Katal.

ATT_UNIT_PASCAL_SECOND 

Synamic viscosity unit - Pascal second.

ATT_UNIT_NEWTON_METRE 

Moment of force unit - Newton metre.

ATT_UNIT_NEWTON_PER_METRE 

surface tension unit - Newton per metre

ATT_UNIT_RADIAN_PER_SECOND 

Angular velocity unit - radian per second.

ATT_UNIT_RADIAN_PER_SECOND_SQ 

Angular acceleration unit - radian per second squared.

ATT_UNIT_WATT_PER_SQ_METRE 

Heat flux density unit - Watt per square metre.

ATT_UNIT_JOULE_PER_KELVIN 

HEat capacity unit - Joule per Kelvin.

ATT_UNIT_JOULE_PER_KG_KELVIN 

Specific heat capacity unit - Joule per kilogram kelvin.

ATT_UNIT_JOULE_PER_KG 

Specific Energy unit - Joule per kilogram.

ATT_UNIT_WATT_PER_METRE_KELVIN 

Thermal conductivity - Watt per metre Kelvin.

ATT_UNIT_JOULE_PER_CUBIC_METRE 

Energy Density unit - joule per cubic metre.

ATT_UNIT_VOLT_PER_METRE 

Electric field strength unit - volt per metre.

ATT_UNIT_COULOMB_PER_CUBIC_METRE 

Electric charge density unit - coulomb per cubic metre.

ATT_UNIT_SURF_COULOMB_PER_SQ_METRE 

Surface charge density unit - coulomb per square metre.

ATT_UNIT_FLUX_COULOMB_PER_SQ_METRE 

Electric flux density unit - coulomb per square metre.

ATT_UNIT_FARAD_PER_METRE 

Permittivity unit - farad per metre.

ATT_UNIT_HENRY_PER_METRE 

Permeability unit - henry per metre.

ATT_UNIT_JOULE_PER_MOLE 

Molar energy unit - joule per mole.

ATT_UNIT_JOULE_PER_MOLE_KELVIN 

Molar entropy unit - joule per mole kelvin.

ATT_UNIT_COULOMB_PER_KG 

Exposure unit - coulomb per kilogram.

ATT_UNIT_GRAY_PER_SECOND 

Absorbed dose rate unit - gray per second.

ATT_UNIT_WATT_PER_STERADIAN 

Radiant intensity unit - watt per steradian.

ATT_UNIT_WATT_PER_SQ_METRE_STERADIAN 

Radiance unit - watt per square meter steradian.

ATT_UNIT_KATAL_PER_CUBIC_METRE 

Catalytic activity concentration unit - katal per cubic metre.

ATT_UNIT_MINUTE 

Time unit - minute.

ATT_UNIT_HOUR 

Time unit - hour.

ATT_UNIT_DAY 

Time unit - day.

ATT_UNIT_ANGLE_DEGREE 

Plane angle unit - degree.

ATT_UNIT_ANGLE_MINUTE 

Plane angle unit - minute.

ATT_UNIT_ANGLE_SECOND 

Plane angle unit - second.

ATT_UNIT_HECTARE 

Area unit - hectare.

ATT_UNIT_LITRE 

Volume unit - litre.

ATT_UNIT_TONNE 

Mass unit - tonne.

ATT_UNIT_BAR 

Pressure unit - bar.

ATT_UNIT_MM_MERCURY 

Pressure unit - millimetre of mercury.

ATT_UNIT_ANGSTROM 

Length unit - angstrom.

ATT_UNIT_NAUTICAL_MILE 

Length unit - nautical mile.

ATT_UNIT_BARN 

Area unit - barn.

ATT_UNIT_KNOT 

Velocity unit - knot.

ATT_UNIT_NEPER 

Logarithmic radio quantity unit - neper.

ATT_UNIT_BEL 

Logarithmic radio quantity unit - bel.

ATT_UNIT_YARD 

Length unit - yard.

ATT_UNIT_PARSEC 

Length unit - parsec.

ATT_UNIT_INCH 

length unit - inch

ATT_UNIT_FOOT 

length unit - foot

ATT_UNIT_MILE 

length unit - mile

ATT_UNIT_POUND_FORCE_PER_SQ_INCH 

pressure unit - pound-force per square inch

ATT_UNIT_KM_PER_HOUR 

velocity unit - kilometre per hour

ATT_UNIT_MILE_PER_HOUR 

velocity unit - mile per hour

ATT_UNIT_REVOLUTION_PER_MINUTE 

angular velocity unit - revolution per minute

ATT_UNIT_GRAM_CALORIE 

energy unit - gram calorie

ATT_UNIT_KG_CALORIE 

energy unit - kilogram calorie

ATT_UNIT_KILOWATT_HOUR 

energy unit - kilowatt hour

ATT_UNIT_FAHRENHEIT 

thermodynamic temperature unit - degree Fahrenheit

ATT_UNIT_PERCENTAGE 

percentage

ATT_UNIT_PER_MILLE 

per mille

ATT_UNIT_BEATS_PER_MINUTE 

period unit - beats per minute)

ATT_UNIT_AMPERE_HOURS 

electric charge unit - ampere hours

ATT_UNIT_MILLIGRAM_PER_DECILITRE 

mass density unit - milligram per decilitre

ATT_UNIT_MILLIMOLE_PER_LITRE 

mass density unit - millimole per litre

ATT_UNIT_YEAR 

time unit - year

ATT_DECL_PRIMARY_SERVICE 

Primary service Declaration.

ATT_DECL_SECONDARY_SERVICE 

Secondary service Declaration.

ATT_DECL_INCLUDE 

Include Declaration.

ATT_DECL_CHARACTERISTIC 

Characteristic Declaration.

ATT_DESC_CHAR_EXT_PROPERTIES 

Characteristic extended properties.

ATT_DESC_CHAR_USER_DESCRIPTION 

Characteristic user description.

ATT_DESC_CLIENT_CHAR_CFG 

Client characteristic configuration.

ATT_DESC_SERVER_CHAR_CFG 

Server characteristic configuration.

ATT_DESC_CHAR_PRES_FORMAT 

Characteristic Presentation Format.

ATT_DESC_CHAR_AGGREGATE_FORMAT 

Characteristic Aggregate Format.

ATT_DESC_VALID_RANGE 

Valid Range.

ATT_DESC_EXT_REPORT_REF 

External Report Reference.

ATT_DESC_REPORT_REF 

Report Reference.

ATT_DESC_ES_CONFIGURATION 

Environmental Sensing Configuration.

ATT_DESC_ES_MEASUREMENT 

Environmental Sensing Measurement.

ATT_DESC_ES_TRIGGER_SETTING 

Environmental Sensing Trigger Setting.

ATT_CHAR_DEVICE_NAME 

Device name.

ATT_CHAR_APPEARANCE 

Appearance.

ATT_CHAR_PRIVACY_FLAG 

Privacy flag.

ATT_CHAR_RECONNECTION_ADDR 

Reconnection address.

ATT_CHAR_PERIPH_PREF_CON_PARAM 

Peripheral preferred connection parameters.

ATT_CHAR_SERVICE_CHANGED 

Service handles changed.

ATT_CHAR_ALERT_LEVEL 

Alert Level characteristic.

ATT_CHAR_TX_POWER_LEVEL 

Tx Power Level.

ATT_CHAR_DATE_TIME 

Date Time.

ATT_CHAR_DAY_WEEK 

Day of Week.

ATT_CHAR_DAY_DATE_TIME 

Day Date Time.

ATT_CHAR_EXACT_TIME_256 

Exact time 256.

ATT_CHAR_DST_OFFSET 

DST Offset.

ATT_CHAR_TIME_ZONE 

Time zone.

ATT_CHAR_LOCAL_TIME_INFO 

Local time Information.

ATT_CHAR_TIME_WITH_DST 

Time with DST.

ATT_CHAR_TIME_ACCURACY 

Time Accuracy.

ATT_CHAR_TIME_SOURCE 

Time Source.

ATT_CHAR_REFERENCE_TIME_INFO 

Reference Time Information.

ATT_CHAR_TIME_UPDATE_CNTL_POINT 

Time Update Control Point.

ATT_CHAR_TIME_UPDATE_STATE 

Time Update State.

ATT_CHAR_GLUCOSE_MEAS 

Glucose Measurement.

ATT_CHAR_BATTERY_LEVEL 

Battery Level.

ATT_CHAR_TEMPERATURE_MEAS 

Temperature Measurement.

ATT_CHAR_TEMPERATURE_TYPE 

Temperature Type.

ATT_CHAR_INTERMED_TEMPERATURE 

Intermediate Temperature.

ATT_CHAR_MEAS_INTERVAL 

Measurement Interval.

ATT_CHAR_BOOT_KB_IN_REPORT 

Boot Keyboard Input Report.

ATT_CHAR_SYS_ID 

System ID.

ATT_CHAR_MODEL_NB 

Model Number String.

ATT_CHAR_SERIAL_NB 

Serial Number String.

ATT_CHAR_FW_REV 

Firmware Revision String.

ATT_CHAR_HW_REV 

Hardware revision String.

ATT_CHAR_SW_REV 

Software Revision String.

ATT_CHAR_MANUF_NAME 

Manufacturer Name String.

ATT_CHAR_IEEE_CERTIF 

IEEE Regulatory Certification Data List.

ATT_CHAR_CT_TIME 

CT Time.

ATT_CHAR_MAGN_DECLINE 

Magnetic Declination.

ATT_CHAR_SCAN_REFRESH 

Scan Refresh.

ATT_CHAR_BOOT_KB_OUT_REPORT 

Boot Keyboard Output Report.

ATT_CHAR_BOOT_MOUSE_IN_REPORT 

Boot Mouse Input Report.

ATT_CHAR_GLUCOSE_MEAS_CTX 

Glucose Measurement Context.

ATT_CHAR_BLOOD_PRESSURE_MEAS 

Blood Pressure Measurement.

ATT_CHAR_INTERMEDIATE_CUFF_PRESSURE 

Intermediate Cuff Pressure.

ATT_CHAR_HEART_RATE_MEAS 

Heart Rate Measurement.

ATT_CHAR_BODY_SENSOR_LOCATION 

Body Sensor Location.

ATT_CHAR_HEART_RATE_CNTL_POINT 

Heart Rate Control Point.

ATT_CHAR_ALERT_STATUS 

Alert Status.

ATT_CHAR_RINGER_CNTL_POINT 

Ringer Control Point.

ATT_CHAR_RINGER_SETTING 

Ringer Setting.

ATT_CHAR_ALERT_CAT_ID_BIT_MASK 

Alert Category ID Bit Mask.

ATT_CHAR_ALERT_CAT_ID 

Alert Category ID.

ATT_CHAR_ALERT_NTF_CTNL_PT 

Alert Notification Control Point.

ATT_CHAR_UNREAD_ALERT_STATUS 

Unread Alert Status.

ATT_CHAR_NEW_ALERT 

New Alert.

ATT_CHAR_SUP_NEW_ALERT_CAT 

Supported New Alert Category.

ATT_CHAR_SUP_UNREAD_ALERT_CAT 

Supported Unread Alert Category.

ATT_CHAR_BLOOD_PRESSURE_FEATURE 

Blood Pressure Feature.

ATT_CHAR_HID_INFO 

HID Information.

ATT_CHAR_REPORT_MAP 

Report Map.

ATT_CHAR_HID_CTNL_PT 

HID Control Point.

ATT_CHAR_REPORT 

Report.

ATT_CHAR_PROTOCOL_MODE 

Protocol Mode.

ATT_CHAR_SCAN_INTV_WD 

Scan Interval Window.

ATT_CHAR_PNP_ID 

PnP ID.

ATT_CHAR_GLUCOSE_FEATURE 

Glucose Feature.

ATT_CHAR_REC_ACCESS_CTRL_PT 

Record access control point.

ATT_CHAR_RSC_MEAS 

RSC Measurement.

ATT_CHAR_RSC_FEAT 

RSC Feature.

ATT_CHAR_SC_CNTL_PT 

SC Control Point.

ATT_CHAR_CSC_MEAS 

CSC Measurement.

ATT_CHAR_CSC_FEAT 

CSC Feature.

ATT_CHAR_SENSOR_LOC 

Sensor Location.

ATT_CHAR_PLX_SPOT_CHECK_MEASUREMENT_LOC 

PLX Spot-Check Measurement.

ATT_CHAR_PLX_CONTINUOUS_MEASUREMENT_LOC 

PLX Continuous Measurement.

ATT_CHAR_PLX_FEATURES_LOC 

PLX Features.

ATT_CHAR_CP_MEAS 

CP Measurement.

ATT_CHAR_CP_VECTOR 

CP Vector.

ATT_CHAR_CP_FEAT 

CP Feature.

ATT_CHAR_CP_CNTL_PT 

CP Control Point.

ATT_CHAR_LOC_SPEED 

Location and Speed.

ATT_CHAR_NAVIGATION 

Navigation.

ATT_CHAR_POS_QUALITY 

Position Quality.

ATT_CHAR_LN_FEAT 

LN Feature.

ATT_CHAR_LN_CNTL_PT 

LN Control Point.

ATT_CHAR_ELEVATION 

Elevation.

ATT_CHAR_PRESSURE 

Pressure.

ATT_CHAR_TEMPERATURE 

Temperature.

ATT_CHAR_HUMIDITY 

Humidity.

ATT_CHAR_TRUE_WIND_SPEED 

True Wind Speed.

ATT_CHAR_TRUE_WIND_DIR 

True Wind Direction.

ATT_CHAR_APRNT_WIND_SPEED 

Apparent Wind Speed.

ATT_CHAR_APRNT_WIND_DIRECTION 

Apparent Wind Direction.

ATT_CHAR_GUST_FACTOR 

Gust Factor.

ATT_CHAR_POLLEN_CONC 

Pollen Concentration.

ATT_CHAR_UV_INDEX 

UV Index.

ATT_CHAR_IRRADIANCE 

Irradiance.

ATT_CHAR_RAINFALL 

Rainfall.

ATT_CHAR_WIND_CHILL 

Wind Chill.

ATT_CHAR_HEAT_INDEX 

Heat Index.

ATT_CHAR_DEW_POINT 

Dew Point.

ATT_CHAR_DESCRIPTOR_VALUE_CHANGED 

Descriptor Value Changed.

ATT_CHAR_AEROBIC_HEART_RATE_LOWER_LIMIT 

Aerobic Heart Rate Lower Limit.

ATT_CHAR_AEROBIC_THRESHHOLD 

Aerobic Threshhold.

ATT_CHAR_AGE 

Age.

ATT_CHAR_ANAEROBIC_HEART_RATE_LOWER_LIMIT 

Anaerobic Heart Rate Lower Limit.

ATT_CHAR_ANAEROBIC_HEART_RATE_UPPER_LIMIT 

Anaerobic Heart Rate Upper Limit.

ATT_CHAR_ANAEROBIC_THRESHHOLD 

Anaerobic Threshhold.

ATT_CHAR_AEROBIC_HEART_RATE_UPPER_LIMIT 

Aerobic Heart Rate Upper Limit.

ATT_CHAR_DATE_OF_BIRTH 

Date Of Birth.

ATT_CHAR_DATE_OF_THRESHOLD_ASSESSMENT 

Date Of Threshold Assessment.

ATT_CHAR_EMAIL_ADDRESS 

Email Address.

ATT_CHAR_FAT_BURN_HEART_RATE_LOWER_LIMIT 

Fat Burn Heart Rate Lower Limit.

ATT_CHAR_FAT_BURN_HEART_RATE_UPPER_LIMIT 

Fat Burn Heart Rate Upper Limit.

ATT_CHAR_FIRST_NAME 

First Name.

ATT_CHAR_FIVE_ZONE_HEART_RATE_LIMITS 

Five Zone Heart Rate Limits.

ATT_CHAR_GENDER 

Gender.

ATT_CHAR_MAX_HEART_RATE 

Max Heart Rate.

ATT_CHAR_HEIGHT 

Height.

ATT_CHAR_HIP_CIRCUMFERENCE 

Hip Circumference.

ATT_CHAR_LAST_NAME 

Last Name.

ATT_CHAR_MAXIMUM_RECOMMENDED_HEART_RATE 

Maximum Recommended Heart Rate.

ATT_CHAR_RESTING_HEART_RATE 

Resting Heart Rate.

ATT_CHAR_SPORT_TYPE_FOR_AEROBIC_AND_ANAEROBIC_THRESHOLDS 

Sport Type For Aerobic And Anaerobic Thresholds.

ATT_CHAR_THREE_ZONE_HEART_RATE_LIMITS 

Three Zone Heart Rate Limits.

ATT_CHAR_TWO_ZONE_HEART_RATE_LIMIT 

Two Zone Heart Rate Limit.

ATT_CHAR_VO2_MAX 

Vo2 Max.

ATT_CHAR_WAIST_CIRCUMFERENCE 

Waist Circumference.

ATT_CHAR_WEIGHT 

Weight.

ATT_CHAR_DATABASE_CHANGE_INCREMENT 

Database Change Increment.

ATT_CHAR_USER_INDEX 

User Index.

ATT_CHAR_BODY_COMPOSITION_FEATURE 

Body Composition Feature.

ATT_CHAR_BODY_COMPOSITION_MEASUREMENT 

Body Composition Measurement.

ATT_CHAR_WEIGHT_MEASUREMENT 

Weight Measurement.

ATT_CHAR_WEIGHT_SCALE_FEATURE 

Weight Scale Feature.

ATT_CHAR_USER_CONTROL_POINT 

User Control Point.

ATT_CHAR_MAGN_FLUX_2D 

Flux Density - 2D.

ATT_CHAR_MAGN_FLUX_3D 

Magnetic Flux Density - 3D.

ATT_CHAR_LANGUAGE 

Language string.

ATT_CHAR_BAR_PRES_TREND 

Barometric Pressure Trend.

ATT_CHAR_CTL_ADDR_RESOL_SUPP 

Central Address Resolution Support.

ATT_CHAR_CGM_MEASUREMENT 

CGM Measurement.

ATT_CHAR_CGM_FEATURES 

CGM Features.

ATT_CHAR_CGM_STATUS 

CGM Status.

ATT_CHAR_CGM_SESSION_START 

CGM Session Start.

ATT_CHAR_CGM_SESSION_RUN 

CGM Session Run.

ATT_CHAR_CGM_SPECIFIC_OPS_CTRL_PT 

CGM Specific Ops Control Point.

ATT_CHAR_RSLV_PRIV_ADDR_ONLY 

Resolvable Private Address only.

ATT_CHAR_MESH_PROV_DATA_IN 

Mesh Provisioning Data In.

ATT_CHAR_MESH_PROV_DATA_OUT 

Mesh Provisioning Data Out.

ATT_CHAR_MESH_PROXY_DATA_IN 

Mesh Proxy Data In.

ATT_CHAR_MESH_PROXY_DATA_OUT 

Mesh Proxy Data Out.

◆ anonymous enum

anonymous enum

Format for Characteristic Presentation.

Enumerator
ATT_FORMAT_BOOL 

unsigned 1-bit: true or false

ATT_FORMAT_2BIT 

unsigned 2-bit integer

ATT_FORMAT_NIBBLE 

unsigned 4-bit integer

ATT_FORMAT_UINT8 

unsigned 8-bit integer

ATT_FORMAT_UINT12 

unsigned 12-bit integer

ATT_FORMAT_UINT16 

unsigned 16-bit integer

ATT_FORMAT_UINT24 

unsigned 24-bit integer

ATT_FORMAT_UINT32 

unsigned 32-bit integer

ATT_FORMAT_UINT48 

unsigned 48-bit integer

ATT_FORMAT_UINT64 

unsigned 64-bit integer

ATT_FORMAT_UINT128 

unsigned 128-bit integer

ATT_FORMAT_SINT8 

signed 8-bit integer

ATT_FORMAT_SINT12 

signed 12-bit integer

ATT_FORMAT_SINT16 

signed 16-bit integer

ATT_FORMAT_SINT24 

signed 24-bit integer

ATT_FORMAT_SINT32 

signed 32-bit integer

ATT_FORMAT_SINT48 

signed 48-bit integer

ATT_FORMAT_SINT64 

signed 64-bit integer

ATT_FORMAT_SINT128 

signed 128-bit integer

ATT_FORMAT_FLOAT32 

IEEE-754 32-bit floating point.

ATT_FORMAT_FLOAT64 

IEEE-754 64-bit floating point.

ATT_FORMAT_SFLOAT 

IEEE-11073 16-bit SFLOAT.

ATT_FORMAT_FLOAT 

IEEE-11073 32-bit FLOAT.

ATT_FORMAT_DUINT16 

IEEE-20601 format.

ATT_FORMAT_UTF8S 

UTF-8 string.

ATT_FORMAT_UTF16S 

UTF-16 string.

ATT_FORMAT_STRUCT 

Opaque structure.

ATT_FORMAT_LAST 

Last format.

◆ anonymous enum

anonymous enum

Attribute & Service access mode.

Enumerator
PERM_RIGHT_DISABLE 

Disable access.

PERM_RIGHT_ENABLE 

Enable access.

◆ anonymous enum

anonymous enum

Attribute & Service access rights.

Enumerator
PERM_RIGHT_NO_AUTH 

No Authentication.

PERM_RIGHT_UNAUTH 

Access Requires Unauthenticated link.

PERM_RIGHT_AUTH 

Access Requires Authenticated link.

PERM_RIGHT_SEC_CON 

Access Requires Secure Connection link.

◆ anonymous enum

anonymous enum

Attribute & Service UUID Length.

Enumerator
PERM_UUID_16 

16 bits UUID

PERM_UUID_32 

32 bits UUID

PERM_UUID_128 

128 bits UUID

PERM_UUID_RFU 

Invalid.

◆ anonymous enum

anonymous enum

execute flags

Enumerator
ATT_CANCEL_ALL_PREPARED_WRITES 

Cancel All the Reliable Writes.

ATT_EXECUTE_ALL_PREPARED_WRITES 

Write All the Reliable Writes.

◆ att_ccc_val

Client Characteristic Configuration Codes.

Enumerator
ATT_CCC_STOP_NTFIND 

Stop notification/indication.

ATT_CCC_START_NTF 

Start notification.

ATT_CCC_START_IND 

Start indication.

◆ attm_perm_mask

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+ |EXT | WS | I | N | WR | WC | RD | B | NP | IP | WP | RP | +-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+

Bit [0-1] : Read Permission (0 = NO_AUTH, 1 = UNAUTH, 2 = AUTH, 3 = SEC_CON) Bit [2-3] : Write Permission (0 = NO_AUTH, 1 = UNAUTH, 2 = AUTH, 3 = SEC_CON) Bit [4-5] : Indication Permission (0 = NO_AUTH, 1 = UNAUTH, 2 = AUTH, 3 = SEC_CON) Bit [6-7] : Notification Permission (0 = NO_AUTH, 1 = UNAUTH, 2 = AUTH, 3 = SEC_CON)

Bit [8] : Extended properties present (only relevant for a characteristic value) Bit [9] : Broadcast permission (only relevant for a characteristic value) Bit [10] : Write Command accepted Bit [11] : Write Signed accepted Bit [12] : Write Request accepted Bit [13] : Encryption key Size must be 16 bytes

Enumerator
PERM_MASK_ALL 

retrieve all permission info

PERM_MASK_RP 

Read Permission Mask.

PERM_MASK_WP 

Write Permission Mask.

PERM_MASK_IP 

Indication Access Mask.

PERM_MASK_NP 

Notification Access Mask.

PERM_MASK_BROADCAST 

Broadcast descriptor present.

PERM_MASK_RD 

Read Access Mask.

PERM_MASK_WRITE_COMMAND 

Write Command Enabled attribute Mask.

PERM_MASK_WRITE_REQ 

Write Request Enabled attribute Mask.

PERM_MASK_NTF 

Notification Access Mask.

PERM_MASK_IND 

Indication Access Mask.

PERM_MASK_WRITE_SIGNED 

Write Signed Enabled attribute Mask.

PERM_MASK_EXT 

Extended properties descriptor present.

PERM_MASK_PROP 

Properties.

◆ attm_svc_perm_mask

Service permissions

7 6 5 4 3 2 1 0 +-—+-—+-—+-—+-—+-—+-—+-—+ |SEC |UUID_LEN |DIS | AUTH |EKS | MI | +-—+-—+-—+-—+-—+-—+-—+-—+

Bit [0] : Task that manage service is multi-instantiated (Connection index is conveyed) Bit [1] : Encryption key Size must be 16 bytes Bit [2-3]: Service Permission (0 = NO_AUTH, 1 = UNAUTH, 2 = AUTH, 3 = Secure Connect) Bit [4] : Disable the service Bit [5-6]: UUID Length (0 = 16 bits, 1 = 32 bits, 2 = 128 bits, 3 = RFU) Bit [7] : Secondary Service (0 = Primary Service, 1 = Secondary Service)

Enumerator
PERM_MASK_SVC_MI 

Task that manage service is multi-instantiated.

PERM_MASK_SVC_EKS 

Check Encryption key size for service Access.

PERM_MASK_SVC_AUTH 

Service Permission authentication.

PERM_MASK_SVC_DIS 

Disable the service.

PERM_MASK_SVC_UUID_LEN 

Service UUID Length.

PERM_MASK_SVC_SECONDARY 

Service type Secondary.

◆ attm_value_perm_mask

Value permission bit field

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+ | RI |UUID_LEN |EKS | MAX_LEN (RI = 1) / Value Offset (RI = 0) | +-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+-—+

Bit [0-11] : Maximum Attribute Length or Value Offset pointer Bit [12] : Encryption key Size must be 16 bytes Bit [14-13]: UUID Length (0 = 16 bits, 1 = 32 bits, 2 = 128 bits, 3 = RFU) Bit [15] : Trigger Read Indication (0 = Value present in Database, 1 = Value not present in Database)

Enumerator
PERM_MASK_MAX_LEN 

Maximum Attribute Length.

PERM_MASK_VAL_OFFSET 

Attribute value Offset.

PERM_MASK_EKS 

Check Encryption key size Mask.

PERM_MASK_UUID_LEN 

UUID Length.

PERM_MASK_RI 

Read trigger Indication.

PERM
#define PERM(access, right)
Macro used to retrieve permission value from access and rights on attribute.
Definition: att.h:990