The Location Puck gives your smartphone context about its location. Built on the Puck IOT platform.
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
main.cpp
- Committer:
- cristea
- Date:
- 2014-06-19
- Revision:
- 6:306e898c274f
- Parent:
- 5:8ccb1cd6694d
- Child:
- 8:54535e2f4098
File content as of revision 6:306e898c274f:
#include <mbed.h> #include "nRF51822n.h" #define DEBUG 1 #ifdef DEBUG Serial pc(USBTX, USBRX); #define LOG(args...) pc.printf(args) #else #define LOG(args...) #endif /* * 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 */ 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 0x13, 0x38, // the minor value to differenciate a location 0xC8 // 2's complement of the Tx power (-56dB) }; nRF51822n nrf; DigitalOut led1(LED1); GapAdvertisingData advData; GapAdvertisingData scanResponse; GapAdvertisingParams advParams(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED); int main(void) { led1 = 1; LOG("Starting init\n"); nrf.init(); nrf.reset(); LOG("Init and reset nrf done\n"); advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED); advData.addData(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, beaconPayload, sizeof(beaconPayload)); advData.addAppearance(GapAdvertisingData::UNKNOWN); nrf.getGap().setAdvertisingData(advData, scanResponse); LOG("Set advertising data done!\n"); nrf.getGap().startAdvertising(advParams); LOG("Starting advertising!\n"); for(;;) { led1 = !led1; wait(1); } }