BLE iBeacon Scan example for NNN40
Dependencies: BLE_API BLE_iBeacon_Scan mbed-dev nRF51822
BLE iBeacon Scan example for NNN40
main.cpp@0:17c37c570285, 2015-11-26 (annotated)
- Committer:
- marcusC
- Date:
- Thu Nov 26 06:05:32 2015 +0000
- Revision:
- 0:17c37c570285
BLE iBeacon Scan example for NNN40
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcusC | 0:17c37c570285 | 1 | #include "mbed.h" |
marcusC | 0:17c37c570285 | 2 | #include "BLE.h" |
marcusC | 0:17c37c570285 | 3 | #include "iBeaconScan.h" |
marcusC | 0:17c37c570285 | 4 | |
marcusC | 0:17c37c570285 | 5 | Serial pc(TX_PIN_NUMBER, RX_PIN_NUMBER); |
marcusC | 0:17c37c570285 | 6 | DigitalOut led1(LED1); |
marcusC | 0:17c37c570285 | 7 | union unionType u; |
marcusC | 0:17c37c570285 | 8 | |
marcusC | 0:17c37c570285 | 9 | void AdvertisementReportCallback(const Gap::AdvertisementCallbackParams_t *params) |
marcusC | 0:17c37c570285 | 10 | { |
marcusC | 0:17c37c570285 | 11 | led1 = !led1; |
marcusC | 0:17c37c570285 | 12 | uint8_t i; |
marcusC | 0:17c37c570285 | 13 | |
marcusC | 0:17c37c570285 | 14 | if (memcmp(params->advertisingData,iBeaconPrefix,sizeof(iBeaconPrefix)) != 0) |
marcusC | 0:17c37c570285 | 15 | return; |
marcusC | 0:17c37c570285 | 16 | |
marcusC | 0:17c37c570285 | 17 | memset(u.rawData, 0 , sizeof(u.rawData)); |
marcusC | 0:17c37c570285 | 18 | memcpy(u.rawData, params->advertisingData,params->advertisingDataLen); |
marcusC | 0:17c37c570285 | 19 | |
marcusC | 0:17c37c570285 | 20 | pc.printf("uuid:"); |
marcusC | 0:17c37c570285 | 21 | for( i = 0; i < 16; i++) |
marcusC | 0:17c37c570285 | 22 | pc.printf("%02x ",u.iBeaconPayload_m.uuid[i]); |
marcusC | 0:17c37c570285 | 23 | pc.printf("\r\n"); |
marcusC | 0:17c37c570285 | 24 | pc.printf("majorNumber:%02x %02x\r\n",u.iBeaconPayload_m.majorNumber[0], u.iBeaconPayload_m.majorNumber[1]); |
marcusC | 0:17c37c570285 | 25 | pc.printf("minorNumber:%02x %02x\r\n",u.iBeaconPayload_m.minorNumber[0], u.iBeaconPayload_m.minorNumber[1]); |
marcusC | 0:17c37c570285 | 26 | pc.printf("txPower:%02x\r\n",u.iBeaconPayload_m.txPower); |
marcusC | 0:17c37c570285 | 27 | } |
marcusC | 0:17c37c570285 | 28 | |
marcusC | 0:17c37c570285 | 29 | int main(void) |
marcusC | 0:17c37c570285 | 30 | { |
marcusC | 0:17c37c570285 | 31 | led1 = 0; |
marcusC | 0:17c37c570285 | 32 | pc.baud(115200); |
marcusC | 0:17c37c570285 | 33 | pc.printf("Hello\n"); |
marcusC | 0:17c37c570285 | 34 | |
marcusC | 0:17c37c570285 | 35 | iBeaconInit(); |
marcusC | 0:17c37c570285 | 36 | iBeaconStartScan(); |
marcusC | 0:17c37c570285 | 37 | wait(10); |
marcusC | 0:17c37c570285 | 38 | iBeaconStopScan(); |
marcusC | 0:17c37c570285 | 39 | |
marcusC | 0:17c37c570285 | 40 | while(1) { |
marcusC | 0:17c37c570285 | 41 | } |
marcusC | 0:17c37c570285 | 42 | } |