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:
Fri Jan 26 22:18:19 2018 +0000
Revision:
22:e1d3971fd902
Parent:
9:7369ec77a3ea
Fix BlynkSystemInit for MBED

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
Volodymyr Shymanskyy 9:7369ec77a3ea 14 #include <Blynk/BlynkWidgetBase.h>
vshymanskyy 0:58b20b438383 15
vshymanskyy 0:58b20b438383 16 class WidgetBridge
Volodymyr Shymanskyy 9:7369ec77a3ea 17 : private BlynkWidgetBase
vshymanskyy 0:58b20b438383 18 {
vshymanskyy 0:58b20b438383 19 public:
Volodymyr Shymanskyy 9:7369ec77a3ea 20 WidgetBridge(uint8_t vPin)
Volodymyr Shymanskyy 9:7369ec77a3ea 21 : BlynkWidgetBase(vPin)
vshymanskyy 0:58b20b438383 22 {}
vshymanskyy 0:58b20b438383 23
vshymanskyy 0:58b20b438383 24 void setAuthToken(const char* token) {
Volodymyr Shymanskyy 7:8879692d4e6c 25 char mem[BLYNK_MAX_SENDBYTES];
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) {
Volodymyr Shymanskyy 7:8879692d4e6c 35 char mem[BLYNK_MAX_SENDBYTES];
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) {
Volodymyr Shymanskyy 7:8879692d4e6c 46 char mem[BLYNK_MAX_SENDBYTES];
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
Volodymyr Shymanskyy 9:7369ec77a3ea 55 template <typename... Args>
Volodymyr Shymanskyy 9:7369ec77a3ea 56 void virtualWrite(int pin, Args... values) {
Volodymyr Shymanskyy 7:8879692d4e6c 57 char mem[BLYNK_MAX_SENDBYTES];
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);
Volodymyr Shymanskyy 9:7369ec77a3ea 62 cmd.add_multi(values...);
Volodymyr Shymanskyy 3:31e4b850b126 63 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
vshymanskyy 0:58b20b438383 64 }
vshymanskyy 0:58b20b438383 65
vshymanskyy 0:58b20b438383 66 void virtualWriteBinary(int pin, const void* buff, size_t len) {
vshymanskyy 0:58b20b438383 67 char mem[8];
vshymanskyy 0:58b20b438383 68 BlynkParam cmd(mem, 0, sizeof(mem));
vshymanskyy 0:58b20b438383 69 cmd.add(mPin);
vshymanskyy 0:58b20b438383 70 cmd.add("vw");
vshymanskyy 0:58b20b438383 71 cmd.add(pin);
vshymanskyy 0:58b20b438383 72 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength(), buff, len);
vshymanskyy 0:58b20b438383 73 }
vshymanskyy 0:58b20b438383 74
vshymanskyy 0:58b20b438383 75 void virtualWrite(int pin, const BlynkParam& param) {
vshymanskyy 0:58b20b438383 76 virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1);
vshymanskyy 0:58b20b438383 77 }
vshymanskyy 0:58b20b438383 78
vshymanskyy 0:58b20b438383 79 };
vshymanskyy 0:58b20b438383 80
vshymanskyy 0:58b20b438383 81 #endif