Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Committer:
kenjiArai
Date:
Tue Dec 17 23:23:45 2019 +0000
Revision:
0:5b88d5760320
mbed-os5 only for TYBLE16

Who changed what in which revision?

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