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
Diff: Blynk/BlynkApi.h
- Revision:
- 7:8879692d4e6c
- Parent:
- 2:c5b857d4f9f6
- Child:
- 9:7369ec77a3ea
--- a/Blynk/BlynkApi.h Thu Jun 23 23:00:40 2016 +0000 +++ b/Blynk/BlynkApi.h Wed Oct 12 09:18:39 2016 +0300 @@ -231,6 +231,79 @@ static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_EMAIL, 0, cmd.getBuffer(), cmd.getLength()-1); } + /** + * Sets property of a Widget + * + * @experimental + * + * @param pin Virtual Pin number + * @param property Property name ("label", "labels", "color", ...) + * @param value Property value + */ + template <typename T, typename T1> + void setProperty(int pin, const T& property, const T1& value) { + char mem[BLYNK_MAX_SENDBYTES]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + cmd.add(value); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength()-1); + } + + template <typename T, typename T1, typename T2> + void setProperty(int pin, const T& property, const T1& value1, const T2& value2) { + char mem[BLYNK_MAX_SENDBYTES]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + cmd.add(value1); + cmd.add(value2); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength()-1); + } + + template <typename T, typename T1, typename T2, typename T3> + void setProperty(int pin, const T& property, const T1& value1, const T2& value2, const T3& value3) { + char mem[BLYNK_MAX_SENDBYTES]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + cmd.add(value1); + cmd.add(value2); + cmd.add(value3); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength()-1); + } + + template <typename T, typename T1, typename T2, typename T3, typename T4> + void setProperty(int pin, const T& property, const T1& value1, const T2& value2, const T3& value3, const T4& value4) { + char mem[BLYNK_MAX_SENDBYTES]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + cmd.add(value1); + cmd.add(value2); + cmd.add(value3); + cmd.add(value4); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength()-1); + } + + template <typename T> + void setProperty(int pin, const T& property, const BlynkParam& param) { + char mem[32]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength(), param.getBuffer(), param.getLength()); + } + + template <typename T> + void setProperty(int pin, const T& property, const BlynkParamAllocated& param) { + char mem[32]; + BlynkParam cmd(mem, 0, sizeof(mem)); + cmd.add(pin); + cmd.add(property); + static_cast<Proto*>(this)->sendCmd(BLYNK_CMD_PROPERTY, 0, cmd.getBuffer(), cmd.getLength(), param.getBuffer(), param.getLength()); + } + #if defined(BLYNK_EXPERIMENTAL) // Attention! // Every function in this section may be changed, removed or renamed.