BLE FORK

Fork of BLE_API by Bluetooth Low Energy

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers blecommon.h Source File

blecommon.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef __BLE_COMMON_H__
00018 #define __BLE_COMMON_H__
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 
00025 /*! @brief Assigned values for BLE UUIDs. */
00026 enum {
00027     BLE_UUID_UNKNOWN                             = 0x0000, /**< Reserved UUID. */
00028     BLE_UUID_SERVICE_PRIMARY                     = 0x2800, /**< Primary Service. */
00029     BLE_UUID_SERVICE_SECONDARY                   = 0x2801, /**< Secondary Service. */
00030     BLE_UUID_SERVICE_INCLUDE                     = 0x2802, /**< Include. */
00031     BLE_UUID_CHARACTERISTIC                      = 0x2803, /**< Characteristic. */
00032     BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP            = 0x2900, /**< Characteristic Extended Properties Descriptor. */
00033     BLE_UUID_DESCRIPTOR_CHAR_USER_DESC           = 0x2901, /**< Characteristic User Description Descriptor. */
00034     BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG       = 0x2902, /**< Client Characteristic Configuration Descriptor. */
00035     BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG       = 0x2903, /**< Server Characteristic Configuration Descriptor. */
00036     BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT = 0x2904, /**< Characteristic Presentation Format Descriptor. */
00037     BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT    = 0x2905, /**< Characteristic Aggregate Format Descriptor. */
00038 
00039 /* GATT specific UUIDs */
00040     BLE_UUID_GATT                                = 0x1801, /**< Generic Attribute Profile. */
00041     BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED = 0x2A05, /**< Service Changed Characteristic. */
00042 
00043 /* GAP specific UUIDs */
00044     BLE_UUID_GAP                                 = 0x1800, /**< Generic Access Profile. */
00045     BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME      = 0x2A00, /**< Device Name Characteristic. */
00046     BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE       = 0x2A01, /**< Appearance Characteristic. */
00047     BLE_UUID_GAP_CHARACTERISTIC_PPF              = 0x2A02, /**< Peripheral Privacy Flag Characteristic. */
00048     BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR      = 0x2A03, /**< Reconnection Address Characteristic. */
00049     BLE_UUID_GAP_CHARACTERISTIC_PPCP             = 0x2A04, /**< Peripheral Preferred Connection Parameters Characteristic. */
00050 };
00051 
00052 /*! Bluetooth appearance values.
00053  *  @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
00054  */
00055 enum {
00056     BLE_APPEARANCE_UNKNOWN                             =    0, /**< Unknown. */
00057     BLE_APPEARANCE_GENERIC_PHONE                       =   64, /**< Generic Phone. */
00058     BLE_APPEARANCE_GENERIC_COMPUTER                    =  128, /**< Generic Computer. */
00059     BLE_APPEARANCE_GENERIC_WATCH                       =  192, /**< Generic Watch. */
00060     BLE_APPEARANCE_WATCH_SPORTS_WATCH                  =  193, /**< Watch: Sports Watch. */
00061     BLE_APPEARANCE_GENERIC_CLOCK                       =  256, /**< Generic Clock. */
00062     BLE_APPEARANCE_GENERIC_DISPLAY                     =  320, /**< Generic Display. */
00063     BLE_APPEARANCE_GENERIC_REMOTE_CONTROL              =  384, /**< Generic Remote Control. */
00064     BLE_APPEARANCE_GENERIC_EYE_GLASSES                 =  448, /**< Generic Eye-glasses. */
00065     BLE_APPEARANCE_GENERIC_TAG                         =  512, /**< Generic Tag. */
00066     BLE_APPEARANCE_GENERIC_KEYRING                     =  576, /**< Generic Keyring. */
00067     BLE_APPEARANCE_GENERIC_MEDIA_PLAYER                =  640, /**< Generic Media Player. */
00068     BLE_APPEARANCE_GENERIC_BARCODE_SCANNER             =  704, /**< Generic Barcode Scanner. */
00069     BLE_APPEARANCE_GENERIC_THERMOMETER                 =  768, /**< Generic Thermometer. */
00070     BLE_APPEARANCE_THERMOMETER_EAR                     =  769, /**< Thermometer: Ear. */
00071     BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR           =  832, /**< Generic Heart Rate Sensor. */
00072     BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT   =  833, /**< Heart Rate Sensor: Heart Rate Belt. */
00073     BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE              =  896, /**< Generic Blood Pressure. */
00074     BLE_APPEARANCE_BLOOD_PRESSURE_ARM                  =  897, /**< Blood Pressure: Arm. */
00075     BLE_APPEARANCE_BLOOD_PRESSURE_WRIST                =  898, /**< Blood Pressure: Wrist. */
00076     BLE_APPEARANCE_GENERIC_HID                         =  960, /**< Human Interface Device (HID). */
00077     BLE_APPEARANCE_HID_KEYBOARD                        =  961, /**< Keyboard (HID subtype). */
00078     BLE_APPEARANCE_HID_MOUSE                           =  962, /**< Mouse (HID subtype). */
00079     BLE_APPEARANCE_HID_JOYSTICK                        =  963, /**< Joystick (HID subtype). */
00080     BLE_APPEARANCE_HID_GAMEPAD                         =  964, /**< Gamepad (HID subtype). */
00081     BLE_APPEARANCE_HID_DIGITIZERSUBTYPE                =  965, /**< Digitizer Tablet (HID subtype). */
00082     BLE_APPEARANCE_HID_CARD_READER                     =  966, /**< Card Reader (HID subtype). */
00083     BLE_APPEARANCE_HID_DIGITAL_PEN                     =  967, /**< Digital Pen (HID subtype). */
00084     BLE_APPEARANCE_HID_BARCODE                         =  968, /**< Barcode Scanner (HID subtype). */
00085     BLE_APPEARANCE_GENERIC_GLUCOSE_METER               = 1024, /**< Generic Glucose Meter. */
00086     BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR      = 1088, /**< Generic Running Walking Sensor. */
00087     BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE      = 1089, /**< Running Walking Sensor: In-Shoe. */
00088     BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE      = 1090, /**< Running Walking Sensor: On-Shoe. */
00089     BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP       = 1091, /**< Running Walking Sensor: On-Hip. */
00090     BLE_APPEARANCE_GENERIC_CYCLING                     = 1152, /**< Generic Cycling. */
00091     BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER            = 1153, /**< Cycling: Cycling Computer. */
00092     BLE_APPEARANCE_CYCLING_SPEED_SENSOR                = 1154, /**< Cycling: Speed Sensor. */
00093     BLE_APPEARANCE_CYCLING_CADENCE_SENSOR              = 1155, /**< Cycling: Cadence Sensor. */
00094     BLE_APPEARANCE_CYCLING_POWER_SENSOR                = 1156, /**< Cycling: Power Sensor. */
00095     BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR        = 1157, /**< Cycling: Speed and Cadence Sensor. */
00096     BLE_APPEARANCE_GENERIC_PULSE_OXIMETER              = 3136, /**< Generic Pulse Oximeter. */
00097     BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP            = 3137, /**< Fingertip (Pulse Oximeter subtype). */
00098     BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN           = 3138, /**< Wrist Worn (Pulse Oximeter subtype). */
00099     BLE_APPEARANCE_GENERIC_WEIGHT_SCALE                = 3200, /**< Generic Weight Scale. */
00100     BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT          = 5184, /**< Generic Outdoor Sports Activity. */
00101     BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP         = 5185, /**< Location Display Device (Outdoor Sports Activity subtype). */
00102     BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP = 5186, /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */
00103     BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD          = 5187, /**< Location Pod (Outdoor Sports Activity subtype). */
00104     BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD  = 5188, /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */
00105 };
00106 
00107 
00108 /*! @brief Error codes for the BLE API. */
00109 enum ble_error_t {
00110     BLE_ERROR_NONE                      = 0, /**< No error. */
00111     BLE_ERROR_BUFFER_OVERFLOW           = 1, /**< The requested action would cause a buffer overflow and has been aborted. */
00112     BLE_ERROR_NOT_IMPLEMENTED           = 2, /**< Requested a feature that isn't yet implemented or isn't supported by the target HW. */
00113     BLE_ERROR_PARAM_OUT_OF_RANGE        = 3, /**< One of the supplied parameters is outside the valid range. */
00114     BLE_ERROR_INVALID_PARAM             = 4, /**< One of the supplied parameters is invalid. */
00115     BLE_STACK_BUSY                      = 5, /**< The stack is busy. */
00116     BLE_ERROR_INVALID_STATE             = 6, /**< Invalid state. */
00117     BLE_ERROR_NO_MEM                    = 7, /**< Out of memory */
00118     BLE_ERROR_OPERATION_NOT_PERMITTED   = 8,
00119     BLE_ERROR_INITIALIZATION_INCOMPLETE = 9,
00120     BLE_ERROR_ALREADY_INITIALIZED       = 10,
00121     BLE_ERROR_UNSPECIFIED               = 11, /**< Unknown error. */
00122 };
00123 
00124 /** @brief Default MTU size. */
00125 static const unsigned BLE_GATT_MTU_SIZE_DEFAULT = 23;
00126 
00127 enum HVXType_t {
00128     BLE_HVX_NOTIFICATION = 0x01,  /**< Handle Value Notification. */
00129     BLE_HVX_INDICATION   = 0x02,  /**< Handle Value Indication. */
00130 };
00131 
00132 #ifdef __cplusplus
00133 }
00134 #endif
00135 
00136 #endif // ifndef __BLE_COMMON_H__