Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc. http://www.blynk.cc/

Dependents:   Blynk_RBL_BLE_Nano Blynk_MicroBit Blynk_Serial Blynk_RBL_BLE_Nano

Revision:
0:58b20b438383
Child:
3:31e4b850b126
diff -r 000000000000 -r 58b20b438383 WidgetBridge.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WidgetBridge.h	Sat May 07 08:02:50 2016 +0000
@@ -0,0 +1,122 @@
+/**
+ * @file       WidgetBridge.h
+ * @author     Volodymyr Shymanskyy
+ * @license    This project is released under the MIT License (MIT)
+ * @copyright  Copyright (c) 2015 Volodymyr Shymanskyy
+ * @date       Apr 2015
+ * @brief
+ *
+ */
+
+#ifndef WidgetBridge_h
+#define WidgetBridge_h
+
+#include <Blynk/BlynkApi.h>
+
+class WidgetBridge
+{
+public:
+    WidgetBridge(int vPin)
+        : mPin(vPin)
+    {}
+    void onWrite(BlynkReq& request, const BlynkParam& param) {}
+
+    void setAuthToken(const char* token) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("i");
+        cmd.add(token);
+        Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T>
+    void digitalWrite(const T& pin, int val) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("dw");
+        cmd.add(pin);
+        cmd.add(val);
+        Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T>
+    void analogWrite(const T& pin, int val) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("aw");
+        cmd.add(pin);
+        cmd.add(val);
+        Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T>
+    void virtualWrite(int pin, const T& data) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("vw");
+        cmd.add(pin);
+        cmd.add(data);
+        Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T1, typename T2>
+    void virtualWrite(int pin, const T1& data1, const T2& data2) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("vw");
+        cmd.add(pin);
+        cmd.add(data1);
+        cmd.add(data2);
+        Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T1, typename T2, typename T3>
+    void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("vw");
+        cmd.add(pin);
+        cmd.add(data1);
+        cmd.add(data2);
+        cmd.add(data3);
+        Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4>
+    void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3, const T4& data4) {
+        char mem[64];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("vw");
+        cmd.add(pin);
+        cmd.add(data1);
+        cmd.add(data2);
+        cmd.add(data3);
+        cmd.add(data4);
+        Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
+    }
+
+    void virtualWriteBinary(int pin, const void* buff, size_t len) {
+        char mem[8];
+        BlynkParam cmd(mem, 0, sizeof(mem));
+        cmd.add(mPin);
+        cmd.add("vw");
+        cmd.add(pin);
+        Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength(), buff, len);
+    }
+
+    void virtualWrite(int pin, const BlynkParam& param) {
+        virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1);
+    }
+
+private:
+    int mPin;
+};
+
+#endif