![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
aidanReceiver
Dependencies: mbed BLE_API nRF51822
receiver_main.cpp@5:45c48a82f202, 2019-04-17 (annotated)
- Committer:
- khyein8154
- Date:
- Wed Apr 17 21:42:16 2019 +0000
- Revision:
- 5:45c48a82f202
- Parent:
- 4:25c53ae0ae04
- Child:
- 6:55c87c9bc90e
printing hex together in single line
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) { |
khyein8154 | 5:45c48a82f202 | 29 | uint8_t * buf = (uint8_t *) 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 | } |
khyein8154 | 5:45c48a82f202 | 34 | // pc.printf("Hello\n"); |
aidanjabb | 0:50406b29435a | 35 | |
aidanjabb | 0:50406b29435a | 36 | for (int i=0; i < params->advertisingDataLen; i++) { |
khyein8154 | 4:25c53ae0ae04 | 37 | //if ( i >= params->advertisingDataLen-2 && buf[i] == 'n' ) { |
khyein8154 | 4:25c53ae0ae04 | 38 | // blueLed = 0; |
khyein8154 | 4:25c53ae0ae04 | 39 | // } |
khyein8154 | 5:45c48a82f202 | 40 | pc.printf("%02x ", buf[i]); |
aidanjabb | 0:50406b29435a | 41 | } |
khyein8154 | 5:45c48a82f202 | 42 | pc.printf("\n"); |
aidanjabb | 0:50406b29435a | 43 | |
aidanjabb | 0:50406b29435a | 44 | led1 = 0; |
aidanjabb | 0:50406b29435a | 45 | } |
aidanjabb | 0:50406b29435a | 46 | |
aidanjabb | 0:50406b29435a | 47 | // ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); |
jzabins2 | 2:89b8aef35194 | 48 | |
aidanjabb | 0:50406b29435a | 49 | return; |
aidanjabb | 0:50406b29435a | 50 | } |
jzabins2 | 2:89b8aef35194 | 51 | |
jzabins2 | 2:89b8aef35194 | 52 | |
aidanjabb | 0:50406b29435a | 53 | void bleInitComplete(BLE::InitializationCompleteCallbackContext *params) |
aidanjabb | 0:50406b29435a | 54 | { |
aidanjabb | 0:50406b29435a | 55 | BLE &ble = params->ble; |
aidanjabb | 0:50406b29435a | 56 | ble_error_t error = params->error; |
jzabins2 | 2:89b8aef35194 | 57 | |
aidanjabb | 0:50406b29435a | 58 | if (error != BLE_ERROR_NONE) { |
aidanjabb | 0:50406b29435a | 59 | return; |
aidanjabb | 0:50406b29435a | 60 | } |
aidanjabb | 0:50406b29435a | 61 | |
aidanjabb | 0:50406b29435a | 62 | led1 = 1; |
aidanjabb | 0:50406b29435a | 63 | blueLed = 1; |
jzabins2 | 2:89b8aef35194 | 64 | |
aidanjabb | 0:50406b29435a | 65 | |
aidanjabb | 0:50406b29435a | 66 | /* Set up scanning prodedure */ |
aidanjabb | 0:50406b29435a | 67 | ble.gap().setScanParams(GapScanningParams::SCAN_INTERVAL_MAX, GapScanningParams::SCAN_WINDOW_MAX, 0, false); |
aidanjabb | 0:50406b29435a | 68 | ble.gap().startScan(scanCallback); |
aidanjabb | 0:50406b29435a | 69 | } |
jzabins2 | 2:89b8aef35194 | 70 | |
jzabins2 | 2:89b8aef35194 | 71 | |
aidanjabb | 0:50406b29435a | 72 | int main(void) |
aidanjabb | 0:50406b29435a | 73 | { |
aidanjabb | 0:50406b29435a | 74 | BLE& ble = BLE::Instance(BLE::DEFAULT_INSTANCE); |
aidanjabb | 0:50406b29435a | 75 | ble.init(bleInitComplete); |
aidanjabb | 0:50406b29435a | 76 | |
khyein8154 | 5:45c48a82f202 | 77 | // pc.printf("Hello World!\n"); |
khyein8154 | 3:ca23d318cb12 | 78 | |
aidanjabb | 0:50406b29435a | 79 | /* SpinWait for initialization to complete. This is necessary because the |
aidanjabb | 0:50406b29435a | 80 | * BLE object is used in the main loop below. */ |
aidanjabb | 0:50406b29435a | 81 | while (ble.hasInitialized() == false) { /* spin loop */ } |
aidanjabb | 0:50406b29435a | 82 | |
aidanjabb | 0:50406b29435a | 83 | while (1) { |
aidanjabb | 0:50406b29435a | 84 | ble.waitForEvent(); // low power wait for event |
aidanjabb | 0:50406b29435a | 85 | } |
jzabins2 | 2:89b8aef35194 | 86 | } |