The Location Puck gives your smartphone context about its location. Built on the Puck IOT platform.

Dependencies:   Puck mbed

The location puck will give your smartphone context about the phone’s location. You can later set up rules for what should happen at different locations in the smartphone companion application (Puck Central).

A tutorial for the Location Puck is available on GitHub.

Tutorials and in-depth documentation for the Puck platform is available at the project's GitHub page

Revision:
9:28eb877be5f8
Parent:
8:54535e2f4098
Child:
10:970a9922952b
--- a/main.cpp	Thu Jul 03 12:51:28 2014 +0000
+++ b/main.cpp	Wed Jul 23 14:47:06 2014 +0000
@@ -1,53 +1,10 @@
-#include <mbed.h>
-#include "BLEDevice.h"
-
-#define DEBUG 0
-#ifdef DEBUG
-    Serial pc(USBTX, USBRX);
-    #define LOG(args...)    pc.printf(args)
-#else
-    #define LOG(args...)
-#endif
+#define LOG_LEVEL_INFO
+#include "Puck.h"
 
-/*
- * 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  = 1337 / XXXX
- * Tx Power     = C8
- */
-const static uint8_t beaconPayload[] = {
-    0x00, 0x4C, // 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,
-    0x13, 0x37, // the major value to differenciate a location (Our app requires 1337 as major number)
-    0x13, 0x38, // the minor value to differenciate a location (Change this to differentiate location pucks)
-    0xC8        // 2's complement of the Tx power (-56dB)
-};
+Puck* puck = &Puck::getPuck();
 
-BLEDevice ble;
-DigitalOut led1(LED1);
 
 int main(void) {
-    led1 = 1;
-
-    LOG("Initializing ble beacon\n");
-    ble.init();
-
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA,
-                    beaconPayload, sizeof(beaconPayload));
-    
-    ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);
-    ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
-
-    ble.startAdvertising();
-    LOG("Starting advertising!\n");
-
-    for(;;) {
-        led1 = !led1;
-        wait(1);
-    }
-}
+    puck->init(0xBA55);
+    while(puck->drive());
+}
\ No newline at end of file