blynk & neopixelring & w7500

Fork of WIZwiki-7500_Blynk by IOP

Revision:
9:7369ec77a3ea
Parent:
7:8879692d4e6c
--- a/WidgetBridge.h	Wed Oct 12 10:38:37 2016 +0300
+++ b/WidgetBridge.h	Thu Jan 05 14:55:36 2017 +0200
@@ -11,15 +11,15 @@
 #ifndef WidgetBridge_h
 #define WidgetBridge_h
 
-#include <Blynk/BlynkApi.h>
+#include <Blynk/BlynkWidgetBase.h>
 
 class WidgetBridge
+    : private BlynkWidgetBase
 {
 public:
-    WidgetBridge(int vPin)
-        : mPin(vPin)
+    WidgetBridge(uint8_t vPin)
+        : BlynkWidgetBase(vPin)
     {}
-    void onWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &param) {}
 
     void setAuthToken(const char* token) {
         char mem[BLYNK_MAX_SENDBYTES];
@@ -52,53 +52,14 @@
         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
     }
 
-    template <typename T>
-    void virtualWrite(int pin, const T& data) {
-        char mem[BLYNK_MAX_SENDBYTES];
-        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) {
+    template <typename... Args>
+    void virtualWrite(int pin, Args... values) {
         char mem[BLYNK_MAX_SENDBYTES];
         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_BRIDGE, 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[BLYNK_MAX_SENDBYTES];
-        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_BRIDGE, 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[BLYNK_MAX_SENDBYTES];
-        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);
+        cmd.add_multi(values...);
         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
     }
 
@@ -115,8 +76,6 @@
         virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1);
     }
 
-private:
-    int mPin;
 };
 
 #endif