High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Diff: blecommon.h
- Revision:
- 3:46de446e82ed
- Parent:
- 2:ffc5216bd2cc
- Child:
- 4:50a31ff5f974
diff -r ffc5216bd2cc -r 46de446e82ed blecommon.h --- a/blecommon.h Tue Dec 10 07:32:12 2013 +0000 +++ b/blecommon.h Wed Dec 11 22:15:59 2013 +0000 @@ -5,33 +5,40 @@ typedef enum ble_error_e { - BLE_ERROR_NONE = 0 + BLE_ERROR_NONE = 0, + BLE_ERROR_BUFFER_OVERFLOW = 1 } ble_error_t; +/* Bluetooth Specification 4.0 (Vol. 3) Section 18.1 */ typedef enum ble_gap_adv_flags_e { - BLE_GAP_ADV_FLAGS_ + BLE_GAP_ADV_FLAGS_LE_LIMITED_DISCOVERABLE = 0x01, + BLE_GAP_ADV_FLAGS_LE_GENERAL_DISCOVERABLE = 0x02, + BLE_GAP_ADV_FLAGS_BREDR_NOT_SUPPORTED = 0x04, + BLE_GAP_ADV_FLAGS_SIMULTANEOUS_LE_BREDR_C = 0x08, + BLE_GAP_ADV_FLAGS_SIMULTANEOUS_LE_BREDR_H = 0x10 } ble_gap_adv_flags_t; -// https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile +/* https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile */ +/* Bluetooth Specification 4.0 (Vol. 3) Section 11, 18 */ typedef enum ble_gap_adv_datatype_e { - BLE_GAP_ADV_DATATYPE_FLAGS = 0x01, - BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_16BIT_SERVICE_IDS = 0x02, - BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_16BIT_SERVICE_IDS = 0x03, - BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_32BIT_SERVICE_IDS = 0x04, - BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_32BIT_SERVICE_IDS = 0x05, - BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_128BIT_SERVICE_IDS = 0x06, - BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_128BIT_SERVICE_IDS = 0x07, - BLE_GAP_ADV_DATATYPE_SHORTENED_LOCAL_NAME = 0x08, - BLE_GAP_ADV_DATATYPE_COMPLETE_LOCAL_NAME = 0x09, - BLE_GAP_ADV_DATATYPE_TX_POWER_LEVEL = 0x0A, - BLE_GAP_ADV_DATATYPE_DEVICE_ID = 0x10, - BLE_GAP_ADV_DATATYPE_SLAVE_CONNECTION_INTERVAL_RANGE = 0x12, - BLE_GAP_ADV_DATATYPE_SERVICE_DATA = 0x16, - BLE_GAP_ADV_DATATYPE_APPEARANCE = 0x19, - BLE_GAP_ADV_DATATYPE_ADVERTISING_INTERVAL = 0x1A, - BLE_GAP_ADV_DATATYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF + BLE_GAP_ADV_DATATYPE_FLAGS = 0x01, + BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_16BIT_SERVICE_IDS = 0x02, + BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_16BIT_SERVICE_IDS = 0x03, + BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_32BIT_SERVICE_IDS = 0x04, + BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_32BIT_SERVICE_IDS = 0x05, + BLE_GAP_ADV_DATATYPE_INCOMPLETE_LIST_128BIT_SERVICE_IDS = 0x06, + BLE_GAP_ADV_DATATYPE_COMPLETE_LIST_128BIT_SERVICE_IDS = 0x07, + BLE_GAP_ADV_DATATYPE_SHORTENED_LOCAL_NAME = 0x08, + BLE_GAP_ADV_DATATYPE_COMPLETE_LOCAL_NAME = 0x09, + BLE_GAP_ADV_DATATYPE_TX_POWER_LEVEL = 0x0A, + BLE_GAP_ADV_DATATYPE_DEVICE_ID = 0x10, + BLE_GAP_ADV_DATATYPE_SLAVE_CONNECTION_INTERVAL_RANGE = 0x12, + BLE_GAP_ADV_DATATYPE_SERVICE_DATA = 0x16, + BLE_GAP_ADV_DATATYPE_APPEARANCE = 0x19, + BLE_GAP_ADV_DATATYPE_ADVERTISING_INTERVAL = 0x1A, + BLE_GAP_ADV_DATATYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF } ble_gap_adv_datatype_t; // https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml @@ -56,7 +63,7 @@ BLE_GAP_CHAR_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT = 833, BLE_GAP_CHAR_APPEARANCE_GENERIC_BLOOD_PRESSURE = 896, BLE_GAP_CHAR_APPEARANCE_BLOOD_PRESSURE_ARM = 897, - BLE_GAP_CHAR_APPEARANCE_BLOD_PRESSURE_WRIST = 898, + BLE_GAP_CHAR_APPEARANCE_BLOOD_PRESSURE_WRIST = 898, BLE_GAP_CHAR_APPEARANCE_HUMAN_INTERFACE_DEVICE_HID = 960, BLE_GAP_CHAR_APPEARANCE_KEYBOARD = 961, BLE_GAP_CHAR_APPEARANCE_MOUSE = 962, @@ -234,6 +241,18 @@ BLE_GATT_FORMAT_STRUCT = 0x1B /**< Opaque Structure. */ } ble_gatt_format_t; +typedef enum ble_gatt_char_properties_e +{ + BLE_GATT_CHAR_PROPERTIES_BROADCAST = 0x01, /**< Permits broadcasts of the Characteristic Value using Server Characteristic Configuration Descriptor. */ + BLE_GATT_CHAR_PROPERTIES_READ = 0x02, /**< Permits reads of the Characteristic Value. */ + BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE = 0x04, /**< Permits writes of the Characteristic Value without response. */ + BLE_GATT_CHAR_PROPERTIES_WRITE = 0x08, /**< Permits writes of the Characteristic Value with response. */ + BLE_GATT_CHAR_PROPERTIES_NOTIFY = 0x10, /**< Permits notifications of a Characteristic Value without acknowledgement. */ + BLE_GATT_CHAR_PROPERTIES_INDICATE = 0x20, /**< Permits indications of a Characteristic Value with acknowledgement. */ + BLE_GATT_CHAR_PROPERTIES_AUTHENTICATED_SIGNED_WRITES = 0x40, /**< Permits signed writes to the Characteristic Value. */ + BLE_GATT_CHAR_PROPERTIES_EXTENDED_PROPERTIES = 0x80 /**< Additional characteristic properties are defined in the Characteristic Extended Properties Descriptor */ +} ble_gatt_char_properties_t; + struct UTF8String { uint16_t length; /**< String length. */