Blynk example
Dependents: Blynk_Example_WIZwiki-W7500
Fork of Blynk by
Blynk/BlynkWidgetBase.h@17:ba922c4e9aee, 2017-08-14 (annotated)
- Committer:
- jcm931213
- Date:
- Mon Aug 14 04:44:54 2017 +0000
- Revision:
- 17:ba922c4e9aee
- Parent:
- 9:7369ec77a3ea
W7500 Blynk Example; I arbitrarily modified TCPSocket Client.; You need to add a function to get and set socket number in TCPSocket Client.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Volodymyr Shymanskyy |
9:7369ec77a3ea | 1 | /** |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 2 | * @file BlynkWidgetBase.h |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 3 | * @author Volodymyr Shymanskyy |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 4 | * @license This project is released under the MIT License (MIT) |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 5 | * @copyright Copyright (c) 2016 Volodymyr Shymanskyy |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 6 | * @date Nov 2016 |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 7 | * @brief |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 8 | */ |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 9 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 10 | #ifndef BlynkWidgetBase_h |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 11 | #define BlynkWidgetBase_h |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 12 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 13 | #include <Blynk/BlynkApi.h> |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 14 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 15 | class BlynkWidgetBase |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 16 | { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 17 | public: |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 18 | BlynkWidgetBase(uint8_t vPin) : mPin(vPin) {} |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 19 | void setVPin(uint8_t vPin) { mPin = vPin; } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 20 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 21 | void onWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m) { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 22 | BLYNK_LOG1(BLYNK_F("BlynkWidgetBase::onWrite should not be called")); |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 23 | } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 24 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 25 | template<typename... Args> |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 26 | void setLabel(Args... args) { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 27 | Blynk.setProperty(mPin, "label", args...); |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 28 | } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 29 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 30 | template<typename... Args> |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 31 | void setColor(Args... args) { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 32 | Blynk.setProperty(mPin, "color", args...); |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 33 | } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 34 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 35 | protected: |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 36 | uint8_t mPin; |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 37 | }; |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 38 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 39 | class BlynkAttachWidgetHelper { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 40 | public: |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 41 | template<typename T> |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 42 | explicit BlynkAttachWidgetHelper(T& widget, uint8_t vPin) { |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 43 | widget.setVPin(vPin); |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 44 | } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 45 | }; |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 46 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 47 | // Could use __attribute__ ((constructor)), but hope for better portability |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 48 | #define BLYNK_ATTACH_WIDGET(widget, pin) \ |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 49 | BlynkAttachWidgetHelper BLYNK_CONCAT2(blnk_widget_helper_, __COUNTER__)((widget), (pin)); \ |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 50 | BLYNK_WRITE(pin) { (widget).onWrite(request, param); } |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 51 | |
Volodymyr Shymanskyy |
9:7369ec77a3ea | 52 | #endif |