Bluetooth Low Energy for Smart Plug

Dependencies:   BLE_API mbed nRF51822

Fork of SmartPlugBLE by Pavit Noinongyao

Revision:
0:25ad6eba7916
Child:
2:6db5c9a2894c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Jul 07 04:02:14 2015 +0000
@@ -0,0 +1,37 @@
+#include "mbed.h"
+#include "SmartPlugBLE.h"
+#include "BLECommunication.h"
+#include "BLE.h"
+BLE ble;
+uint8_t DEVICE_NAME[] = "NRFTEST";
+uint16_t list[] = {SPS_UUID_SERVICE};
+
+void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
+{
+    ble.gap().startAdvertising();
+}
+
+int main(void)
+{
+    ble.gap().onDisconnection(disconnectionCallback);
+    Ticker ticker;
+    SmartPlugBLE smartPlugBLE;
+    BLECommunication bleComm(smartPlugBLE,ble);
+    ticker.attach(&bleComm,&BLECommunication::periodicCallback, 1);
+    /* Setup advertising. */
+
+    ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
+    ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t*)list, sizeof(list));
+    ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::UNKNOWN);
+    ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME));//cannot blink after this
+
+    ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
+    ble.gap().setAdvertisingInterval(1000); /* 1000ms */
+
+    ble.gap().startAdvertising();
+
+
+    while(1) {
+        ble.waitForEvent();
+    }
+}