mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1 /* mbed Microcontroller Library
be_bryan 0:b74591d5ab33 2 * Copyright (c) 2006-2013 ARM Limited
be_bryan 0:b74591d5ab33 3 *
be_bryan 0:b74591d5ab33 4 * Licensed under the Apache License, Version 2.0 (the "License");
be_bryan 0:b74591d5ab33 5 * you may not use this file except in compliance with the License.
be_bryan 0:b74591d5ab33 6 * You may obtain a copy of the License at
be_bryan 0:b74591d5ab33 7 *
be_bryan 0:b74591d5ab33 8 * http://www.apache.org/licenses/LICENSE-2.0
be_bryan 0:b74591d5ab33 9 *
be_bryan 0:b74591d5ab33 10 * Unless required by applicable law or agreed to in writing, software
be_bryan 0:b74591d5ab33 11 * distributed under the License is distributed on an "AS IS" BASIS,
be_bryan 0:b74591d5ab33 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
be_bryan 0:b74591d5ab33 13 * See the License for the specific language governing permissions and
be_bryan 0:b74591d5ab33 14 * limitations under the License.
be_bryan 0:b74591d5ab33 15 */
be_bryan 0:b74591d5ab33 16
be_bryan 0:b74591d5ab33 17 #ifndef MBED_BLE_COMMON_H__
be_bryan 0:b74591d5ab33 18 #define MBED_BLE_COMMON_H__
be_bryan 0:b74591d5ab33 19
be_bryan 0:b74591d5ab33 20 #ifdef __cplusplus
be_bryan 0:b74591d5ab33 21 extern "C" {
be_bryan 0:b74591d5ab33 22 #endif
be_bryan 0:b74591d5ab33 23
be_bryan 0:b74591d5ab33 24 /**
be_bryan 0:b74591d5ab33 25 * @addtogroup ble
be_bryan 0:b74591d5ab33 26 * @{
be_bryan 0:b74591d5ab33 27 * @addtogroup common
be_bryan 0:b74591d5ab33 28 * @{
be_bryan 0:b74591d5ab33 29 */
be_bryan 0:b74591d5ab33 30
be_bryan 0:b74591d5ab33 31 /**
be_bryan 0:b74591d5ab33 32 * Assigned values for BLE UUIDs.
be_bryan 0:b74591d5ab33 33 */
be_bryan 0:b74591d5ab33 34 enum {
be_bryan 0:b74591d5ab33 35 /**
be_bryan 0:b74591d5ab33 36 * Reserved UUID.
be_bryan 0:b74591d5ab33 37 */
be_bryan 0:b74591d5ab33 38 BLE_UUID_UNKNOWN = 0x0000,
be_bryan 0:b74591d5ab33 39
be_bryan 0:b74591d5ab33 40 /**
be_bryan 0:b74591d5ab33 41 * Primary Service.
be_bryan 0:b74591d5ab33 42 */
be_bryan 0:b74591d5ab33 43 BLE_UUID_SERVICE_PRIMARY = 0x2800,
be_bryan 0:b74591d5ab33 44
be_bryan 0:b74591d5ab33 45 /**
be_bryan 0:b74591d5ab33 46 * Secondary Service.
be_bryan 0:b74591d5ab33 47 */
be_bryan 0:b74591d5ab33 48 BLE_UUID_SERVICE_SECONDARY = 0x2801,
be_bryan 0:b74591d5ab33 49
be_bryan 0:b74591d5ab33 50 /**
be_bryan 0:b74591d5ab33 51 * Included service.
be_bryan 0:b74591d5ab33 52 */
be_bryan 0:b74591d5ab33 53 BLE_UUID_SERVICE_INCLUDE = 0x2802,
be_bryan 0:b74591d5ab33 54
be_bryan 0:b74591d5ab33 55 /**
be_bryan 0:b74591d5ab33 56 * Characteristic.
be_bryan 0:b74591d5ab33 57 */
be_bryan 0:b74591d5ab33 58 BLE_UUID_CHARACTERISTIC = 0x2803,
be_bryan 0:b74591d5ab33 59
be_bryan 0:b74591d5ab33 60 /**
be_bryan 0:b74591d5ab33 61 * Characteristic Extended Properties Descriptor.
be_bryan 0:b74591d5ab33 62 */
be_bryan 0:b74591d5ab33 63 BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP = 0x2900,
be_bryan 0:b74591d5ab33 64
be_bryan 0:b74591d5ab33 65 /**
be_bryan 0:b74591d5ab33 66 * Characteristic User Description Descriptor.
be_bryan 0:b74591d5ab33 67 */
be_bryan 0:b74591d5ab33 68 BLE_UUID_DESCRIPTOR_CHAR_USER_DESC = 0x2901,
be_bryan 0:b74591d5ab33 69
be_bryan 0:b74591d5ab33 70 /**
be_bryan 0:b74591d5ab33 71 * Client Characteristic Configuration Descriptor.
be_bryan 0:b74591d5ab33 72 */
be_bryan 0:b74591d5ab33 73 BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG = 0x2902,
be_bryan 0:b74591d5ab33 74
be_bryan 0:b74591d5ab33 75 /**
be_bryan 0:b74591d5ab33 76 * Server Characteristic Configuration Descriptor.
be_bryan 0:b74591d5ab33 77 */
be_bryan 0:b74591d5ab33 78 BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG = 0x2903,
be_bryan 0:b74591d5ab33 79
be_bryan 0:b74591d5ab33 80 /**
be_bryan 0:b74591d5ab33 81 * Characteristic Presentation Format Descriptor.
be_bryan 0:b74591d5ab33 82 */
be_bryan 0:b74591d5ab33 83 BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT = 0x2904,
be_bryan 0:b74591d5ab33 84
be_bryan 0:b74591d5ab33 85 /**
be_bryan 0:b74591d5ab33 86 * Characteristic Aggregate Format Descriptor.
be_bryan 0:b74591d5ab33 87 */
be_bryan 0:b74591d5ab33 88 BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT = 0x2905,
be_bryan 0:b74591d5ab33 89
be_bryan 0:b74591d5ab33 90 /* GATT specific UUIDs */
be_bryan 0:b74591d5ab33 91 /**
be_bryan 0:b74591d5ab33 92 * Generic Attribute Profile.
be_bryan 0:b74591d5ab33 93 */
be_bryan 0:b74591d5ab33 94 BLE_UUID_GATT = 0x1801,
be_bryan 0:b74591d5ab33 95
be_bryan 0:b74591d5ab33 96 /**
be_bryan 0:b74591d5ab33 97 * Service Changed Characteristic.
be_bryan 0:b74591d5ab33 98 */
be_bryan 0:b74591d5ab33 99 BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED = 0x2A05,
be_bryan 0:b74591d5ab33 100
be_bryan 0:b74591d5ab33 101 /* GAP specific UUIDs */
be_bryan 0:b74591d5ab33 102
be_bryan 0:b74591d5ab33 103 /**
be_bryan 0:b74591d5ab33 104 * Generic Access Profile.
be_bryan 0:b74591d5ab33 105 */
be_bryan 0:b74591d5ab33 106 BLE_UUID_GAP = 0x1800,
be_bryan 0:b74591d5ab33 107
be_bryan 0:b74591d5ab33 108 /**
be_bryan 0:b74591d5ab33 109 * Device Name Characteristic.
be_bryan 0:b74591d5ab33 110 */
be_bryan 0:b74591d5ab33 111 BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME = 0x2A00,
be_bryan 0:b74591d5ab33 112
be_bryan 0:b74591d5ab33 113 /**
be_bryan 0:b74591d5ab33 114 * Appearance Characteristic.
be_bryan 0:b74591d5ab33 115 */
be_bryan 0:b74591d5ab33 116 BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE = 0x2A01,
be_bryan 0:b74591d5ab33 117
be_bryan 0:b74591d5ab33 118 /**
be_bryan 0:b74591d5ab33 119 * Peripheral Privacy Flag Characteristic.
be_bryan 0:b74591d5ab33 120 */
be_bryan 0:b74591d5ab33 121 BLE_UUID_GAP_CHARACTERISTIC_PPF = 0x2A02,
be_bryan 0:b74591d5ab33 122
be_bryan 0:b74591d5ab33 123 /**
be_bryan 0:b74591d5ab33 124 * Reconnection Address Characteristic.
be_bryan 0:b74591d5ab33 125 */
be_bryan 0:b74591d5ab33 126 BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR = 0x2A03,
be_bryan 0:b74591d5ab33 127
be_bryan 0:b74591d5ab33 128 /**
be_bryan 0:b74591d5ab33 129 * Peripheral Preferred Connection Parameters Characteristic.
be_bryan 0:b74591d5ab33 130 */
be_bryan 0:b74591d5ab33 131 BLE_UUID_GAP_CHARACTERISTIC_PPCP = 0x2A04,
be_bryan 0:b74591d5ab33 132 };
be_bryan 0:b74591d5ab33 133
be_bryan 0:b74591d5ab33 134 /**
be_bryan 0:b74591d5ab33 135 * Error codes for the BLE API.
be_bryan 0:b74591d5ab33 136 *
be_bryan 0:b74591d5ab33 137 * The value 0 means that no error was reported; therefore, it allows an API
be_bryan 0:b74591d5ab33 138 * user to cleanly test for errors.
be_bryan 0:b74591d5ab33 139 *
be_bryan 0:b74591d5ab33 140 * @code
be_bryan 0:b74591d5ab33 141 * ble_error_t error = some_ble_api_function();
be_bryan 0:b74591d5ab33 142 * if (error) {
be_bryan 0:b74591d5ab33 143 * // handle the error
be_bryan 0:b74591d5ab33 144 * }
be_bryan 0:b74591d5ab33 145 * @endcode
be_bryan 0:b74591d5ab33 146 */
be_bryan 0:b74591d5ab33 147 enum ble_error_t {
be_bryan 0:b74591d5ab33 148 /**
be_bryan 0:b74591d5ab33 149 * No error.
be_bryan 0:b74591d5ab33 150 */
be_bryan 0:b74591d5ab33 151 BLE_ERROR_NONE = 0,
be_bryan 0:b74591d5ab33 152
be_bryan 0:b74591d5ab33 153 /**
be_bryan 0:b74591d5ab33 154 * The requested action would cause a buffer overflow and has been aborted.
be_bryan 0:b74591d5ab33 155 */
be_bryan 0:b74591d5ab33 156 BLE_ERROR_BUFFER_OVERFLOW = 1,
be_bryan 0:b74591d5ab33 157
be_bryan 0:b74591d5ab33 158 /**
be_bryan 0:b74591d5ab33 159 * Requested a feature that isn't yet implemented or isn't supported by the
be_bryan 0:b74591d5ab33 160 * target HW.
be_bryan 0:b74591d5ab33 161 */
be_bryan 0:b74591d5ab33 162 BLE_ERROR_NOT_IMPLEMENTED = 2,
be_bryan 0:b74591d5ab33 163
be_bryan 0:b74591d5ab33 164 /**
be_bryan 0:b74591d5ab33 165 * One of the supplied parameters is outside the valid range.
be_bryan 0:b74591d5ab33 166 */
be_bryan 0:b74591d5ab33 167 BLE_ERROR_PARAM_OUT_OF_RANGE = 3,
be_bryan 0:b74591d5ab33 168
be_bryan 0:b74591d5ab33 169 /**
be_bryan 0:b74591d5ab33 170 * One of the supplied parameters is invalid.
be_bryan 0:b74591d5ab33 171 */
be_bryan 0:b74591d5ab33 172 BLE_ERROR_INVALID_PARAM = 4,
be_bryan 0:b74591d5ab33 173
be_bryan 0:b74591d5ab33 174 /**
be_bryan 0:b74591d5ab33 175 * The stack is busy.
be_bryan 0:b74591d5ab33 176 */
be_bryan 0:b74591d5ab33 177 BLE_STACK_BUSY = 5,
be_bryan 0:b74591d5ab33 178
be_bryan 0:b74591d5ab33 179 /**
be_bryan 0:b74591d5ab33 180 * Invalid state.
be_bryan 0:b74591d5ab33 181 */
be_bryan 0:b74591d5ab33 182 BLE_ERROR_INVALID_STATE = 6,
be_bryan 0:b74591d5ab33 183
be_bryan 0:b74591d5ab33 184 /**
be_bryan 0:b74591d5ab33 185 * Out of memory.
be_bryan 0:b74591d5ab33 186 */
be_bryan 0:b74591d5ab33 187 BLE_ERROR_NO_MEM = 7,
be_bryan 0:b74591d5ab33 188
be_bryan 0:b74591d5ab33 189 /**
be_bryan 0:b74591d5ab33 190 * The operation requested is not permitted.
be_bryan 0:b74591d5ab33 191 */
be_bryan 0:b74591d5ab33 192 BLE_ERROR_OPERATION_NOT_PERMITTED = 8,
be_bryan 0:b74591d5ab33 193
be_bryan 0:b74591d5ab33 194 /**
be_bryan 0:b74591d5ab33 195 * The BLE subsystem has not completed its initialization.
be_bryan 0:b74591d5ab33 196 */
be_bryan 0:b74591d5ab33 197 BLE_ERROR_INITIALIZATION_INCOMPLETE = 9,
be_bryan 0:b74591d5ab33 198
be_bryan 0:b74591d5ab33 199 /**
be_bryan 0:b74591d5ab33 200 * The BLE system has already been initialized.
be_bryan 0:b74591d5ab33 201 */
be_bryan 0:b74591d5ab33 202 BLE_ERROR_ALREADY_INITIALIZED = 10,
be_bryan 0:b74591d5ab33 203
be_bryan 0:b74591d5ab33 204 /**
be_bryan 0:b74591d5ab33 205 * Unknown error.
be_bryan 0:b74591d5ab33 206 */
be_bryan 0:b74591d5ab33 207 BLE_ERROR_UNSPECIFIED = 11,
be_bryan 0:b74591d5ab33 208
be_bryan 0:b74591d5ab33 209 /**
be_bryan 0:b74591d5ab33 210 * The platform-specific stack failed.
be_bryan 0:b74591d5ab33 211 */
be_bryan 0:b74591d5ab33 212 BLE_ERROR_INTERNAL_STACK_FAILURE = 12,
be_bryan 0:b74591d5ab33 213 };
be_bryan 0:b74591d5ab33 214
be_bryan 0:b74591d5ab33 215 /**
be_bryan 0:b74591d5ab33 216 * Default MTU size.
be_bryan 0:b74591d5ab33 217 */
be_bryan 0:b74591d5ab33 218 static const unsigned BLE_GATT_MTU_SIZE_DEFAULT = 23;
be_bryan 0:b74591d5ab33 219
be_bryan 0:b74591d5ab33 220 /**
be_bryan 0:b74591d5ab33 221 * Handle Value Notification/Indication event.
be_bryan 0:b74591d5ab33 222 *
be_bryan 0:b74591d5ab33 223 * Emmitted when a notification or indication has been received from a GATT
be_bryan 0:b74591d5ab33 224 * server.
be_bryan 0:b74591d5ab33 225 */
be_bryan 0:b74591d5ab33 226 enum HVXType_t {
be_bryan 0:b74591d5ab33 227 /**
be_bryan 0:b74591d5ab33 228 * Handle Value Notification.
be_bryan 0:b74591d5ab33 229 */
be_bryan 0:b74591d5ab33 230 BLE_HVX_NOTIFICATION = 0x01,
be_bryan 0:b74591d5ab33 231
be_bryan 0:b74591d5ab33 232 /**
be_bryan 0:b74591d5ab33 233 * Handle Value Indication.
be_bryan 0:b74591d5ab33 234 */
be_bryan 0:b74591d5ab33 235 BLE_HVX_INDICATION = 0x02,
be_bryan 0:b74591d5ab33 236 };
be_bryan 0:b74591d5ab33 237
be_bryan 0:b74591d5ab33 238 /**
be_bryan 0:b74591d5ab33 239 * @}
be_bryan 0:b74591d5ab33 240 * @}
be_bryan 0:b74591d5ab33 241 */
be_bryan 0:b74591d5ab33 242
be_bryan 0:b74591d5ab33 243 #ifdef __cplusplus
be_bryan 0:b74591d5ab33 244 }
be_bryan 0:b74591d5ab33 245 #endif
be_bryan 0:b74591d5ab33 246
be_bryan 0:b74591d5ab33 247 #endif // ifndef MBED_BLE_COMMON_H__