BLE iBeacon demonstrating how to change the payload data every second

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_iBeacon by Bluetooth Low Energy

Revision:
7:e2bfd5db6713
Parent:
6:26eab6ee6df4
Child:
8:d851d92601b7
--- a/main.cpp	Tue May 20 18:03:51 2014 +0100
+++ b/main.cpp	Tue May 20 18:04:33 2014 +0100
@@ -50,18 +50,37 @@
     GapAdvertisingData   advData;
     GapAdvertisingData   scanResponse;
 
-    /* Define an Beacon payload
+    /*
+     * For this demo application, populate the beacon advertisement payload
+     * with 2 AD structures: FLAG and MSD
+     *
+     * Reference:
+     *  Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 11, 18
+     */
+
+    /* Define an Beacon payload.
+
+       This is the data part of the MSD AdvertisingData structure to be added to
+       the advertising payload.
        --------------------------------------------------------------
        128-Bit UUID = E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61
        Major/Minor  = 0000 / 0000
        Tx Power     = C8
     */
-    uint8_t beaconPayload[25] = { 0x4C, 0x00, 0x02, 0x15, 0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61, 0x00, 0x00, 0x00, 0x00, 0xC8 };
+    uint8_t beaconPayload[] = {
+        0x4C, 0x00, // Company identifier code (0x004C == Apple)
+        0x02,       // ID
+        0x15,       // length of the remaining payload
+        0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, // UUID
+        0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61,
+        0x00, 0x00, // the major value to differenciate a location
+        0x00, 0x00, // the minor value to differenciate a location
+        0xC8        // 2's complement of the Tx power (-56dB)
+    };
 
     /* Make sure we get a clean start */
     nrf.reset();
 
-    /* Beacon includes the FLAG and MSD fields */
     advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);
     advData.addData(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA,
                     beaconPayload,