High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Revision 816:2b4f0ef8c06e, committed 2015-09-29
- Comitter:
- rgrover1
- Date:
- Tue Sep 29 09:49:22 2015 +0100
- Parent:
- 815:907530c64cd5
- Child:
- 817:7a23f308cfe1
- Commit message:
- Synchronized with git rev 4c2aac54
Author: Rohit Grover
Merge branch 'master' into develop
Changed in this revision
ble/Gap.h | Show annotated file Show diff for this revision Revisions of this file |
ble/GattCallbackParamTypes.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/ble/Gap.h Tue Sep 29 09:49:22 2015 +0100 +++ b/ble/Gap.h Tue Sep 29 09:49:22 2015 +0100 @@ -301,9 +301,11 @@ } /** - * Update connection parameters while in the peripheral role. - * @details In the peripheral role, this will send the corresponding L2CAP request to the connected peer and wait for - * the central to perform the procedure. + * Update connection parameters. + * In the central role this will initiate a Link Layer connection parameter update procedure, + * otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for + * the central to perform the procedure. + * * @param[in] handle * Connection Handle * @param[in] params @@ -901,6 +903,16 @@ void onDisconnection(DisconnectionEventCallback_t callback) {disconnectionCallback = callback;} /** + * Append to a chain of callbacks to be invoked upon connection; these + * callbacks receive no context and are therefore different from the + * connectionCallback callback. + * @param callback + * function pointer to be invoked upon connection; receives no context. + */ + template<typename T> + void addToConnectionCallChain(T *tptr, void (T::*mptr)(void)) {connectionCallChain.add(tptr, mptr);} + + /** * Append to a chain of callbacks to be invoked upon disconnection; these * callbacks receive no context and are therefore different from the * disconnectionCallback callback. @@ -960,6 +972,7 @@ disconnectionCallback(NULL), radioNotificationCallback(), onAdvertisementReport(), + connectionCallChain(), disconnectionCallChain() { _advPayload.clear(); _scanResponse.clear(); @@ -979,6 +992,7 @@ ConnectionCallbackParams_t callbackParams(handle, role, peerAddrType, peerAddr, ownAddrType, ownAddr, connectionParams); connectionCallback(&callbackParams); } + connectionCallChain.call(); } void processDisconnectionEvent(Handle_t handle, DisconnectionReason_t reason) { @@ -1026,6 +1040,7 @@ DisconnectionEventCallback_t disconnectionCallback; RadioNotificationEventCallback_t radioNotificationCallback; AdvertisementReportCallback_t onAdvertisementReport; + CallChain connectionCallChain; CallChain disconnectionCallChain; private:
--- a/ble/GattCallbackParamTypes.h Tue Sep 29 09:49:22 2015 +0100 +++ b/ble/GattCallbackParamTypes.h Tue Sep 29 09:49:22 2015 +0100 @@ -65,8 +65,9 @@ uint16_t offset; /**< Offset for the write operation. */ uint16_t len; /**< Length of the incoming data. */ const uint8_t *data; /**< Incoming data, variable length. */ - GattAuthCallbackReply_t authorizationReply; /* This is the out parameter which needs to be set to true by the callback if the - * request is to proceed; false otherwise. */ + GattAuthCallbackReply_t authorizationReply; /* This is the out parameter which needs to be set to + * AUTH_CALLBACK_REPLY_SUCCESS by the callback if the + * request is to proceed. */ }; struct GattReadAuthCallbackParams { @@ -75,8 +76,9 @@ uint16_t offset; /**< Offset for the read operation. */ uint16_t len; /**< Optional: new length of the outgoing data. */ uint8_t *data; /**< Optional: new outgoing data. Leave at NULL if data is unchanged. */ - GattAuthCallbackReply_t authorizationReply; /* This is the out parameter which needs to be set to true by the callback if the - * request is to proceed; false otherwise. */ + GattAuthCallbackReply_t authorizationReply; /* This is the out parameter which needs to be set to + * AUTH_CALLBACK_REPLY_SUCCESS by the callback if the + * request is to proceed. */ }; /* For encapsulating handle-value update events (notifications or indications) generated at the remote server. */