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