Maxim Integrated Bluetooth LE Library

Dependents:   BLE_Thermometer MAXWSNENV_demo

Files at this revision

API Documentation at this revision

Comitter:
Jeremy Brodt
Date:
Thu Aug 18 16:01:15 2016 -0500
Parent:
2:03b194d1fc90
Parent:
3:4e764337d5c5
Child:
5:5b87f64ce81e
Commit message:
Merged pull request from kgills.

Changed in this revision

MaximGap.cpp Show annotated file Show diff for this revision Revisions of this file
MaximGap.h Show annotated file Show diff for this revision Revisions of this file
--- a/MaximGap.cpp	Thu Aug 18 15:46:20 2016 -0500
+++ b/MaximGap.cpp	Thu Aug 18 16:01:15 2016 -0500
@@ -52,9 +52,11 @@
         return BLE_ERROR_PARAM_OUT_OF_RANGE;
     }
 
-    /* set advertising and scan response data for discoverable mode */
-    DmAdvSetData(DM_DATA_LOC_ADV, advData.getPayloadLen(), (uint8_t*)advData.getPayload());
-    DmAdvSetData(DM_DATA_LOC_SCAN, scanResponse.getPayloadLen(), (uint8_t*)scanResponse.getPayload());
+    /* save advertising and scan response data */
+    advDataLen = advData.getPayloadLen();
+    scanResponseLen = scanResponse.getPayloadLen();
+    memcpy((void*)advDataCache, (void*)advData.getPayload(), advDataLen);
+    memcpy((void*)advDataCache, (void*)advData.getPayload(), scanResponseLen);
 
     return BLE_ERROR_NONE;
 }
@@ -94,6 +96,10 @@
         return BLE_ERROR_PARAM_OUT_OF_RANGE;
     }
 
+    /* set advertising and scan response data for discoverable mode */
+    DmAdvSetData(DM_DATA_LOC_ADV, advDataLen, advDataCache);
+    DmAdvSetData(DM_DATA_LOC_SCAN, scanResponseLen, scanResponseCache);
+
     DmAdvSetInterval(params.getInterval(), params.getInterval());
     DmAdvStart(params.getAdvertisingType(), params.getTimeout());
 
--- a/MaximGap.h	Thu Aug 18 15:46:20 2016 -0500
+++ b/MaximGap.h	Thu Aug 18 16:01:15 2016 -0500
@@ -102,6 +102,11 @@
 
     MaximGap(MaximGap const &);
     void operator=(MaximGap const &);
+    
+    uint8_t advDataCache[HCI_LEN_LE_SET_ADV_DATA];
+    uint8_t scanResponseCache[HCI_LEN_LE_SET_SCAN_RESP_DATA];
+    int advDataLen;
+    int scanResponseLen;
 };
 
 #endif /* _MAXIM_GAP_H_ */