BA / Mbed OS BaBoRo1
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 MBED_BLE_COMMON_H__
00018 #define MBED_BLE_COMMON_H__
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 /**
00025  * @addtogroup ble
00026  * @{
00027  * @addtogroup common
00028  * @{
00029  */
00030 
00031 /**
00032  * Assigned values for BLE UUIDs.
00033  */
00034 enum {
00035     /**
00036      * Reserved UUID.
00037      */
00038     BLE_UUID_UNKNOWN = 0x0000,
00039 
00040     /**
00041      * Primary Service.
00042      */
00043     BLE_UUID_SERVICE_PRIMARY = 0x2800,
00044 
00045     /**
00046      * Secondary Service.
00047      */
00048     BLE_UUID_SERVICE_SECONDARY = 0x2801,
00049 
00050     /**
00051      * Included service.
00052      */
00053     BLE_UUID_SERVICE_INCLUDE = 0x2802,
00054 
00055     /**
00056      * Characteristic.
00057      */
00058     BLE_UUID_CHARACTERISTIC = 0x2803,
00059 
00060     /**
00061      * Characteristic Extended Properties Descriptor.
00062      */
00063     BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP = 0x2900,
00064 
00065     /**
00066      * Characteristic User Description Descriptor.
00067      */
00068     BLE_UUID_DESCRIPTOR_CHAR_USER_DESC = 0x2901,
00069 
00070     /**
00071      * Client Characteristic Configuration Descriptor.
00072      */
00073     BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG = 0x2902,
00074 
00075     /**
00076      * Server Characteristic Configuration Descriptor.
00077      */
00078     BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG = 0x2903,
00079 
00080     /**
00081      * Characteristic Presentation Format Descriptor.
00082      */
00083     BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT = 0x2904,
00084 
00085     /**
00086      * Characteristic Aggregate Format Descriptor.
00087      */
00088     BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT = 0x2905,
00089 
00090 /* GATT specific UUIDs */
00091     /**
00092      * Generic Attribute Profile.
00093      */
00094     BLE_UUID_GATT = 0x1801,
00095 
00096     /**
00097      * Service Changed Characteristic.
00098      */
00099     BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED = 0x2A05,
00100 
00101 /* GAP specific UUIDs */
00102 
00103     /**
00104      * Generic Access Profile.
00105      */
00106     BLE_UUID_GAP = 0x1800,
00107 
00108     /**
00109      * Device Name Characteristic.
00110      */
00111     BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME = 0x2A00,
00112 
00113     /**
00114      * Appearance Characteristic.
00115      */
00116     BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE = 0x2A01,
00117 
00118     /**
00119      * Peripheral Privacy Flag Characteristic.
00120      */
00121     BLE_UUID_GAP_CHARACTERISTIC_PPF = 0x2A02,
00122 
00123     /**
00124      * Reconnection Address Characteristic.
00125      */
00126     BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR = 0x2A03,
00127 
00128     /**
00129      * Peripheral Preferred Connection Parameters Characteristic.
00130      */
00131     BLE_UUID_GAP_CHARACTERISTIC_PPCP = 0x2A04,
00132 };
00133 
00134 /**
00135  * Error codes for the BLE API.
00136  *
00137  * The value 0 means that no error was reported; therefore, it allows an API
00138  * user to cleanly test for errors.
00139  *
00140  * @code
00141  * ble_error_t error = some_ble_api_function();
00142  * if (error) {
00143  *   // handle the error
00144  * }
00145  * @endcode
00146  */
00147 enum ble_error_t {
00148     /**
00149      * No error.
00150      */
00151     BLE_ERROR_NONE = 0,
00152 
00153     /**
00154      * The requested action would cause a buffer overflow and has been aborted.
00155      */
00156     BLE_ERROR_BUFFER_OVERFLOW = 1,
00157 
00158     /**
00159      * Requested a feature that isn't yet implemented or isn't supported by the
00160      * target HW.
00161      */
00162     BLE_ERROR_NOT_IMPLEMENTED = 2,
00163 
00164     /**
00165      * One of the supplied parameters is outside the valid range.
00166      */
00167     BLE_ERROR_PARAM_OUT_OF_RANGE = 3,
00168 
00169     /**
00170      * One of the supplied parameters is invalid.
00171      */
00172     BLE_ERROR_INVALID_PARAM = 4,
00173 
00174     /**
00175      * The stack is busy.
00176      */
00177     BLE_STACK_BUSY = 5,
00178 
00179     /**
00180      * Invalid state.
00181      */
00182     BLE_ERROR_INVALID_STATE = 6,
00183 
00184     /**
00185      * Out of memory.
00186      */
00187     BLE_ERROR_NO_MEM = 7,
00188 
00189     /**
00190      * The operation requested is not permitted.
00191      */
00192     BLE_ERROR_OPERATION_NOT_PERMITTED = 8,
00193 
00194     /**
00195      * The BLE subsystem has not completed its initialization.
00196      */
00197     BLE_ERROR_INITIALIZATION_INCOMPLETE = 9,
00198 
00199     /**
00200      *  The BLE system has already been initialized.
00201      */
00202     BLE_ERROR_ALREADY_INITIALIZED = 10,
00203 
00204     /**
00205      * Unknown error.
00206      */
00207     BLE_ERROR_UNSPECIFIED = 11,
00208 
00209     /**
00210      * The platform-specific stack failed.
00211      */
00212     BLE_ERROR_INTERNAL_STACK_FAILURE = 12,
00213 };
00214 
00215 /**
00216  * Default MTU size.
00217  */
00218 static const unsigned BLE_GATT_MTU_SIZE_DEFAULT = 23;
00219 
00220 /**
00221  * Handle Value Notification/Indication event.
00222  *
00223  * Emmitted when a notification or indication has been received from a GATT
00224  * server.
00225  */
00226 enum HVXType_t {
00227     /**
00228      * Handle Value Notification.
00229      */
00230     BLE_HVX_NOTIFICATION = 0x01,
00231 
00232     /**
00233      * Handle Value Indication.
00234      */
00235     BLE_HVX_INDICATION = 0x02,
00236 };
00237 
00238 /**
00239  * @}
00240  * @}
00241  */
00242 
00243 #ifdef __cplusplus
00244 }
00245 #endif
00246 
00247 #endif // ifndef MBED_BLE_COMMON_H__