Bluetooth Low Energy for Smart Plug

Dependencies:   BLE_API mbed nRF51822

Revision:
0:25ad6eba7916
Child:
2:6db5c9a2894c
diff -r 000000000000 -r 25ad6eba7916 SmartPlugBLE.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmartPlugBLE.h	Tue Jul 07 04:02:14 2015 +0000
@@ -0,0 +1,66 @@
+#ifndef SMART_PLUG_BLE_H
+#define SMART_PLUG_BLE_H
+
+#include "SmartPlug.h"
+#include "MVC.h"
+#include "mbed.h"
+#include "SPCommunication.h"
+#include <vector> 
+
+
+class SmartPlugBLE: public Observable
+{
+    public:
+        SmartPlugBLE()
+        {
+            ticker.attach(this,&SmartPlugBLE::periodicCallback, 1); // blink LED every second
+        }    
+            
+        void onRelayWrite(uint8_t *data)
+        {
+            updateRelay(data);
+            notifyObservers();
+        }
+        
+        void updateRelay(const uint8_t *data)
+        {
+            smartPlug.setRelay(data);
+        }
+        
+        void notifyObservers()
+        {
+            for(int i=0;i<observers.size();i++)
+            {
+                observers[i].update((void*)&smartPlug);
+            }
+        }
+        
+        void addObserver(Observer o)
+        {
+            observers.push_back(o);
+        }
+        
+        void periodicCallback(void) 
+        {
+            //led1 = !led1; /* Do blinky on LED1 while we're waiting for BLE events */
+        }
+        
+        void updateData(void)
+        {
+            smartPlug.setVoltage(smartPlug.getVoltage()+1);//(spComm.getVoltage());
+            smartPlug.setCurrent(smartPlug.getCurrent()+1);//(spComm.getCurrent());
+            smartPlug.setPower(smartPlug.getPower()+1);//(spComm.getPower());
+            smartPlug.setPowerFactor(smartPlug.getPowerFactor()+1);//(spComm.getPowerFactor());
+            notifyObservers();
+        }
+        
+    private:
+        SmartPlug smartPlug;
+        Ticker ticker;
+        //DigitalOut led1;
+        SPCommunication spComm;
+        //BLECommunication bleComm;
+        vector<Observer> observers;
+};
+
+#endif
\ No newline at end of file