/* * Copyright (C) 2018 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @defgroup ble_defs Generic BLE defines * @ingroup ble * @brief General values defined by the BT standard * @{ * * @file * @brief General BLE values as defined by the BT standard * * @author Hauke Petersen */ #ifndef NET_BLE_H #define NET_BLE_H #ifdef __cplusplus extern "C" { #endif /** * @name BT version constants * @{ */ #define BLE_VERSION_40 (0x06) #define BLE_VERSION_41 (0x07) #define BLE_VERSION_42 (0x08) #define BLE_VERSION_50 (0x09) /** @} */ /** * @name Collections of general BLE constants * @{ */ #define BLE_AA_LEN (4U) /**< access address length */ #define BLE_ADDR_LEN (6U) /**< link layer address length */ #define BLE_CRC_LEN (3U) /**< CRC length */ #define BLE_CHANMAP_LEN (5U) /**< channel map length */ #define BLE_CHAN_NUMOF (40U) /**< number of available channels */ #define BLE_CHAN_ADV_NUMOF (3U) /**< number of advertising channels */ #define BLE_CHAN_DAT_NUMOF (37U) /**< number of data channels */ #define BLE_ADV_PDU_LEN (31U) /**< max size of legacy ADV packets */ #define BLE_ADV_PDU_LEN_EXT (251U) /**< max size of extended ADV packets */ /** @} */ /** * @name GATT Declaration UUIDs * * @see https://www.bluetooth.com/specifications/gatt/declarations * @{ */ #define BLE_DECL_PRI_SERVICE (0x2800) #define BLE_DECL_SEC_SERVICE (0x2801) #define BLE_DECL_INCLUDE (0x2802) #define BLE_DECL_CHAR (0x2803) /** @} */ /** * @name GATT descriptor UUIDs * * @see https://www.bluetooth.com/specifications/gatt/descriptors * @{ */ #define BLE_DESC_AGGR_FMT (0x2905) #define BLE_DESC_EXT_PROP (0x2900) #define BLE_DESC_PRES_FMT (0x2904) #define BLE_DESC_USER_DESC (0x2901) #define BLE_DESC_CLIENT_CONFIG (0x2902) #define BLE_DESC_ENV_CONFIG (0x290b) #define BLE_DESC_ENV_MEASUREMENT (0x290c) #define BLE_DESC_ENV_TRIGGER_SETTING (0x290d) #define BLE_DESC_EXT_REPORT_REF (0x2907) #define BLE_DESC_NUMOF_DIGITS (0x2909) #define BLE_DESC_REPORT_REF (0x2908) #define BLE_DESC_SERVER_CONFIG (0x2903) #define BLE_DESC_TIME_TRIGGER_SETTING (0x290e) #define BLE_DESC_VALID_RANGE (0x2906) #define BLE_DESC_VALUE_TRIGGER_SETTING (0x290a) /** @} */ /** * @name Selected GATT service UUIDs (16-bit) * * @see https://www.bluetooth.com/specifications/gatt/services * @{ */ #define BLE_GATT_SVC_GAP (0x1800) /**< GAP service */ #define BLE_GATT_SVC_GATT (0x1801) /**< GATT service */ #define BLE_GATT_SVC_DEVINFO (0x180a) /**< device info */ #define BLE_GATT_SVC_HRS (0x180d) /**< heart rate service */ #define BLE_GATT_SVC_BAS (0x180f) /**< battery service */ #define BLE_GATT_SVC_IPSS (0x1820) /**< IP protocol support */ /* XXX: custom services not defined by the BT SIG (random values) */ #define BLE_GATT_SVC_NDNSS (0x7e5e) /**< NDN support service */ /* add more on demand */ /** @} */ /** * @name Selected GATT characteristic UUIDs (16-bit) * * @see https://www.bluetooth.com/specifications/gatt/characteristics/ * @{ */ #define BLE_GATT_CHAR_BATTERY_LEVEL (0x2a19) /**< battery level */ #define BLE_GATT_CHAR_SYSTEM_ID (0x2a23) /**< system ID */ #define BLE_GATT_CHAR_MODEL_NUMBER_STR (0x2a24) /**< model number */ #define BLE_GATT_CHAR_SERIAL_NUMBER_STR (0x2a25) /**< serial number */ #define BLE_GATT_CHAR_FW_REV_STR (0x2a26) /**< firmware revision */ #define BLE_GATT_CHAR_HW_REV_STR (0x2a27) /**< hardware revision */ #define BLE_GATT_CHAR_SW_REV_STR (0x2a28) /**< software revision */ #define BLE_GATT_CHAR_MANUFACTURER_NAME (0x2a29) /**< manufacturer name */ #define BLE_GATT_CHAR_HEART_RATE_MEASURE (0x2a37) /**< heart rate measurement */ #define BLE_GATT_CHAR_BODY_SENSE_LOC (0x2a38) /**< body sensor location */ /** @} */ /** * @name Characteristic format types (8-bit) * * @see https://www.bluetooth.com/specifications/assigned-numbers/format-types * @{ */ #define BLE_UNIT_BLE_FMT_BOOL (0x01) #define BLE_UNIT_BLE_FMT_2bit (0x02) #define BLE_UNIT_BLE_FMT_NIBBLE (0x03) #define BLE_UNIT_BLE_FMT_UINT8 (0x04) #define BLE_UNIT_BLE_FMT_UINT12 (0x05) #define BLE_UNIT_BLE_FMT_UINT16 (0x06) #define BLE_UNIT_BLE_FMT_UINT24 (0x07) #define BLE_UNIT_BLE_FMT_UINT32 (0x08) #define BLE_UNIT_BLE_FMT_UINT48 (0x09) #define BLE_UNIT_BLE_FMT_UINT64 (0x0A) #define BLE_UNIT_BLE_FMT_UINT128 (0x0B) #define BLE_UNIT_BLE_FMT_SINT8 (0x0C) #define BLE_UNIT_BLE_FMT_SINT12 (0x0D) #define BLE_UNIT_BLE_FMT_SINT16 (0x0E) #define BLE_UNIT_BLE_FMT_SINT24 (0x0F) #define BLE_UNIT_BLE_FMT_SINT32 (0x10) #define BLE_UNIT_BLE_FMT_SINT48 (0x11) #define BLE_UNIT_BLE_FMT_SINT64 (0x12) #define BLE_UNIT_BLE_FMT_SINT128 (0x13) #define BLE_UNIT_BLE_FMT_FLOAT32 (0x14) #define BLE_UNIT_BLE_FMT_FLOAT64 (0x15) #define BLE_UNIT_BLE_FMT_SFLOAT (0x16) #define BLE_UNIT_BLE_FMT_FLOAT (0x17) #define BLE_UNIT_BLE_FMT_DUINT16 (0x18) #define BLE_UNIT_BLE_FMT_UTF8 (0x19) #define BLE_UNIT_BLE_FMT_UTF16 (0x1A) #define BLE_UNIT_BLE_FMT_STRUCT (0x1B) /** @} */ /** * @name Units (16-bit) * * @see https://www.bluetooth.com/specifications/assigned-numbers/units * @{ */ #define BLE_UNIT_NONE (0x2700) /**< no unit */ #define BLE_UNIT_BLE_UNIT_METRE (0x2701) /**< length [metre] */ #define BLE_UNIT_KILOGRAM (0x2702) /**< mass [kilogram] */ #define BLE_UNIT_SECOND (0x2703) /**< time [second] */ #define BLE_UNIT_AMPERE (0x2704) /**< electric_current [ampere] */ #define BLE_UNIT_KELVIN (0x2705) /**< thermodynamic_temperature [kelvin] */ #define BLE_UNIT_MOLE (0x2706) /**< amount_of_substance [mole] */ #define BLE_UNIT_CANDELA (0x2707) /**< luminous_intensity [candela] */ #define BLE_UNIT_SQUARE_METRES (0x2710) /**< area [square_metres] */ #define BLE_UNIT_CUBIC_METRES (0x2711) /**< volume [cubic_metres] */ #define BLE_UNIT_METRES_PER_SECOND (0x2712) /**< velocity [metres_per_second] */ #define BLE_UNIT_METRES_PER_SECOND_SQUARED (0x2713) /**< acceleration [metres_per_second_squared] */ #define BLE_UNIT_RECIPROCAL_METRE (0x2714) /**< wavenumber [reciprocal_metre] */ #define BLE_UNIT_KG_PER_CUBIC_METRE (0x2715) /**< density [kilogram_per_cubic_metre] */ #define BLE_UNIT_KG_PER_SQUARE_METRE (0x2716) /**< surface_density [kilogram_per_square_metre] */ #define BLE_UNIT_CUBIC_METRE_PER_KILOGRAM (0x2717) /**< specific_volume [cubic_metre_per_kilogram] */ #define BLE_UNIT_AMPERE_PER_SQUARE_METRE (0x2718) /**< current_density [ampere_per_square_metre] */ #define BLE_UNIT_AMPERE_PER_METRE (0x2719) /**< magnetic_field_strength [ampere_per_metre] */ #define BLE_UNIT_MOLE_PER_CUBIC_METRE (0x271a) /**< amount_concentration [mole_per_cubic_metre] */ #define BLE_UNIT_KILOGRAM_PER_CUBIC_METRE (0x271b) /**< mass_concentration [kilogram_per_cubic_metre] */ #define BLE_UNIT_CANDELA_PER_SQUARE_METRE (0x271c) /**< luminance [candela_per_square_metre] */ #define BLE_UNIT_REFRACTIVE_INDEX (0x271d) /**< refractive index */ #define BLE_UNIT_RELATIVE_PERMEABILITY (0x271e) /**< relative permeability */ #define BLE_UNIT_RADIAN (0x2720) /**< plane_angle [radian] */ #define BLE_UNIT_STERADIAN (0x2721) /**< solid_angle [steradian] */ #define BLE_UNIT_HERTZ (0x2722) /**< frequency [hertz] */ #define BLE_UNIT_NEWTON (0x2723) /**< force [newton] */ #define BLE_UNIT_PASCAL (0x2724) /**< pressure [pascal] */ #define BLE_UNIT_JOULE (0x2725) /**< energy [joule] */ #define BLE_UNIT_WATT (0x2726) /**< power [watt] */ #define BLE_UNIT_COULOMB (0x2727) /**< electric_charge [coulomb] */ #define BLE_UNIT_VOLT (0x2728) /**< electric_potential_difference [volt] */ #define BLE_UNIT_FARAD (0x2729) /**< capacitance [farad] */ #define BLE_UNIT_OHM (0x272a) /**< electric_resistance [ohm] */ #define BLE_UNIT_SIEMENS (0x272b) /**< electric_conductance [siemens] */ #define BLE_UNIT_WEBER (0x272c) /**< magnetic_flux [weber] */ #define BLE_UNIT_TESLA (0x272d) /**< magnetic_flux_density [tesla] */ #define BLE_UNIT_HENRY (0x272e) /**< inductance [henry] */ #define BLE_UNIT_DEGREE_CELSIUS (0x272f) /**< thermodynamic_temperature [degree_celsius] */ #define BLE_UNIT_LUMEN (0x2730) /**< luminous_flux [lumen] */ #define BLE_UNIT_LUX (0x2731) /**< illuminance [lux] */ #define BLE_UNIT_BECQUEREL (0x2732) /**< activity_referred_to_a_radionuclide [becquerel] */ #define BLE_UNIT_GRAY (0x2733) /**< absorbed_dose [gray] */ #define BLE_UNIT_SIEVERT (0x2734) /**< dose_equivalent [sievert] */ #define BLE_UNIT_KATAL (0x2735) /**< catalytic_activity [katal] */ #define BLE_UNIT_PASCAL_SECOND (0x2740) /**< dynamic_viscosity [pascal_second] */ #define BLE_UNIT_NEWTON_METRE (0x2741) /**< moment_of_force [newton_metre] */ #define BLE_UNIT_NEWTON_PER_METRE (0x2742) /**< surface_tension [newton_per_metre] */ #define BLE_UNIT_RADIAN_PER_SECOND (0x2743) /**< angular_velocity [radian_per_second] */ #define BLE_UNIT_RADIAN_PER_SECOND_SQUARED (0x2744) /**< angular_acceleration [radian_per_second_squared] */ #define BLE_UNIT_HEAT_FLUX_WATT_PER_M2 (0x2745) /**< heat_flux_density [watt_per_square_metre] */ #define BLE_UNIT_JOULE_PER_KELVIN (0x2746) /**< heat_capacity [joule_per_kelvin] */ #define BLE_UNIT_JOULE_PER_KG_KELVIN (0x2747) /**< specific_heat_capacity [joule_per_kilogram_kelvin] */ #define BLE_UNIT_JOULE_PER_KG (0x2748) /**< specific_energy [joule_per_kilogram] */ #define BLE_UNIT_WATT_PER_METRE_KELVIN (0x2749) /**< thermal_conductivity [watt_per_metre_kelvin] */ #define BLE_UNIT_JOULE_PER_CUBIC_METRE (0x274a) /**< energy_density [joule_per_cubic_metre] */ #define BLE_UNIT_VOLT_PER_METRE (0x274b) /**< electric_field_strength [volt_per_metre] */ #define BLE_UNIT_COULOMB_PER_CUBIC_METRE (0x274c) /**< electric_charge_density [coulomb_per_cubic_metre] */ #define BLE_UNIT_COULOMB_PER_M2 (0x274d) /**< surface_charge_density [coulomb_per_square_metre] */ #define BLE_UNIT_FLUX_COULOMB_PER_M2 (0x274e) /**< electric_flux_density [coulomb_per_square_metre] */ #define BLE_UNIT_FARAD_PER_METRE (0x274f) /**< permittivity [farad_per_metre] */ #define BLE_UNIT_HENRY_PER_METRE (0x2750) /**< permeability [henry_per_metre] */ #define BLE_UNIT_JOULE_PER_MOLE (0x2751) /**< molar_energy [joule_per_mole] */ #define BLE_UNIT_JOULE_PER_MOLE_KELVIN (0x2752) /**< molar_entropy [joule_per_mole_kelvin] */ #define BLE_UNIT_COULOMB_PER_KG (0x2753) /**< exposure [coulomb_per_kilogram] */ #define BLE_UNIT_GRAY_PER_SECOND (0x2754) /**< absorbed_dose_rate [gray_per_second] */ #define BLE_UNIT_WATT_PER_STERADIAN (0x2755) /**< radiant_intensity [watt_per_steradian] */ #define BLE_UNIT_WATT_PER_M2_STERADIAN (0x2756) /**< radiance [watt_per_square_metre_steradian] */ #define BLE_UNIT_KATAL_PER_CUBIC_METRE (0x2757) /**< catalytic_activity_concentration [katal_per_cubic_metre] */ #define BLE_UNIT_MINUTE (0x2760) /**< time [minute] */ #define BLE_UNIT_HOUR (0x2761) /**< time [hour] */ #define BLE_UNIT_DAY (0x2762) /**< time [day] */ #define BLE_UNIT_ANGLE_DEGREE (0x2763) /**< plane_angle [degree] */ #define BLE_UNIT_ANGLE_MINUTE (0x2764) /**< plane_angle [minute] */ #define BLE_UNIT_ANGLE_SECOND (0x2765) /**< plane_angle [second] */ #define BLE_UNIT_HECTARE (0x2766) /**< area [hectare] */ #define BLE_UNIT_LITRE (0x2767) /**< volume [litre] */ #define BLE_UNIT_TONNE (0x2768) /**< mass [tonne] */ #define BLE_UNIT_BAR (0x2780) /**< pressure [bar] */ #define BLE_UNIT_MILLIMETRE_OF_MERCURY (0x2781) /**< pressure [millimetre_of_mercury] */ #define BLE_UNIT_NGSTRM (0x2782) /**< length [ngstrm] */ #define BLE_UNIT_NAUTICAL_MILE (0x2783) /**< length [nautical_mile] */ #define BLE_UNIT_BARN (0x2784) /**< area [barn] */ #define BLE_UNIT_KNOT (0x2785) /**< velocity [knot] */ #define BLE_UNIT_NEPER (0x2786) /**< logarithmic_radio_quantity [neper] */ #define BLE_UNIT_BEL (0x2787) /**< logarithmic_radio_quantity [bel] */ #define BLE_UNIT_YARD (0x27a0) /**< length [yard] */ #define BLE_UNIT_PARSEC (0x27a1) /**< length [parsec] */ #define BLE_UNIT_INCH (0x27a2) /**< length [inch] */ #define BLE_UNIT_FOOT (0x27a3) /**< length [foot] */ #define BLE_UNIT_MILE (0x27a4) /**< length [mile] */ #define BLE_UNIT_POUND_FORCE_PER_SQU_INCH (0x27a5) /**< pressure [pound_force_per_square_inch] */ #define BLE_UNIT_KILOMETRE_PER_HOUR (0x27a6) /**< velocity [kilometre_per_hour] */ #define BLE_UNIT_MILE_PER_HOUR (0x27a7) /**< velocity [mile_per_hour] */ #define BLE_UNIT_REVOLUTION_PER_MINUTE (0x27a8) /**< angular_velocity [revolution_per_minute] */ #define BLE_UNIT_GRAM_CALORIE (0x27a9) /**< energy [gram_calorie] */ #define BLE_UNIT_KG_CALORIE (0x27aa) /**< energy [kilogram_calorie] */ #define BLE_UNIT_KILOWATT_HOUR (0x27ab) /**< energy [kilowatt_hour] */ #define BLE_UNIT_DEGREE_FAHRENHEIT (0x27ac) /**< thermodynamic_temperature [degree_fahrenheit] */ #define BLE_UNIT_PERCENTAGE (0x27ad) /**< percentage */ #define BLE_UNIT_PER_MILLE (0x27ae) /**< per mille */ #define BLE_UNIT_BEATS_PER_MINUTE (0x27af) /**< period [beats_per_minute] */ #define BLE_UNIT_AMPERE_HOURS (0x27b0) /**< electric_charge [ampere_hours] */ #define BLE_UNIT_MILLIGRAM_PER_DECILITRE (0x27b1) /**< mass_density [milligram_per_decilitre] */ #define BLE_UNIT_MILLIMOLE_PER_LITRE (0x27b2) /**< mass_density [millimole_per_litre] */ #define BLE_UNIT_YEAR (0x27b3) /**< time [year] */ #define BLE_UNIT_MONTH (0x27b4) /**< time [month] */ #define BLE_UNIT_COUNT_PER_CUBIC_METRE (0x27b5) /**< concentration [count_per_cubic_metre] */ #define BLE_UNIT_WATT_PER_SQUARE_METRE (0x27b6) /**< irradiance [watt_per_square_metre] */ #define BLE_UNIT_MLIT_PER_KG_PER_MINUTE (0x27b7) /**< transfer_rate [milliliter_per_kilogram_per_minute] */ #define BLE_UNIT_POUND (0x27b8) /**< mass [pound] */ #define BLE_UNIT_METABOLIC_EQU (0x27b9) /**< metabolic equivalent */ #define BLE_UNIT_STEP_PER_MINUTE (0x27ba) /**< steps per minute */ #define BLE_UNIT_STROKE_PER_MINUTE (0x27bc) /**< strokes per minute */ #define BLE_UNIT_KILOMETER_PER_MINUTE (0x27bd) /**< velocity [kilometer_per_minute] */ #define BLE_UNIT_LUMEN_PER_WATT (0x27be) /**< luminous_efficacy [lumen_per_watt] */ #define BLE_UNIT_LUMEN_HOUR (0x27bf) /**< luminous_energy [lumen_hour] */ #define BLE_UNIT_LUX_HOUR (0x27c0) /**< luminous_exposure [lux_hour] */ #define BLE_UNIT_GRAM_PER_SECOND (0x27c1) /**< mass_flow [gram_per_second] */ #define BLE_UNIT_LITRE_PER_SECOND (0x27c2) /**< volume_flow [litre_per_second] */ /** @} */ /** * @brief Channel identifiers defined for L2CAP LE-U link layers * @{ */ #define BLE_L2CAP_CID_IPSP (0x0023) #define BLE_L2CAP_CID_CB_MIN (0x0040) #define BLE_L2CAP_CID_CB_MAX (0x007f) /** @} */ /** * @name ATT protocol opcodes * @{ */ #define BLE_ATT_ERROR_RESP (0x01) #define BLE_ATT_MTU_REQ (0x02) #define BLE_ATT_MTU_RESP (0x03) #define BLE_ATT_FIND_INFO_REQ (0x04) #define BLE_ATT_FIND_INFO_RESP (0x05) #define BLE_ATT_FIND_BY_VAL_REQ (0x06) #define BLE_ATT_FIND_BY_VAL_RESP (0x07) #define BLE_ATT_READ_BY_TYPE_REQ (0x08) #define BLE_ATT_READ_BY_TYPE_RESP (0x09) #define BLE_ATT_READ_REQ (0x0a) #define BLE_ATT_READ_RESP (0x0b) #define BLE_ATT_READ_BLOB_REQ (0x0c) #define BLE_ATT_READ_BLOB_RESP (0x0d) #define BLE_ATT_READ_MUL_REQ (0x0e) #define BLE_ATT_READ_MUL_RESP (0x0f) #define BLE_ATT_READ_BY_GROUP_TYPE_REQ (0x10) #define BLE_ATT_READ_BY_GROUP_TYPE_RESP (0x11) #define BLE_ATT_WRITE_REQ (0x12) #define BLE_ATT_WRITE_RESP (0x13) #define BLE_ATT_WRITE_COMMAND (0x52) #define BLE_ATT_PREP_WRITE_REQ (0x16) #define BLE_ATT_PREP_WRITE_RESP (0x17) #define BLE_ATT_EXEC_WRITE_REQ (0x18) #define BLE_ATT_EXEC_WRITE_RESP (0x19) #define BLE_ATT_VAL_NOTIFICATION (0x1b) #define BLE_ATT_VAL_INDICATION (0x1d) #define BLE_ATT_VAL_CONFIRMATION (0x1e) #define BLE_ATT_SIGNED_WRITE_CMD (0xd2) /** @} */ /** * @name ATT protocol error codes * @{ */ #define BLE_ATT_INVALID_HANDLE (0x01) #define BLE_ATT_READ_NOT_PERMITTED (0x02) #define BLE_ATT_WRITE_NOT_PERMITTED (0x03) #define BLE_ATT_INVALID_PDU (0x04) #define BLE_ATT_INSUFFICIENT_AUTHEN (0x05) #define BLE_ATT_REQUEST_NOT_SUP (0x06) #define BLE_ATT_INVALID_OFFSET (0x07) #define BLE_ATT_INSUFFICIENT_AUTHOR (0x08) #define BLE_ATT_PREPARE_QUEUE_FULL (0x09) #define BLE_ATT_ATTRIBUTE_NOT_FOUND (0x0a) #define BLE_ATT_ATTRIBUTE_NOT_LONG (0x0b) #define BLE_ATT_INSUFFICENT_KEY_SIZE (0x0c) #define BLE_ATT_INVALID_ATTR_VAL_LEN (0x0d) #define BLE_ATT_ULIKELY_ERROR (0x0e) #define BLE_ATT_INSUFFICIENT_ENCRYPTION (0x0f) #define BLE_ATT_UNSUPPORTED_GROUP_TYPE (0x10) #define BLE_ATT_INSUFFICIENT_RESSOURCES (0x11) /** @} */ /** * @name ATT property flags * @{ */ #define BLE_ATT_BROADCAST (0x01) #define BLE_ATT_READ (0x02) #define BLE_ATT_WRITE_WO_RESP (0x04) #define BLE_ATT_WRITE (0x08) #define BLE_ATT_NOTIFY (0x10) #define BLE_ATT_INDICATE (0x20) #define BLE_ATT_AUTH_SIGNED_WRITES (0x40) #define BLE_ATT_EXT_PROPERTIES (0x80) /** @} */ /** * @name Flags used in certain types of ATT PDUs * @{ */ #define BLE_ATT_FORMAT_U16 (0x01) /**< used in FIND_INFO_RESP */ #define BLE_ATT_FORMAT_U128 (0x02) /**< used in FIND_INFO_RESP */ /** @} */ /** * @name GAP advertisement data type values * * @see https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile * @{ */ #define BLE_GAP_AD_FLAGS (0x01) #define BLE_GAP_AD_UUID16_INCOMP (0x02) #define BLE_GAP_AD_UUID16_COMP (0x03) #define BLE_GAP_AD_UUID32_INCOMP (0x04) #define BLE_GAP_AD_UUID32_COMP (0x05) #define BLE_GAP_AD_UUID128_INCOMP (0x06) #define BLE_GAP_AD_UUID128_COMP (0x07) #define BLE_GAP_AD_NAME_SHORT (0x08) #define BLE_GAP_AD_NAME (0x09) #define BLE_GAP_AD_TX_POWER_LEVEL (0x0a) #define BLE_GAP_AD_CLASS_OF_DEVICE (0x0d) #define BLE_GAP_AD_PAIRING_HASH_192 (0x0e) #define BLE_GAP_AD_PAIRING_RAND_192 (0x0f) #define BLE_GAP_AD_DEVICE_ID (0x10) #define BLE_GAP_AD_SEC_MANAGER_TK_VAL (0x10) #define BLE_GAP_AD_SEC_MANAGER_OOB_FLAGS (0x11) #define BLE_GAP_AD_SLAVE_CON_INTERVAL (0x12) #define BLE_GAP_AD_LIST_SOL_UUID_16 (0x14) #define BLE_GAP_AD_LIST_SOL_UUID_128 (0x15) #define BLE_GAP_AD_SERVICE_DATA (0x16) #define BLE_GAP_AD_SERVICE_DATA_UUID16 (0x16) #define BLE_GAP_AD_ADDR_PUBLIC (0x17) #define BLE_GAP_AD_ADDR_RANDOM (0x18) #define BLE_GAP_AD_APPEARANCE (0x19) #define BLE_GAP_AD_ADV_INTERVAL (0x1a) #define BLE_GAP_AD_LE_DEVICE_ADDR (0x1b) #define BLE_GAP_AD_LE_ROLE (0x1c) #define BLE_GAP_AD_PAIRING_HASH_256 (0x1d) #define BLE_GAP_AD_PAIRING_RAND_256 (0x1e) #define BLE_GAP_AD_LIST_SOL_UUID_32 (0x1f) #define BLE_GAP_AD_SERVICE_DATA_32 (0x20) #define BLE_GAP_AD_SERVICE_DATA_128 (0x21) #define BLE_GAP_AD_LE_SEC_CON_CONF_VAL (0x22) #define BLE_GAP_AD_LE_SEC_CON_RAND_VAL (0x23) #define BLE_GAP_AD_URI (0x24) #define BLE_GAP_AD_INDOOR_POSITIONING (0x25) #define BLE_GAP_AD_TRANSPORT_DISC_DATA (0x26) #define BLE_GAP_AD_LE_SUP_FEATURES (0x27) #define BLE_GAP_AD_CHAN_MAP_UPDATE_IND (0x28) #define BLE_GAP_AD_3D_INFO_DATA (0x3d) #define BLE_GAP_AD_VENDOR (0xff) /** @} */ /** * @name Flags used in GAP advertisement packets * @{ */ #define BLE_GAP_DISCOVER_LIM (0x01) #define BLE_GAP_DISCOVERABLE (0x02) #define BLE_GAP_FLAG_BREDR_NOTSUP (0x04) /** @} */ /** * @name BLE advertising packet types * @{ */ #define BLE_PDU_MASK (0x0f) #define BLE_ADV_IND (0x00) #define BLE_DIRECT_IND (0x01) #define BLE_ADV_NONCON_IND (0x02) #define BLE_SCAN_REQ (0x03) #define BLE_AUX_SCAN_REQ (0x03) #define BLE_SCAN_RESP (0x04) #define BLE_CONNECT_IND (0x05) #define BLE_AUX_CONNECT_REQ (0x05) #define BLE_ADV_SCAN_IND (0x06) #define BLE_ADV_EXT_IND (0x07) #define BLE_AUX_ADV_IND (0x07) #define BLE_AUX_SCAN_RSP (0x07) #define BLE_AUX_SYNC_IND (0x07) #define BLE_AUX_CHAIN_IND (0x07) #define BLE_CONNECT_RESP (0x08) /** @} */ /** * @name Advertising packet flags * @{ */ #define BLE_LL_FLAG_CHSEL (0x20) #define BLE_LL_FLAG_TXADD (0x40) #define BLE_LL_FLAG_RXADD (0x80) /** @} */ /** * @name Link layer control message opcodes * @{ */ #define BLE_LL_CONN_UPDATE_IND (0x00) #define BLE_LL_CHANNEL_MAP_IND (0x01) #define BLE_LL_TERMINATE_IND (0x02) #define BLE_LL_ENC_REQ (0x03) #define BLE_LL_ENC_RSP (0x04) #define BLE_LL_START_ENC_REQ (0x05) #define BLE_LL_START_ENC_RSP (0x06) #define BLE_LL_UNKNOWN_RSP (0x07) #define BLE_LL_FEATURE_REQ (0x08) #define BLE_LL_FEATURE_RSP (0x09) #define BLE_LL_PAUSE_ENC_REQ (0x0a) #define BLE_LL_PAUSE_ENC_RSP (0x0b) #define BLE_LL_VERSION_IND (0x0c) #define BLE_LL_REJECT_IND (0x0d) #define BLE_LL_SLAVE_FEATURE_REQ (0x0e) #define BLE_LL_CONN_PARAM_REQ (0x0f) #define BLE_LL_CONN_PARAM_RSP (0x10) #define BLE_LL_REJECT_EXT_IND (0x11) #define BLE_LL_PING_REQ (0x12) #define BLE_LL_PING_RSP (0x13) #define BLE_LL_LENGTH_REQ (0x14) #define BLE_LL_LENGTH_RSP (0x15) #define BLE_LL_PHY_REQ (0x16) #define BLE_LL_PHY_RSP (0x17) #define BLE_LL_PHY_UPDATE_IND (0x18) #define BLE_LL_MIN_USED_CHAN_IND (0x19) /** @} */ #ifdef __cplusplus } #endif #endif /* NET_BLE_H */ /** @} */