Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed DOOR
Fork of DOOR by
Diff: main.cpp
- Revision:
- 50:7bc38f01d2d3
- Parent:
- 48:2f0f293a4966
- Child:
- 53:f9ec2c7a47f5
diff -r 2d05e684f9c3 -r 7bc38f01d2d3 main.cpp
--- a/main.cpp Mon Dec 08 21:42:08 2014 +0000
+++ b/main.cpp Mon Dec 08 22:27:49 2014 +0000
@@ -17,9 +17,7 @@
#include "mbed.h"
#include "BLEDevice.h"
-BLEDevice ble;
-
-/*
+/**
* For this demo application, populate the beacon advertisement payload
* with 2 AD structures: FLAG and MSD (manufacturer specific data).
*
@@ -27,36 +25,41 @@
* Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 11, 18
*/
-/*
- * The Beacon payload (encapsulated within the MSD advertising data structure)
- * has the following composition:
- * 128-Bit UUID = 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0
- * Major/Minor = 0000 / 0000
- * Tx Power = C8
- */
-const uint8_t beaconPayload[] = {
- 0x4C, 0x00,
- 0x02,
- 0x15,
- 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78,
- 0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0,
- 0x00, 0x00,
- 0x00, 0x00,
- 0xC8
-};
+BLEDevice ble;
+
+ /**
+ * The Beacon payload (encapsulated within the MSD advertising data structure)
+ * has the following composition:
+ * 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 (-56dB)
+ */
+ const static uint8_t iBeaconPayload[] = {
+ 0x4C, 0x00, // Company identifier code (0x004C == Apple)
+ 0x02, // ID
+ 0x15, // length of the remaining payload
+ 0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, // location UUID
+ 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61,
+ 0x00, 0x00, // the major value to differentiate a location
+ 0x00, 0x00, // the minor value to differentiate a location
+ 0xC8 // 2's complement of the Tx power (-56dB)
+ };
int main(void)
{
+ /* Initialize BLE baselayer */
ble.init();
-
- ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
- ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, beaconPayload, sizeof(beaconPayload));
-
+
+ /* Set up iBeacon data*/
+ ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE );
+ ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, iBeaconPayload, sizeof(iBeaconPayload));
+
+ /* Set advertising interval. Longer interval = longer battery life */
ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);
- ble.setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(1000));
+ ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
ble.startAdvertising();
for (;;) {
- ble.waitForEvent();
+ ble.waitForEvent();
}
}
