Blynk example

Dependents:   Blynk_Example_WIZwiki-W7500

Fork of Blynk by Volodymyr Shymanskyy

Committer:
jcm931213
Date:
Mon Aug 14 04:44:54 2017 +0000
Revision:
17:ba922c4e9aee
Parent:
14:76d8fd871a4d
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?

UserRevisionLine numberNew contents of line
Volodymyr Shymanskyy 7:8879692d4e6c 1 /**
Volodymyr Shymanskyy 7:8879692d4e6c 2 * @file WidgetTable.h
Volodymyr Shymanskyy 7:8879692d4e6c 3 * @author Volodymyr Shymanskyy
Volodymyr Shymanskyy 7:8879692d4e6c 4 * @license This project is released under the MIT License (MIT)
Volodymyr Shymanskyy 7:8879692d4e6c 5 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy
Volodymyr Shymanskyy 7:8879692d4e6c 6 * @date Sep 2016
Volodymyr Shymanskyy 7:8879692d4e6c 7 * @brief
Volodymyr Shymanskyy 7:8879692d4e6c 8 *
Volodymyr Shymanskyy 7:8879692d4e6c 9 */
Volodymyr Shymanskyy 7:8879692d4e6c 10
Volodymyr Shymanskyy 7:8879692d4e6c 11 #ifndef WidgetTable_h
Volodymyr Shymanskyy 7:8879692d4e6c 12 #define WidgetTable_h
Volodymyr Shymanskyy 7:8879692d4e6c 13
Volodymyr Shymanskyy 9:7369ec77a3ea 14 #include <Blynk/BlynkWidgetBase.h>
Volodymyr Shymanskyy 7:8879692d4e6c 15
Volodymyr Shymanskyy 7:8879692d4e6c 16 class WidgetTable
Volodymyr Shymanskyy 9:7369ec77a3ea 17 : public BlynkWidgetBase
Volodymyr Shymanskyy 7:8879692d4e6c 18 {
Volodymyr Shymanskyy 7:8879692d4e6c 19 public:
Volodymyr Shymanskyy 9:7369ec77a3ea 20 typedef void (*ItemSelectChange)(int index, bool selected);
Volodymyr Shymanskyy 9:7369ec77a3ea 21 typedef void (*ItemOrderChange)(int indexFrom, int indexTo);
Volodymyr Shymanskyy 7:8879692d4e6c 22
Volodymyr Shymanskyy 7:8879692d4e6c 23 public:
Volodymyr Shymanskyy 9:7369ec77a3ea 24 WidgetTable(uint8_t vPin = -1)
Volodymyr Shymanskyy 9:7369ec77a3ea 25 : BlynkWidgetBase(vPin)
Volodymyr Shymanskyy 7:8879692d4e6c 26 , mOnOrderChange(NULL)
Volodymyr Shymanskyy 7:8879692d4e6c 27 , mOnSelectChange(NULL)
Volodymyr Shymanskyy 9:7369ec77a3ea 28 {}
Volodymyr Shymanskyy 7:8879692d4e6c 29
Volodymyr Shymanskyy 7:8879692d4e6c 30 void onWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam& param) {
Volodymyr Shymanskyy 7:8879692d4e6c 31 if (mOnOrderChange && 0 == strcmp(param[0].asStr(), "order")) {
Volodymyr Shymanskyy 9:7369ec77a3ea 32 mOnOrderChange(param[1].asInt(), param[2].asInt());
Volodymyr Shymanskyy 7:8879692d4e6c 33 } else if (mOnSelectChange && 0 == strcmp(param[0].asStr(), "select")) {
Volodymyr Shymanskyy 9:7369ec77a3ea 34 mOnSelectChange(param[1].asInt(), true);
Volodymyr Shymanskyy 7:8879692d4e6c 35 } else if (mOnSelectChange && 0 == strcmp(param[0].asStr(), "deselect")) {
Volodymyr Shymanskyy 9:7369ec77a3ea 36 mOnSelectChange(param[1].asInt(), false);
Volodymyr Shymanskyy 7:8879692d4e6c 37 }
Volodymyr Shymanskyy 7:8879692d4e6c 38 }
Volodymyr Shymanskyy 7:8879692d4e6c 39
Volodymyr Shymanskyy 7:8879692d4e6c 40 void onOrderChange(ItemOrderChange cbk) { mOnOrderChange = cbk; }
Volodymyr Shymanskyy 7:8879692d4e6c 41 void onSelectChange(ItemSelectChange cbk) { mOnSelectChange = cbk; }
Volodymyr Shymanskyy 7:8879692d4e6c 42
Volodymyr Shymanskyy 7:8879692d4e6c 43 void clear() {
Volodymyr Shymanskyy 7:8879692d4e6c 44 Blynk.virtualWrite(mPin, "clr");
Volodymyr Shymanskyy 7:8879692d4e6c 45 }
Volodymyr Shymanskyy 7:8879692d4e6c 46
Volodymyr Shymanskyy 7:8879692d4e6c 47 template <typename T1, typename T2>
Volodymyr Shymanskyy 7:8879692d4e6c 48 void addRow(int index, const T1& name, const T2& value) {
Volodymyr Shymanskyy 7:8879692d4e6c 49 Blynk.virtualWrite(mPin, "add", index, name, value);
Volodymyr Shymanskyy 7:8879692d4e6c 50 }
Volodymyr Shymanskyy 7:8879692d4e6c 51
Volodymyr Shymanskyy 14:76d8fd871a4d 52 template <typename T1, typename T2>
Volodymyr Shymanskyy 14:76d8fd871a4d 53 void updateRow(int index, const T1& name, const T2& value) {
Volodymyr Shymanskyy 14:76d8fd871a4d 54 Blynk.virtualWrite(mPin, "update", index, name, value);
Volodymyr Shymanskyy 14:76d8fd871a4d 55 }
Volodymyr Shymanskyy 14:76d8fd871a4d 56
Volodymyr Shymanskyy 7:8879692d4e6c 57 void pickRow(int index) {
Volodymyr Shymanskyy 7:8879692d4e6c 58 Blynk.virtualWrite(mPin, "pick", index);
Volodymyr Shymanskyy 7:8879692d4e6c 59 }
Volodymyr Shymanskyy 7:8879692d4e6c 60
Volodymyr Shymanskyy 7:8879692d4e6c 61 private:
Volodymyr Shymanskyy 7:8879692d4e6c 62 ItemOrderChange mOnOrderChange;
Volodymyr Shymanskyy 7:8879692d4e6c 63 ItemSelectChange mOnSelectChange;
Volodymyr Shymanskyy 7:8879692d4e6c 64
Volodymyr Shymanskyy 7:8879692d4e6c 65 };
Volodymyr Shymanskyy 7:8879692d4e6c 66
Volodymyr Shymanskyy 7:8879692d4e6c 67 #endif