aa

Dependents:   Peripheral_1_serial_copy Peripheral_1_serial 151006_1st_Scenario_normal

Fork of BLE_API by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Tue Sep 29 09:49:22 2015 +0100
Parent:
816:907530c64cd5
Child:
818: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. */