add "LE Device Address" 0x1B to advertising data types

Fork of BLE_API by Bluetooth Low Energy

Committer:
rgrover1
Date:
Wed Dec 02 10:29:44 2015 +0000
Revision:
993:4d62b7967c11
Parent:
992:ca834f7ae8ed
Child:
1042:21a86ac7f5b1
Synchronized with git rev 12e27cd4
Author: Rohit Grover
Release 2.1.3
=============

* Improvements to CallChainOfFunctionPointerswithContext:
- add a `detach` function to be able to remove callbacks.
- detach function now return true if a function has been detached and
false otherwise.
- add a function call operator.
- use safe-bool idiom. see : http://www.artima.com/cppsource/safebool.html

* Add SafeBool class which allow to easily declare a safe bool operator in
c++03.

* Improvements to FunctionPointerWithContext:
- fix call propagation
- use safe bool idiom

* Add config file for generating Doxygen.

* Setup for onRadioNotification callback does not call initRadioNotification
anymore.

* GapAdvertisementData now handles replacement and appending of data fields
based on type. Some fields can be replaced with new values, and others
require the payload to be appended.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 716:11b41f651697 1 /* mbed Microcontroller Library
rgrover1 716:11b41f651697 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 716:11b41f651697 3 *
rgrover1 716:11b41f651697 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 716:11b41f651697 5 * you may not use this file except in compliance with the License.
rgrover1 716:11b41f651697 6 * You may obtain a copy of the License at
rgrover1 716:11b41f651697 7 *
rgrover1 716:11b41f651697 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 716:11b41f651697 9 *
rgrover1 716:11b41f651697 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 716:11b41f651697 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 716:11b41f651697 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 716:11b41f651697 13 * See the License for the specific language governing permissions and
rgrover1 716:11b41f651697 14 * limitations under the License.
rgrover1 716:11b41f651697 15 */
rgrover1 716:11b41f651697 16
rgrover1 716:11b41f651697 17 #ifndef __GATT_CALLBACK_PARAM_TYPES_H__
rgrover1 716:11b41f651697 18 #define __GATT_CALLBACK_PARAM_TYPES_H__
rgrover1 716:11b41f651697 19
rgrover1 716:11b41f651697 20 struct GattWriteCallbackParams {
rgrover1 716:11b41f651697 21 enum WriteOp_t {
rgrover1 993:4d62b7967c11 22 OP_INVALID = 0x00, /**< Invalid operation. */
rgrover1 993:4d62b7967c11 23 OP_WRITE_REQ = 0x01, /**< Write request. */
rgrover1 993:4d62b7967c11 24 OP_WRITE_CMD = 0x02, /**< Write command. */
rgrover1 993:4d62b7967c11 25 OP_SIGN_WRITE_CMD = 0x03, /**< Signed write command. */
rgrover1 993:4d62b7967c11 26 OP_PREP_WRITE_REQ = 0x04, /**< Prepare write request. */
rgrover1 993:4d62b7967c11 27 OP_EXEC_WRITE_REQ_CANCEL = 0x05, /**< Execute write request: cancel all prepared writes. */
rgrover1 993:4d62b7967c11 28 OP_EXEC_WRITE_REQ_NOW = 0x06, /**< Execute write request: immediately execute all prepared writes. */
rgrover1 716:11b41f651697 29 };
rgrover1 716:11b41f651697 30
rgrover1 788:89433790768b 31 Gap::Handle_t connHandle;
rgrover1 716:11b41f651697 32 GattAttribute::Handle_t handle;
rgrover1 993:4d62b7967c11 33 WriteOp_t writeOp; /**< Type of write operation. */
rgrover1 716:11b41f651697 34 uint16_t offset; /**< Offset for the write operation. */
rgrover1 716:11b41f651697 35 uint16_t len;
rgrover1 993:4d62b7967c11 36 const uint8_t *data; /* @note: Data might not persist beyond the callback; make a local copy if needed. */
rgrover1 716:11b41f651697 37 };
rgrover1 716:11b41f651697 38
rgrover1 716:11b41f651697 39 struct GattReadCallbackParams {
rgrover1 788:89433790768b 40 Gap::Handle_t connHandle;
rgrover1 716:11b41f651697 41 GattAttribute::Handle_t handle;
rgrover1 716:11b41f651697 42 uint16_t offset; /**< Offset for the read operation. */
rgrover1 716:11b41f651697 43 uint16_t len;
rgrover1 993:4d62b7967c11 44 const uint8_t *data; /* @note: Data might not persist beyond the callback; make a local copy if needed. */
rgrover1 716:11b41f651697 45 };
rgrover1 716:11b41f651697 46
rgrover1 716:11b41f651697 47 enum GattAuthCallbackReply_t {
rgrover1 789:e33a8b853eb8 48 AUTH_CALLBACK_REPLY_SUCCESS = 0x00, /**< Success. */
rgrover1 993:4d62b7967c11 49 AUTH_CALLBACK_REPLY_ATTERR_INVALID_HANDLE = 0x0101, /**< ATT Error: Invalid attribute handle. */
rgrover1 789:e33a8b853eb8 50 AUTH_CALLBACK_REPLY_ATTERR_READ_NOT_PERMITTED = 0x0102, /**< ATT Error: Read not permitted. */
rgrover1 789:e33a8b853eb8 51 AUTH_CALLBACK_REPLY_ATTERR_WRITE_NOT_PERMITTED = 0x0103, /**< ATT Error: Write not permitted. */
rgrover1 789:e33a8b853eb8 52 AUTH_CALLBACK_REPLY_ATTERR_INSUF_AUTHENTICATION = 0x0105, /**< ATT Error: Authenticated link required. */
rgrover1 993:4d62b7967c11 53 AUTH_CALLBACK_REPLY_ATTERR_INVALID_OFFSET = 0x0107, /**< ATT Error: The specified offset was past the end of the attribute. */
rgrover1 993:4d62b7967c11 54 AUTH_CALLBACK_REPLY_ATTERR_INSUF_AUTHORIZATION = 0x0108, /**< ATT Error: Used in ATT as "insufficient authorization". */
rgrover1 993:4d62b7967c11 55 AUTH_CALLBACK_REPLY_ATTERR_PREPARE_QUEUE_FULL = 0x0109, /**< ATT Error: Used in ATT as "prepare queue full". */
rgrover1 993:4d62b7967c11 56 AUTH_CALLBACK_REPLY_ATTERR_ATTRIBUTE_NOT_FOUND = 0x010A, /**< ATT Error: Used in ATT as "attribute not found". */
rgrover1 789:e33a8b853eb8 57 AUTH_CALLBACK_REPLY_ATTERR_ATTRIBUTE_NOT_LONG = 0x010B, /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */
rgrover1 716:11b41f651697 58 AUTH_CALLBACK_REPLY_ATTERR_INVALID_ATT_VAL_LENGTH = 0x010D, /**< ATT Error: Invalid value size. */
rgrover1 789:e33a8b853eb8 59 AUTH_CALLBACK_REPLY_ATTERR_INSUF_RESOURCES = 0x0111, /**< ATT Error: Encrypted link required. */
rgrover1 716:11b41f651697 60 };
rgrover1 716:11b41f651697 61
rgrover1 716:11b41f651697 62 struct GattWriteAuthCallbackParams {
rgrover1 788:89433790768b 63 Gap::Handle_t connHandle;
rgrover1 716:11b41f651697 64 GattAttribute::Handle_t handle;
rgrover1 716:11b41f651697 65 uint16_t offset; /**< Offset for the write operation. */
rgrover1 716:11b41f651697 66 uint16_t len; /**< Length of the incoming data. */
rgrover1 716:11b41f651697 67 const uint8_t *data; /**< Incoming data, variable length. */
rgrover1 993:4d62b7967c11 68 GattAuthCallbackReply_t authorizationReply; /* This is the out parameter that the callback
rgrover1 993:4d62b7967c11 69 * needs to set to AUTH_CALLBACK_REPLY_SUCCESS
rgrover1 993:4d62b7967c11 70 * for the request to proceed. */
rgrover1 716:11b41f651697 71 };
rgrover1 716:11b41f651697 72
rgrover1 716:11b41f651697 73 struct GattReadAuthCallbackParams {
rgrover1 788:89433790768b 74 Gap::Handle_t connHandle;
rgrover1 716:11b41f651697 75 GattAttribute::Handle_t handle;
rgrover1 716:11b41f651697 76 uint16_t offset; /**< Offset for the read operation. */
rgrover1 716:11b41f651697 77 uint16_t len; /**< Optional: new length of the outgoing data. */
rgrover1 716:11b41f651697 78 uint8_t *data; /**< Optional: new outgoing data. Leave at NULL if data is unchanged. */
rgrover1 993:4d62b7967c11 79 GattAuthCallbackReply_t authorizationReply; /* This is the out parameter that the callback
rgrover1 993:4d62b7967c11 80 * needs to set to AUTH_CALLBACK_REPLY_SUCCESS
rgrover1 993:4d62b7967c11 81 * for the request to proceed. */
rgrover1 716:11b41f651697 82 };
rgrover1 716:11b41f651697 83
rgrover1 737:79d95f9b93be 84 /* For encapsulating handle-value update events (notifications or indications) generated at the remote server. */
rgrover1 737:79d95f9b93be 85 struct GattHVXCallbackParams {
rgrover1 788:89433790768b 86 Gap::Handle_t connHandle;
rgrover1 737:79d95f9b93be 87 GattAttribute::Handle_t handle; /**< Attribute Handle to which the HVx operation applies. */
rgrover1 737:79d95f9b93be 88 HVXType_t type; /**< Indication or Notification, see @ref HVXType_t. */
rgrover1 737:79d95f9b93be 89 uint16_t len; /**< Attribute data length. */
rgrover1 737:79d95f9b93be 90 const uint8_t *data; /**< Attribute data, variable length. */
rgrover1 737:79d95f9b93be 91 };
rgrover1 737:79d95f9b93be 92
rgrover1 716:11b41f651697 93 #endif /*__GATT_CALLBACK_PARAM_TYPES_H__*/