![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
aidanReceiver
Dependencies: mbed BLE_API nRF51822
receiver_main.cpp@4:25c53ae0ae04, 2019-04-17 (annotated)
- Committer:
- khyein8154
- Date:
- Wed Apr 17 21:18:08 2019 +0000
- Revision:
- 4:25c53ae0ae04
- Parent:
- 3:ca23d318cb12
- Child:
- 5:45c48a82f202
printing each char in buf received
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aidanjabb | 0:50406b29435a | 1 | #include "mbed.h" |
aidanjabb | 0:50406b29435a | 2 | #include "ble/BLE.h" |
khyein8154 | 4:25c53ae0ae04 | 3 | #include <string> |
khyein8154 | 4:25c53ae0ae04 | 4 | |
khyein8154 | 4:25c53ae0ae04 | 5 | using namespace std; |
jzabins2 | 2:89b8aef35194 | 6 | |
khyein8154 | 3:ca23d318cb12 | 7 | Serial pc(USBTX, USBRX); |
khyein8154 | 3:ca23d318cb12 | 8 | |
aidanjabb | 0:50406b29435a | 9 | #define LED_RED p21 |
aidanjabb | 0:50406b29435a | 10 | #define LED_GREEN p22 |
aidanjabb | 0:50406b29435a | 11 | #define LED_BLUE p23 |
aidanjabb | 0:50406b29435a | 12 | #define BUTTON_PIN p17 |
aidanjabb | 0:50406b29435a | 13 | #define BATTERY_PIN p1 |
jzabins2 | 2:89b8aef35194 | 14 | |
aidanjabb | 0:50406b29435a | 15 | DigitalOut led1(LED_RED); |
aidanjabb | 0:50406b29435a | 16 | DigitalOut blueLed(LED_BLUE); |
jzabins2 | 2:89b8aef35194 | 17 | |
aidanjabb | 0:50406b29435a | 18 | const static char DEVICE_NAME[] = "Joe-Aidan"; |
aidanjabb | 1:3ad5b46f9abc | 19 | |
jzabins2 | 2:89b8aef35194 | 20 | struct Data { |
jzabins2 | 2:89b8aef35194 | 21 | uint32_t seqNum; |
jzabins2 | 2:89b8aef35194 | 22 | }; |
aidanjabb | 1:3ad5b46f9abc | 23 | |
aidanjabb | 0:50406b29435a | 24 | // void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) |
jzabins2 | 2:89b8aef35194 | 25 | |
aidanjabb | 0:50406b29435a | 26 | void scanCallback(const Gap::AdvertisementCallbackParams_t *params) |
aidanjabb | 0:50406b29435a | 27 | { |
aidanjabb | 0:50406b29435a | 28 | if (*(params->Gap::AdvertisementCallbackParams_t::peerAddr) == (std::uint8_t)0xF34F887FED4E) { |
aidanjabb | 0:50406b29435a | 29 | char * buf = (char*) params->advertisingData; |
aidanjabb | 0:50406b29435a | 30 | |
aidanjabb | 0:50406b29435a | 31 | if (buf[0] == GapAdvertisingData::COMPLETE_LOCAL_NAME) { |
aidanjabb | 0:50406b29435a | 32 | blueLed = 0; |
aidanjabb | 0:50406b29435a | 33 | } |
aidanjabb | 0:50406b29435a | 34 | |
aidanjabb | 0:50406b29435a | 35 | for (int i=0; i < params->advertisingDataLen; i++) { |
khyein8154 | 4:25c53ae0ae04 | 36 | //if ( i >= params->advertisingDataLen-2 && buf[i] == 'n' ) { |
khyein8154 | 4:25c53ae0ae04 | 37 | // blueLed = 0; |
khyein8154 | 4:25c53ae0ae04 | 38 | // } |
khyein8154 | 4:25c53ae0ae04 | 39 | pc.printf("byte %d: %c\n", i, buf[i]); |
aidanjabb | 0:50406b29435a | 40 | } |
aidanjabb | 0:50406b29435a | 41 | |
aidanjabb | 0:50406b29435a | 42 | led1 = 0; |
aidanjabb | 0:50406b29435a | 43 | } |
aidanjabb | 0:50406b29435a | 44 | |
aidanjabb | 0:50406b29435a | 45 | // ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); |
jzabins2 | 2:89b8aef35194 | 46 | |
aidanjabb | 0:50406b29435a | 47 | return; |
aidanjabb | 0:50406b29435a | 48 | } |
jzabins2 | 2:89b8aef35194 | 49 | |
jzabins2 | 2:89b8aef35194 | 50 | |
aidanjabb | 0:50406b29435a | 51 | void bleInitComplete(BLE::InitializationCompleteCallbackContext *params) |
aidanjabb | 0:50406b29435a | 52 | { |
aidanjabb | 0:50406b29435a | 53 | BLE &ble = params->ble; |
aidanjabb | 0:50406b29435a | 54 | ble_error_t error = params->error; |
jzabins2 | 2:89b8aef35194 | 55 | |
aidanjabb | 0:50406b29435a | 56 | if (error != BLE_ERROR_NONE) { |
aidanjabb | 0:50406b29435a | 57 | return; |
aidanjabb | 0:50406b29435a | 58 | } |
aidanjabb | 0:50406b29435a | 59 | |
aidanjabb | 0:50406b29435a | 60 | led1 = 1; |
aidanjabb | 0:50406b29435a | 61 | blueLed = 1; |
jzabins2 | 2:89b8aef35194 | 62 | |
aidanjabb | 0:50406b29435a | 63 | |
aidanjabb | 0:50406b29435a | 64 | /* Set up scanning prodedure */ |
aidanjabb | 0:50406b29435a | 65 | ble.gap().setScanParams(GapScanningParams::SCAN_INTERVAL_MAX, GapScanningParams::SCAN_WINDOW_MAX, 0, false); |
aidanjabb | 0:50406b29435a | 66 | ble.gap().startScan(scanCallback); |
aidanjabb | 0:50406b29435a | 67 | } |
jzabins2 | 2:89b8aef35194 | 68 | |
jzabins2 | 2:89b8aef35194 | 69 | |
aidanjabb | 0:50406b29435a | 70 | int main(void) |
aidanjabb | 0:50406b29435a | 71 | { |
aidanjabb | 0:50406b29435a | 72 | BLE& ble = BLE::Instance(BLE::DEFAULT_INSTANCE); |
aidanjabb | 0:50406b29435a | 73 | ble.init(bleInitComplete); |
aidanjabb | 0:50406b29435a | 74 | |
khyein8154 | 3:ca23d318cb12 | 75 | pc.printf("Hello World!\n"); |
khyein8154 | 3:ca23d318cb12 | 76 | |
aidanjabb | 0:50406b29435a | 77 | /* SpinWait for initialization to complete. This is necessary because the |
aidanjabb | 0:50406b29435a | 78 | * BLE object is used in the main loop below. */ |
aidanjabb | 0:50406b29435a | 79 | while (ble.hasInitialized() == false) { /* spin loop */ } |
aidanjabb | 0:50406b29435a | 80 | |
aidanjabb | 0:50406b29435a | 81 | while (1) { |
aidanjabb | 0:50406b29435a | 82 | ble.waitForEvent(); // low power wait for event |
aidanjabb | 0:50406b29435a | 83 | } |
jzabins2 | 2:89b8aef35194 | 84 | } |