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

Committer:
vshymanskyy
Date:
Sat May 07 08:02:50 2016 +0000
Revision:
0:58b20b438383
Child:
3:31e4b850b126
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vshymanskyy 0:58b20b438383 1 /**
vshymanskyy 0:58b20b438383 2 * @file WidgetBridge.h
vshymanskyy 0:58b20b438383 3 * @author Volodymyr Shymanskyy
vshymanskyy 0:58b20b438383 4 * @license This project is released under the MIT License (MIT)
vshymanskyy 0:58b20b438383 5 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy
vshymanskyy 0:58b20b438383 6 * @date Apr 2015
vshymanskyy 0:58b20b438383 7 * @brief
vshymanskyy 0:58b20b438383 8 *
vshymanskyy 0:58b20b438383 9 */
vshymanskyy 0:58b20b438383 10
vshymanskyy 0:58b20b438383 11 #ifndef WidgetBridge_h
vshymanskyy 0:58b20b438383 12 #define WidgetBridge_h
vshymanskyy 0:58b20b438383 13
vshymanskyy 0:58b20b438383 14 #include <Blynk/BlynkApi.h>
vshymanskyy 0:58b20b438383 15
vshymanskyy 0:58b20b438383 16 class WidgetBridge
vshymanskyy 0:58b20b438383 17 {
vshymanskyy 0:58b20b438383 18 public:
vshymanskyy 0:58b20b438383 19 WidgetBridge(int vPin)
vshymanskyy 0:58b20b438383 20 : mPin(vPin)
vshymanskyy 0:58b20b438383 21 {}
vshymanskyy 0:58b20b438383 22 void onWrite(BlynkReq& request, const BlynkParam& param) {}
vshymanskyy 0:58b20b438383 23
vshymanskyy 0:58b20b438383 24 void setAuthToken(const char* token) {
vshymanskyy 0:58b20b438383 25 char mem[64];
vshymanskyy 0:58b20b438383 26 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 27 cmd.add(mPin);
vshymanskyy 0:58b20b438383 28 cmd.add("i");
vshymanskyy 0:58b20b438383 29 cmd.add(token);
vshymanskyy 0:58b20b438383 30 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 31 }
vshymanskyy 0:58b20b438383 32
vshymanskyy 0:58b20b438383 33 template <typename T>
vshymanskyy 0:58b20b438383 34 void digitalWrite(const T& pin, int val) {
vshymanskyy 0:58b20b438383 35 char mem[64];
vshymanskyy 0:58b20b438383 36 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 37 cmd.add(mPin);
vshymanskyy 0:58b20b438383 38 cmd.add("dw");
vshymanskyy 0:58b20b438383 39 cmd.add(pin);
vshymanskyy 0:58b20b438383 40 cmd.add(val);
vshymanskyy 0:58b20b438383 41 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 42 }
vshymanskyy 0:58b20b438383 43
vshymanskyy 0:58b20b438383 44 template <typename T>
vshymanskyy 0:58b20b438383 45 void analogWrite(const T& pin, int val) {
vshymanskyy 0:58b20b438383 46 char mem[64];
vshymanskyy 0:58b20b438383 47 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 48 cmd.add(mPin);
vshymanskyy 0:58b20b438383 49 cmd.add("aw");
vshymanskyy 0:58b20b438383 50 cmd.add(pin);
vshymanskyy 0:58b20b438383 51 cmd.add(val);
vshymanskyy 0:58b20b438383 52 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 53 }
vshymanskyy 0:58b20b438383 54
vshymanskyy 0:58b20b438383 55 template <typename T>
vshymanskyy 0:58b20b438383 56 void virtualWrite(int pin, const T& data) {
vshymanskyy 0:58b20b438383 57 char mem[64];
vshymanskyy 0:58b20b438383 58 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 59 cmd.add(mPin);
vshymanskyy 0:58b20b438383 60 cmd.add("vw");
vshymanskyy 0:58b20b438383 61 cmd.add(pin);
vshymanskyy 0:58b20b438383 62 cmd.add(data);
vshymanskyy 0:58b20b438383 63 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 64 }
vshymanskyy 0:58b20b438383 65
vshymanskyy 0:58b20b438383 66 template <typename T1, typename T2>
vshymanskyy 0:58b20b438383 67 void virtualWrite(int pin, const T1& data1, const T2& data2) {
vshymanskyy 0:58b20b438383 68 char mem[64];
vshymanskyy 0:58b20b438383 69 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 70 cmd.add(mPin);
vshymanskyy 0:58b20b438383 71 cmd.add("vw");
vshymanskyy 0:58b20b438383 72 cmd.add(pin);
vshymanskyy 0:58b20b438383 73 cmd.add(data1);
vshymanskyy 0:58b20b438383 74 cmd.add(data2);
vshymanskyy 0:58b20b438383 75 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 76 }
vshymanskyy 0:58b20b438383 77
vshymanskyy 0:58b20b438383 78 template <typename T1, typename T2, typename T3>
vshymanskyy 0:58b20b438383 79 void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3) {
vshymanskyy 0:58b20b438383 80 char mem[64];
vshymanskyy 0:58b20b438383 81 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 82 cmd.add(mPin);
vshymanskyy 0:58b20b438383 83 cmd.add("vw");
vshymanskyy 0:58b20b438383 84 cmd.add(pin);
vshymanskyy 0:58b20b438383 85 cmd.add(data1);
vshymanskyy 0:58b20b438383 86 cmd.add(data2);
vshymanskyy 0:58b20b438383 87 cmd.add(data3);
vshymanskyy 0:58b20b438383 88 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 89 }
vshymanskyy 0:58b20b438383 90
vshymanskyy 0:58b20b438383 91 template <typename T1, typename T2, typename T3, typename T4>
vshymanskyy 0:58b20b438383 92 void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3, const T4& data4) {
vshymanskyy 0:58b20b438383 93 char mem[64];
vshymanskyy 0:58b20b438383 94 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 95 cmd.add(mPin);
vshymanskyy 0:58b20b438383 96 cmd.add("vw");
vshymanskyy 0:58b20b438383 97 cmd.add(pin);
vshymanskyy 0:58b20b438383 98 cmd.add(data1);
vshymanskyy 0:58b20b438383 99 cmd.add(data2);
vshymanskyy 0:58b20b438383 100 cmd.add(data3);
vshymanskyy 0:58b20b438383 101 cmd.add(data4);
vshymanskyy 0:58b20b438383 102 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 103 }
vshymanskyy 0:58b20b438383 104
vshymanskyy 0:58b20b438383 105 void virtualWriteBinary(int pin, const void* buff, size_t len) {
vshymanskyy 0:58b20b438383 106 char mem[8];
vshymanskyy 0:58b20b438383 107 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 108 cmd.add(mPin);
vshymanskyy 0:58b20b438383 109 cmd.add("vw");
vshymanskyy 0:58b20b438383 110 cmd.add(pin);
vshymanskyy 0:58b20b438383 111 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength(), buff, len);
vshymanskyy 0:58b20b438383 112 }
vshymanskyy 0:58b20b438383 113
vshymanskyy 0:58b20b438383 114 void virtualWrite(int pin, const BlynkParam& param) {
vshymanskyy 0:58b20b438383 115 virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1);
vshymanskyy 0:58b20b438383 116 }
vshymanskyy 0:58b20b438383 117
vshymanskyy 0:58b20b438383 118 private:
vshymanskyy 0:58b20b438383 119 int mPin;
vshymanskyy 0:58b20b438383 120 };
vshymanskyy 0:58b20b438383 121
vshymanskyy 0:58b20b438383 122 #endif