blynk & neopixelring & w7500

Fork of WIZwiki-7500_Blynk by IOP

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BlynkHandlers.h Source File

BlynkHandlers.h

Go to the documentation of this file.
00001 /**
00002  * @file       BlynkHandlers.h
00003  * @author     Volodymyr Shymanskyy
00004  * @license    This project is released under the MIT License (MIT)
00005  * @copyright  Copyright (c) 2015 Volodymyr Shymanskyy
00006  * @date       Jan 2015
00007  * @brief      Handlers for virtual pin operations
00008  *
00009  */
00010 
00011 #ifndef BlynkHandlers_h
00012 #define BlynkHandlers_h
00013 
00014 #include <Blynk/BlynkConfig.h>
00015 #include <Blynk/BlynkParam.h>
00016 
00017 // Helper macro
00018 
00019 #define V0  0
00020 #define V1  1
00021 #define V2  2
00022 #define V3  3
00023 #define V4  4
00024 #define V5  5
00025 #define V6  6
00026 #define V7  7
00027 #define V8  8
00028 #define V9  9
00029 #define V10 10
00030 #define V11 11
00031 #define V12 12
00032 #define V13 13
00033 #define V14 14
00034 #define V15 15
00035 #define V16 16
00036 #define V17 17
00037 #define V18 18
00038 #define V19 19
00039 #define V20 20
00040 #define V21 21
00041 #define V22 22
00042 #define V23 23
00043 #define V24 24
00044 #define V25 25
00045 #define V26 26
00046 #define V27 27
00047 #define V28 28
00048 #define V29 29
00049 #define V30 30
00050 #define V31 31
00051 #ifdef BLYNK_USE_128_VPINS
00052   #define V32 32
00053   #define V33 33
00054   #define V34 34
00055   #define V35 35
00056   #define V36 36
00057   #define V37 37
00058   #define V38 38
00059   #define V39 39
00060   #define V40 40
00061   #define V41 41
00062   #define V42 42
00063   #define V43 43
00064   #define V44 44
00065   #define V45 45
00066   #define V46 46
00067   #define V47 47
00068   #define V48 48
00069   #define V49 49
00070   #define V50 50
00071   #define V51 51
00072   #define V52 52
00073   #define V53 53
00074   #define V54 54
00075   #define V55 55
00076   #define V56 56
00077   #define V57 57
00078   #define V58 58
00079   #define V59 59
00080   #define V60 60
00081   #define V61 61
00082   #define V62 62
00083   #define V63 63
00084   #define V64 64
00085   #define V65 65
00086   #define V66 66
00087   #define V67 67
00088   #define V68 68
00089   #define V69 69
00090   #define V70 70
00091   #define V71 71
00092   #define V72 72
00093   #define V73 73
00094   #define V74 74
00095   #define V75 75
00096   #define V76 76
00097   #define V77 77
00098   #define V78 78
00099   #define V79 79
00100   #define V80 80
00101   #define V81 81
00102   #define V82 82
00103   #define V83 83
00104   #define V84 84
00105   #define V85 85
00106   #define V86 86
00107   #define V87 87
00108   #define V88 88
00109   #define V89 89
00110   #define V90 90
00111   #define V91 91
00112   #define V92 92
00113   #define V93 93
00114   #define V94 94
00115   #define V95 95
00116   #define V96 96
00117   #define V97 97
00118   #define V98 98
00119   #define V99 99
00120   #define V100 100
00121   #define V101 101
00122   #define V102 102
00123   #define V103 103
00124   #define V104 104
00125   #define V105 105
00126   #define V106 106
00127   #define V107 107
00128   #define V108 108
00129   #define V109 109
00130   #define V110 110
00131   #define V111 111
00132   #define V112 112
00133   #define V113 113
00134   #define V114 114
00135   #define V115 115
00136   #define V116 116
00137   #define V117 117
00138   #define V118 118
00139   #define V119 119
00140   #define V120 120
00141   #define V121 121
00142   #define V122 122
00143   #define V123 123
00144   #define V124 124
00145   #define V125 125
00146   #define V126 126
00147   #define V127 127
00148 #endif
00149 
00150 #define BLYNK_CONCAT(a, b) a ## b
00151 #define BLYNK_CONCAT2(a, b) BLYNK_CONCAT(a, b)
00152 
00153 // Initial syntax:
00154 #define BLYNK_WRITE_2(pin) \
00155     void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &param)
00156 
00157 #define BLYNK_READ_2(pin)  \
00158     void BlynkWidgetRead ## pin  (BlynkReq BLYNK_UNUSED &request)
00159 
00160 #define BLYNK_WRITE_DEFAULT() BLYNK_WRITE_2(Default)
00161 #define BLYNK_READ_DEFAULT()  BLYNK_READ_2(Default)
00162 
00163 #define BLYNK_WRITE(pin)      BLYNK_WRITE_2(pin)
00164 #define BLYNK_READ(pin)       BLYNK_READ_2(pin)
00165 
00166 // New, more readable syntax:
00167 #define BLYNK_IN_2(pin)  \
00168     void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &getValue)
00169 
00170 #define BLYNK_OUT_2(pin) \
00171     void BlynkWidgetRead ## pin  (BlynkReq BLYNK_UNUSED &request)
00172 
00173 #define BLYNK_INPUT_DEFAULT()   BLYNK_IN_2(Default)
00174 #define BLYNK_OUTPUT_DEFAULT()  BLYNK_OUT_2(Default)
00175 
00176 #define BLYNK_INPUT(pin)        BLYNK_IN_2(pin)
00177 #define BLYNK_OUTPUT(pin)       BLYNK_OUT_2(pin)
00178 
00179 // Additional handlers
00180 #define BLYNK_CONNECTED()    void BlynkOnConnected()
00181 #define BLYNK_DISCONNECTED() void BlynkOnDisconnected()
00182 
00183 // Advanced functions
00184 
00185 #define BLYNK_VAR_INT(name, pin) \
00186     int name;  \
00187     BLYNK_WRITE(pin) { name = param.asInt(); } \
00188     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00189 
00190 #define BLYNK_VAR_LONG(name, pin) \
00191     long name;  \
00192     BLYNK_WRITE(pin) { name = param.asLong(); } \
00193     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00194 
00195 #ifndef BLYNK_NO_FLOAT
00196 #define BLYNK_VAR_DOUBLE(name, pin) \
00197     double name;  \
00198     BLYNK_WRITE(pin) { name = param.asDouble(); } \
00199     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00200 #endif
00201 
00202 #ifdef ARDUINO
00203 #define BLYNK_VAR_STRING(name, pin) \
00204     String name;  \
00205     BLYNK_WRITE(pin) { name = param.asStr(); } \
00206     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00207 #endif
00208 
00209 // Default read/write handlers (you can redefine them in your code)
00210 #ifdef __cplusplus
00211 extern "C" {
00212 #endif
00213 
00214 struct BlynkReq
00215 {
00216     uint8_t pin;
00217 };
00218 
00219 typedef void (*WidgetReadHandler)(BlynkReq BLYNK_UNUSED &request);
00220 typedef void (*WidgetWriteHandler)(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &param);
00221 
00222 WidgetReadHandler GetReadHandler(uint8_t pin);
00223 WidgetWriteHandler GetWriteHandler(uint8_t pin);
00224 
00225 // Declare placeholders
00226 BLYNK_READ();
00227 BLYNK_WRITE();
00228 void BlynkNoOpCbk();
00229 
00230 // Declare all pin handlers (you can redefine them in your code)
00231 BLYNK_CONNECTED();
00232 BLYNK_DISCONNECTED();
00233 
00234 // Internal Virtual Pins
00235 BLYNK_WRITE(InternalPinACON);
00236 BLYNK_WRITE(InternalPinADIS);
00237 BLYNK_WRITE(InternalPinRTC);
00238 BLYNK_WRITE(InternalPinOTA);
00239 
00240 // Aliases
00241 #define BLYNK_APP_CONNECTED()    BLYNK_WRITE(InternalPinACON)
00242 #define BLYNK_APP_DISCONNECTED() BLYNK_WRITE(InternalPinADIS)
00243 
00244 // Regular Virtual Pins
00245 BLYNK_READ_DEFAULT();
00246 BLYNK_WRITE_DEFAULT();
00247 
00248 BLYNK_READ(0 );
00249 BLYNK_READ(1 );
00250 BLYNK_READ(2 );
00251 BLYNK_READ(3 );
00252 BLYNK_READ(4 );
00253 BLYNK_READ(5 );
00254 BLYNK_READ(6 );
00255 BLYNK_READ(7 );
00256 BLYNK_READ(8 );
00257 BLYNK_READ(9 );
00258 BLYNK_READ(10);
00259 BLYNK_READ(11);
00260 BLYNK_READ(12);
00261 BLYNK_READ(13);
00262 BLYNK_READ(14);
00263 BLYNK_READ(15);
00264 BLYNK_READ(16);
00265 BLYNK_READ(17);
00266 BLYNK_READ(18);
00267 BLYNK_READ(19);
00268 BLYNK_READ(20);
00269 BLYNK_READ(21);
00270 BLYNK_READ(22);
00271 BLYNK_READ(23);
00272 BLYNK_READ(24);
00273 BLYNK_READ(25);
00274 BLYNK_READ(26);
00275 BLYNK_READ(27);
00276 BLYNK_READ(28);
00277 BLYNK_READ(29);
00278 BLYNK_READ(30);
00279 BLYNK_READ(31);
00280 #ifdef BLYNK_USE_128_VPINS
00281   BLYNK_READ(32);
00282   BLYNK_READ(33);
00283   BLYNK_READ(34);
00284   BLYNK_READ(35);
00285   BLYNK_READ(36);
00286   BLYNK_READ(37);
00287   BLYNK_READ(38);
00288   BLYNK_READ(39);
00289   BLYNK_READ(40);
00290   BLYNK_READ(41);
00291   BLYNK_READ(42);
00292   BLYNK_READ(43);
00293   BLYNK_READ(44);
00294   BLYNK_READ(45);
00295   BLYNK_READ(46);
00296   BLYNK_READ(47);
00297   BLYNK_READ(48);
00298   BLYNK_READ(49);
00299   BLYNK_READ(50);
00300   BLYNK_READ(51);
00301   BLYNK_READ(52);
00302   BLYNK_READ(53);
00303   BLYNK_READ(54);
00304   BLYNK_READ(55);
00305   BLYNK_READ(56);
00306   BLYNK_READ(57);
00307   BLYNK_READ(58);
00308   BLYNK_READ(59);
00309   BLYNK_READ(60);
00310   BLYNK_READ(61);
00311   BLYNK_READ(62);
00312   BLYNK_READ(63);
00313   BLYNK_READ(64);
00314   BLYNK_READ(65);
00315   BLYNK_READ(66);
00316   BLYNK_READ(67);
00317   BLYNK_READ(68);
00318   BLYNK_READ(69);
00319   BLYNK_READ(70);
00320   BLYNK_READ(71);
00321   BLYNK_READ(72);
00322   BLYNK_READ(73);
00323   BLYNK_READ(74);
00324   BLYNK_READ(75);
00325   BLYNK_READ(76);
00326   BLYNK_READ(77);
00327   BLYNK_READ(78);
00328   BLYNK_READ(79);
00329   BLYNK_READ(80);
00330   BLYNK_READ(81);
00331   BLYNK_READ(82);
00332   BLYNK_READ(83);
00333   BLYNK_READ(84);
00334   BLYNK_READ(85);
00335   BLYNK_READ(86);
00336   BLYNK_READ(87);
00337   BLYNK_READ(88);
00338   BLYNK_READ(89);
00339   BLYNK_READ(90);
00340   BLYNK_READ(91);
00341   BLYNK_READ(92);
00342   BLYNK_READ(93);
00343   BLYNK_READ(94);
00344   BLYNK_READ(95);
00345   BLYNK_READ(96);
00346   BLYNK_READ(97);
00347   BLYNK_READ(98);
00348   BLYNK_READ(99);
00349   BLYNK_READ(100);
00350   BLYNK_READ(101);
00351   BLYNK_READ(102);
00352   BLYNK_READ(103);
00353   BLYNK_READ(104);
00354   BLYNK_READ(105);
00355   BLYNK_READ(106);
00356   BLYNK_READ(107);
00357   BLYNK_READ(108);
00358   BLYNK_READ(109);
00359   BLYNK_READ(110);
00360   BLYNK_READ(111);
00361   BLYNK_READ(112);
00362   BLYNK_READ(113);
00363   BLYNK_READ(114);
00364   BLYNK_READ(115);
00365   BLYNK_READ(116);
00366   BLYNK_READ(117);
00367   BLYNK_READ(118);
00368   BLYNK_READ(119);
00369   BLYNK_READ(120);
00370   BLYNK_READ(121);
00371   BLYNK_READ(122);
00372   BLYNK_READ(123);
00373   BLYNK_READ(124);
00374   BLYNK_READ(125);
00375   BLYNK_READ(126);
00376   BLYNK_READ(127);
00377 #endif
00378 
00379 BLYNK_WRITE(0 );
00380 BLYNK_WRITE(1 );
00381 BLYNK_WRITE(2 );
00382 BLYNK_WRITE(3 );
00383 BLYNK_WRITE(4 );
00384 BLYNK_WRITE(5 );
00385 BLYNK_WRITE(6 );
00386 BLYNK_WRITE(7 );
00387 BLYNK_WRITE(8 );
00388 BLYNK_WRITE(9 );
00389 BLYNK_WRITE(10);
00390 BLYNK_WRITE(11);
00391 BLYNK_WRITE(12);
00392 BLYNK_WRITE(13);
00393 BLYNK_WRITE(14);
00394 BLYNK_WRITE(15);
00395 BLYNK_WRITE(16);
00396 BLYNK_WRITE(17);
00397 BLYNK_WRITE(18);
00398 BLYNK_WRITE(19);
00399 BLYNK_WRITE(20);
00400 BLYNK_WRITE(21);
00401 BLYNK_WRITE(22);
00402 BLYNK_WRITE(23);
00403 BLYNK_WRITE(24);
00404 BLYNK_WRITE(25);
00405 BLYNK_WRITE(26);
00406 BLYNK_WRITE(27);
00407 BLYNK_WRITE(28);
00408 BLYNK_WRITE(29);
00409 BLYNK_WRITE(30);
00410 BLYNK_WRITE(31);
00411 #ifdef BLYNK_USE_128_VPINS
00412   BLYNK_WRITE(32);
00413   BLYNK_WRITE(33);
00414   BLYNK_WRITE(34);
00415   BLYNK_WRITE(35);
00416   BLYNK_WRITE(36);
00417   BLYNK_WRITE(37);
00418   BLYNK_WRITE(38);
00419   BLYNK_WRITE(39);
00420   BLYNK_WRITE(40);
00421   BLYNK_WRITE(41);
00422   BLYNK_WRITE(42);
00423   BLYNK_WRITE(43);
00424   BLYNK_WRITE(44);
00425   BLYNK_WRITE(45);
00426   BLYNK_WRITE(46);
00427   BLYNK_WRITE(47);
00428   BLYNK_WRITE(48);
00429   BLYNK_WRITE(49);
00430   BLYNK_WRITE(50);
00431   BLYNK_WRITE(51);
00432   BLYNK_WRITE(52);
00433   BLYNK_WRITE(53);
00434   BLYNK_WRITE(54);
00435   BLYNK_WRITE(55);
00436   BLYNK_WRITE(56);
00437   BLYNK_WRITE(57);
00438   BLYNK_WRITE(58);
00439   BLYNK_WRITE(59);
00440   BLYNK_WRITE(60);
00441   BLYNK_WRITE(61);
00442   BLYNK_WRITE(62);
00443   BLYNK_WRITE(63);
00444   BLYNK_WRITE(64);
00445   BLYNK_WRITE(65);
00446   BLYNK_WRITE(66);
00447   BLYNK_WRITE(67);
00448   BLYNK_WRITE(68);
00449   BLYNK_WRITE(69);
00450   BLYNK_WRITE(70);
00451   BLYNK_WRITE(71);
00452   BLYNK_WRITE(72);
00453   BLYNK_WRITE(73);
00454   BLYNK_WRITE(74);
00455   BLYNK_WRITE(75);
00456   BLYNK_WRITE(76);
00457   BLYNK_WRITE(77);
00458   BLYNK_WRITE(78);
00459   BLYNK_WRITE(79);
00460   BLYNK_WRITE(80);
00461   BLYNK_WRITE(81);
00462   BLYNK_WRITE(82);
00463   BLYNK_WRITE(83);
00464   BLYNK_WRITE(84);
00465   BLYNK_WRITE(85);
00466   BLYNK_WRITE(86);
00467   BLYNK_WRITE(87);
00468   BLYNK_WRITE(88);
00469   BLYNK_WRITE(89);
00470   BLYNK_WRITE(90);
00471   BLYNK_WRITE(91);
00472   BLYNK_WRITE(92);
00473   BLYNK_WRITE(93);
00474   BLYNK_WRITE(94);
00475   BLYNK_WRITE(95);
00476   BLYNK_WRITE(96);
00477   BLYNK_WRITE(97);
00478   BLYNK_WRITE(98);
00479   BLYNK_WRITE(99);
00480   BLYNK_WRITE(100);
00481   BLYNK_WRITE(101);
00482   BLYNK_WRITE(102);
00483   BLYNK_WRITE(103);
00484   BLYNK_WRITE(104);
00485   BLYNK_WRITE(105);
00486   BLYNK_WRITE(106);
00487   BLYNK_WRITE(107);
00488   BLYNK_WRITE(108);
00489   BLYNK_WRITE(109);
00490   BLYNK_WRITE(110);
00491   BLYNK_WRITE(111);
00492   BLYNK_WRITE(112);
00493   BLYNK_WRITE(113);
00494   BLYNK_WRITE(114);
00495   BLYNK_WRITE(115);
00496   BLYNK_WRITE(116);
00497   BLYNK_WRITE(117);
00498   BLYNK_WRITE(118);
00499   BLYNK_WRITE(119);
00500   BLYNK_WRITE(120);
00501   BLYNK_WRITE(121);
00502   BLYNK_WRITE(122);
00503   BLYNK_WRITE(123);
00504   BLYNK_WRITE(124);
00505   BLYNK_WRITE(125);
00506   BLYNK_WRITE(126);
00507   BLYNK_WRITE(127);
00508 #endif
00509 
00510 #ifdef __cplusplus
00511 }
00512 #endif
00513 
00514 #endif