Bluetooth Low Energy for Smart Plug
Dependencies: BLE_API mbed nRF51822
Fork of SmartPlugBLE by
main.cpp@0:25ad6eba7916, 2015-07-07 (annotated)
- Committer:
- Slepnir
- Date:
- Tue Jul 07 04:02:14 2015 +0000
- Revision:
- 0:25ad6eba7916
- Child:
- 2:6db5c9a2894c
V1:; - Successfully advertise and connect ; - Update fail; - Can read only 4 bit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Slepnir | 0:25ad6eba7916 | 1 | #include "mbed.h" |
Slepnir | 0:25ad6eba7916 | 2 | #include "SmartPlugBLE.h" |
Slepnir | 0:25ad6eba7916 | 3 | #include "BLECommunication.h" |
Slepnir | 0:25ad6eba7916 | 4 | #include "BLE.h" |
Slepnir | 0:25ad6eba7916 | 5 | BLE ble; |
Slepnir | 0:25ad6eba7916 | 6 | uint8_t DEVICE_NAME[] = "NRFTEST"; |
Slepnir | 0:25ad6eba7916 | 7 | uint16_t list[] = {SPS_UUID_SERVICE}; |
Slepnir | 0:25ad6eba7916 | 8 | |
Slepnir | 0:25ad6eba7916 | 9 | void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) |
Slepnir | 0:25ad6eba7916 | 10 | { |
Slepnir | 0:25ad6eba7916 | 11 | ble.gap().startAdvertising(); |
Slepnir | 0:25ad6eba7916 | 12 | } |
Slepnir | 0:25ad6eba7916 | 13 | |
Slepnir | 0:25ad6eba7916 | 14 | int main(void) |
Slepnir | 0:25ad6eba7916 | 15 | { |
Slepnir | 0:25ad6eba7916 | 16 | ble.gap().onDisconnection(disconnectionCallback); |
Slepnir | 0:25ad6eba7916 | 17 | Ticker ticker; |
Slepnir | 0:25ad6eba7916 | 18 | SmartPlugBLE smartPlugBLE; |
Slepnir | 0:25ad6eba7916 | 19 | BLECommunication bleComm(smartPlugBLE,ble); |
Slepnir | 0:25ad6eba7916 | 20 | ticker.attach(&bleComm,&BLECommunication::periodicCallback, 1); |
Slepnir | 0:25ad6eba7916 | 21 | /* Setup advertising. */ |
Slepnir | 0:25ad6eba7916 | 22 | |
Slepnir | 0:25ad6eba7916 | 23 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); |
Slepnir | 0:25ad6eba7916 | 24 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t*)list, sizeof(list)); |
Slepnir | 0:25ad6eba7916 | 25 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::UNKNOWN); |
Slepnir | 0:25ad6eba7916 | 26 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME));//cannot blink after this |
Slepnir | 0:25ad6eba7916 | 27 | |
Slepnir | 0:25ad6eba7916 | 28 | ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
Slepnir | 0:25ad6eba7916 | 29 | ble.gap().setAdvertisingInterval(1000); /* 1000ms */ |
Slepnir | 0:25ad6eba7916 | 30 | |
Slepnir | 0:25ad6eba7916 | 31 | ble.gap().startAdvertising(); |
Slepnir | 0:25ad6eba7916 | 32 | |
Slepnir | 0:25ad6eba7916 | 33 | |
Slepnir | 0:25ad6eba7916 | 34 | while(1) { |
Slepnir | 0:25ad6eba7916 | 35 | ble.waitForEvent(); |
Slepnir | 0:25ad6eba7916 | 36 | } |
Slepnir | 0:25ad6eba7916 | 37 | } |