BLE iBeacon Scan example for NNN40

Dependencies:   BLE_API BLE_iBeacon_Scan mbed-dev nRF51822

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "BLE.h"
00003 #include "iBeaconScan.h"
00004 
00005 Serial pc(TX_PIN_NUMBER, RX_PIN_NUMBER);
00006 DigitalOut led1(LED1);
00007 union unionType u;
00008 
00009 void AdvertisementReportCallback(const Gap::AdvertisementCallbackParams_t *params)
00010 {
00011   led1 = !led1;
00012   uint8_t i;
00013   
00014   if (memcmp(params->advertisingData,iBeaconPrefix,sizeof(iBeaconPrefix)) != 0)
00015     return;
00016   
00017   memset(u.rawData, 0 , sizeof(u.rawData));
00018   memcpy(u.rawData, params->advertisingData,params->advertisingDataLen);
00019 
00020   pc.printf("uuid:");
00021   for( i = 0; i < 16; i++)
00022     pc.printf("%02x ",u.iBeaconPayload_m.uuid[i]);
00023   pc.printf("\r\n");  
00024   pc.printf("majorNumber:%02x %02x\r\n",u.iBeaconPayload_m.majorNumber[0], u.iBeaconPayload_m.majorNumber[1]);
00025   pc.printf("minorNumber:%02x %02x\r\n",u.iBeaconPayload_m.minorNumber[0], u.iBeaconPayload_m.minorNumber[1]);
00026   pc.printf("txPower:%02x\r\n",u.iBeaconPayload_m.txPower);
00027 }
00028 
00029 int main(void)
00030 {   
00031     led1 = 0;
00032     pc.baud(115200);
00033     pc.printf("Hello\n"); 
00034     
00035     iBeaconInit();
00036     iBeaconStartScan();
00037     wait(10);
00038     iBeaconStopScan();
00039     
00040     while(1) { 
00041     }
00042 }