Improve readability with getHandle inline
Fork of BLE_API by
public/GattCharacteristicWriteCBParams.h@255:097be53aea02, 2014-12-12 (annotated)
- Committer:
- rgrover1
- Date:
- Fri Dec 12 13:32:24 2014 +0000
- Revision:
- 255:097be53aea02
- Parent:
- 251:5d9118449482
Synchronized with git rev 2552bf25
Author: Rohit Grover
Release 0.2.9
=============
API enhancements to support read/write authorization for GATT accesses.
Enhancements
~~~~~~~~~~~~
* Add support for authorization, whereby the user application can receive a
callback to authorize a read or a write on a characteristic's value
attribute before GATT commits the transaction. We now have an API for
GattCharacterisitc called setWriteAuthorizationCallback() which can filter
incoming access requests before they get applied to the GATT database.
Bugfixes
~~~~~~~~
Compatibility
~~~~~~~~~~~~~
This release is backward compatible with 0.2.4.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rohit Grover |
116:ca826083980e | 1 | /* mbed Microcontroller Library |
Rohit Grover |
116:ca826083980e | 2 | * Copyright (c) 2006-2013 ARM Limited |
Rohit Grover |
116:ca826083980e | 3 | * |
Rohit Grover |
116:ca826083980e | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
Rohit Grover |
116:ca826083980e | 5 | * you may not use this file except in compliance with the License. |
Rohit Grover |
116:ca826083980e | 6 | * You may obtain a copy of the License at |
Rohit Grover |
116:ca826083980e | 7 | * |
Rohit Grover |
116:ca826083980e | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Rohit Grover |
116:ca826083980e | 9 | * |
Rohit Grover |
116:ca826083980e | 10 | * Unless required by applicable law or agreed to in writing, software |
Rohit Grover |
116:ca826083980e | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
Rohit Grover |
116:ca826083980e | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
Rohit Grover |
116:ca826083980e | 13 | * See the License for the specific language governing permissions and |
Rohit Grover |
116:ca826083980e | 14 | * limitations under the License. |
Rohit Grover |
116:ca826083980e | 15 | */ |
Rohit Grover |
116:ca826083980e | 16 | |
Rohit Grover |
116:ca826083980e | 17 | #ifndef __GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__ |
Rohit Grover |
116:ca826083980e | 18 | #define __GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__ |
Rohit Grover |
116:ca826083980e | 19 | |
Rohit Grover |
116:ca826083980e | 20 | struct GattCharacteristicWriteCBParams { |
Rohit Grover |
118:620d28e7a1ba | 21 | GattAttribute::Handle_t charHandle; |
Rohit Grover |
116:ca826083980e | 22 | enum Type { |
Rohit Grover |
116:ca826083980e | 23 | GATTS_CHAR_OP_INVALID = 0x00, /**< Invalid Operation. */ |
Rohit Grover |
116:ca826083980e | 24 | GATTS_CHAR_OP_WRITE_REQ = 0x01, /**< Write Request. */ |
Rohit Grover |
116:ca826083980e | 25 | GATTS_CHAR_OP_WRITE_CMD = 0x02, /**< Write Command. */ |
Rohit Grover |
116:ca826083980e | 26 | GATTS_CHAR_OP_SIGN_WRITE_CMD = 0x03, /**< Signed Write Command. */ |
Rohit Grover |
116:ca826083980e | 27 | GATTS_CHAR_OP_PREP_WRITE_REQ = 0x04, /**< Prepare Write Request. */ |
Rohit Grover |
116:ca826083980e | 28 | GATTS_CHAR_OP_EXEC_WRITE_REQ_CANCEL = 0x05, /**< Execute Write Request: Cancel all prepared writes. */ |
Rohit Grover |
116:ca826083980e | 29 | GATTS_CHAR_OP_EXEC_WRITE_REQ_NOW = 0x06, /**< Execute Write Request: Immediately execute all prepared writes. */ |
Rohit Grover |
116:ca826083980e | 30 | } op; /**< Type of write operation, */ |
Rohit Grover |
116:ca826083980e | 31 | uint16_t offset; /**< Offset for the write operation. */ |
Rohit Grover |
116:ca826083980e | 32 | uint16_t len; /**< Length of the incoming data. */ |
Rohit Grover |
116:ca826083980e | 33 | const uint8_t *data; /**< Incoming data, variable length. */ |
Rohit Grover |
116:ca826083980e | 34 | }; |
Rohit Grover |
116:ca826083980e | 35 | |
rgrover1 | 251:5d9118449482 | 36 | struct GattCharacteristicWriteAuthCBParams { |
rgrover1 | 251:5d9118449482 | 37 | GattAttribute::Handle_t charHandle; |
rgrover1 | 251:5d9118449482 | 38 | uint16_t offset; /**< Offset for the write operation. */ |
rgrover1 | 251:5d9118449482 | 39 | uint16_t len; /**< Length of the incoming data. */ |
rgrover1 | 251:5d9118449482 | 40 | const uint8_t *data; /**< Incoming data, variable length. */ |
rgrover1 | 251:5d9118449482 | 41 | bool authorizationReply; /* This is the out parameter which needs to be set to true by the callback if the |
rgrover1 | 251:5d9118449482 | 42 | * request is to proceed; false otherwise. */ |
rgrover1 | 251:5d9118449482 | 43 | }; |
rgrover1 | 251:5d9118449482 | 44 | |
rgrover1 | 255:097be53aea02 | 45 | struct GattCharacteristicReadAuthCBParams { |
rgrover1 | 255:097be53aea02 | 46 | GattAttribute::Handle_t charHandle; |
rgrover1 | 255:097be53aea02 | 47 | uint16_t offset; /**< Offset for the write operation. */ |
rgrover1 | 255:097be53aea02 | 48 | bool authorizationReply; /* This is the out parameter which needs to be set to true by the callback if the |
rgrover1 | 255:097be53aea02 | 49 | * request is to proceed; false otherwise. */ |
rgrover1 | 255:097be53aea02 | 50 | }; |
rgrover1 | 255:097be53aea02 | 51 | |
rgrover1 | 251:5d9118449482 | 52 | #endif /*__GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__*/ |