* AM2321的取温度间隔得大于2s,否则,i2c会不工作了 * SimpleTimer有个bug,会导致两次快速的读温度,现在读温度函数里加了保护 * Blynk有个bug,会导致无法把数据传到服务器 * 现在可以正常工作了

Dependencies:   mbed

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& request, const BlynkParam& param)
00156 
00157 #define BLYNK_READ_2(pin)  \
00158     void BlynkWidgetRead ## pin  (BlynkReq& 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& request, const BlynkParam& getValue)
00169 
00170 #define BLYNK_OUT_2(pin) \
00171     void BlynkWidgetRead ## pin  (BlynkReq& request)
00172 
00173 #define BLYNK_IN_DEFAULT()   BLYNK_IN_2(Default)
00174 #define BLYNK_OUT_DEFAULT()  BLYNK_OUT_2(Default)
00175 
00176 #define BLYNK_IN(pin)        BLYNK_IN_2(pin)
00177 #define BLYNK_OUT(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 class BlynkAttachWidgetHelper {
00186 public:
00187     template<typename T>
00188     explicit BlynkAttachWidgetHelper(T& widget, uint8_t vPin) {
00189         widget.setVPin(vPin);
00190     }
00191 };
00192 
00193 // Could use __attribute__ ((constructor)), but hope for better portability
00194 #define BLYNK_ATTACH_WIDGET(widget, pin)    \
00195     static BlynkAttachWidgetHelper BLYNK_CONCAT2(blnk_widget_helper_, __COUNTER__)((widget), (pin)); \
00196     BLYNK_WRITE(pin) { (widget).onWrite(request, param); }
00197 
00198 #define BLYNK_VAR_INT(name, pin)    int name;  \
00199     BLYNK_WRITE(pin) { name = param.asInt(); } \
00200     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00201 
00202 #define BLYNK_VAR_LONG(name, pin)   long name;  \
00203     BLYNK_WRITE(pin) { name = param.asLong(); } \
00204     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00205 
00206 #ifndef BLYNK_NO_FLOAT
00207 #define BLYNK_VAR_DOUBLE(name, pin) double name;  \
00208     BLYNK_WRITE(pin) { name = param.asDouble(); } \
00209     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00210 #endif
00211 
00212 #ifdef ARDUINO
00213 #define BLYNK_VAR_STRING(name, pin) String name;  \
00214     BLYNK_WRITE(pin) { name = param.asStr(); } \
00215     BLYNK_READ(pin)  { Blynk.virtualWrite(pin, name); }
00216 #endif
00217 
00218 // Default read/write handlers (you can redefine them in your code)
00219 #ifdef __cplusplus
00220 extern "C" {
00221 #endif
00222 
00223 struct BlynkReq
00224 {
00225     uint8_t pin;
00226 };
00227 
00228 typedef void (*WidgetReadHandler)(BlynkReq& request);
00229 typedef void (*WidgetWriteHandler)(BlynkReq& request, const BlynkParam& param);
00230 
00231 WidgetReadHandler GetReadHandler(uint8_t pin);
00232 WidgetWriteHandler GetWriteHandler(uint8_t pin);
00233 
00234 // Declare placeholders
00235 BLYNK_READ();
00236 BLYNK_WRITE();
00237 void BlynkNoOpCbk();
00238 
00239 // Declare all pin handlers (you can redefine them in your code)
00240 BLYNK_CONNECTED();
00241 BLYNK_DISCONNECTED();
00242 
00243 BLYNK_READ_DEFAULT();
00244 BLYNK_WRITE_DEFAULT();
00245 
00246 BLYNK_READ(0 );
00247 BLYNK_READ(1 );
00248 BLYNK_READ(2 );
00249 BLYNK_READ(3 );
00250 BLYNK_READ(4 );
00251 BLYNK_READ(5 );
00252 BLYNK_READ(6 );
00253 BLYNK_READ(7 );
00254 BLYNK_READ(8 );
00255 BLYNK_READ(9 );
00256 BLYNK_READ(10);
00257 BLYNK_READ(11);
00258 BLYNK_READ(12);
00259 BLYNK_READ(13);
00260 BLYNK_READ(14);
00261 BLYNK_READ(15);
00262 BLYNK_READ(16);
00263 BLYNK_READ(17);
00264 BLYNK_READ(18);
00265 BLYNK_READ(19);
00266 BLYNK_READ(20);
00267 BLYNK_READ(21);
00268 BLYNK_READ(22);
00269 BLYNK_READ(23);
00270 BLYNK_READ(24);
00271 BLYNK_READ(25);
00272 BLYNK_READ(26);
00273 BLYNK_READ(27);
00274 BLYNK_READ(28);
00275 BLYNK_READ(29);
00276 BLYNK_READ(30);
00277 BLYNK_READ(31);
00278 #ifdef BLYNK_USE_128_VPINS
00279   BLYNK_READ(32);
00280   BLYNK_READ(33);
00281   BLYNK_READ(34);
00282   BLYNK_READ(35);
00283   BLYNK_READ(36);
00284   BLYNK_READ(37);
00285   BLYNK_READ(38);
00286   BLYNK_READ(39);
00287   BLYNK_READ(40);
00288   BLYNK_READ(41);
00289   BLYNK_READ(42);
00290   BLYNK_READ(43);
00291   BLYNK_READ(44);
00292   BLYNK_READ(45);
00293   BLYNK_READ(46);
00294   BLYNK_READ(47);
00295   BLYNK_READ(48);
00296   BLYNK_READ(49);
00297   BLYNK_READ(50);
00298   BLYNK_READ(51);
00299   BLYNK_READ(52);
00300   BLYNK_READ(53);
00301   BLYNK_READ(54);
00302   BLYNK_READ(55);
00303   BLYNK_READ(56);
00304   BLYNK_READ(57);
00305   BLYNK_READ(58);
00306   BLYNK_READ(59);
00307   BLYNK_READ(60);
00308   BLYNK_READ(61);
00309   BLYNK_READ(62);
00310   BLYNK_READ(63);
00311   BLYNK_READ(64);
00312   BLYNK_READ(65);
00313   BLYNK_READ(66);
00314   BLYNK_READ(67);
00315   BLYNK_READ(68);
00316   BLYNK_READ(69);
00317   BLYNK_READ(70);
00318   BLYNK_READ(71);
00319   BLYNK_READ(72);
00320   BLYNK_READ(73);
00321   BLYNK_READ(74);
00322   BLYNK_READ(75);
00323   BLYNK_READ(76);
00324   BLYNK_READ(77);
00325   BLYNK_READ(78);
00326   BLYNK_READ(79);
00327   BLYNK_READ(80);
00328   BLYNK_READ(81);
00329   BLYNK_READ(82);
00330   BLYNK_READ(83);
00331   BLYNK_READ(84);
00332   BLYNK_READ(85);
00333   BLYNK_READ(86);
00334   BLYNK_READ(87);
00335   BLYNK_READ(88);
00336   BLYNK_READ(89);
00337   BLYNK_READ(90);
00338   BLYNK_READ(91);
00339   BLYNK_READ(92);
00340   BLYNK_READ(93);
00341   BLYNK_READ(94);
00342   BLYNK_READ(95);
00343   BLYNK_READ(96);
00344   BLYNK_READ(97);
00345   BLYNK_READ(98);
00346   BLYNK_READ(99);
00347   BLYNK_READ(100);
00348   BLYNK_READ(101);
00349   BLYNK_READ(102);
00350   BLYNK_READ(103);
00351   BLYNK_READ(104);
00352   BLYNK_READ(105);
00353   BLYNK_READ(106);
00354   BLYNK_READ(107);
00355   BLYNK_READ(108);
00356   BLYNK_READ(109);
00357   BLYNK_READ(110);
00358   BLYNK_READ(111);
00359   BLYNK_READ(112);
00360   BLYNK_READ(113);
00361   BLYNK_READ(114);
00362   BLYNK_READ(115);
00363   BLYNK_READ(116);
00364   BLYNK_READ(117);
00365   BLYNK_READ(118);
00366   BLYNK_READ(119);
00367   BLYNK_READ(120);
00368   BLYNK_READ(121);
00369   BLYNK_READ(122);
00370   BLYNK_READ(123);
00371   BLYNK_READ(124);
00372   BLYNK_READ(125);
00373   BLYNK_READ(126);
00374   BLYNK_READ(127);
00375 #endif
00376 
00377 BLYNK_WRITE(0 );
00378 BLYNK_WRITE(1 );
00379 BLYNK_WRITE(2 );
00380 BLYNK_WRITE(3 );
00381 BLYNK_WRITE(4 );
00382 BLYNK_WRITE(5 );
00383 BLYNK_WRITE(6 );
00384 BLYNK_WRITE(7 );
00385 BLYNK_WRITE(8 );
00386 BLYNK_WRITE(9 );
00387 BLYNK_WRITE(10);
00388 BLYNK_WRITE(11);
00389 BLYNK_WRITE(12);
00390 BLYNK_WRITE(13);
00391 BLYNK_WRITE(14);
00392 BLYNK_WRITE(15);
00393 BLYNK_WRITE(16);
00394 BLYNK_WRITE(17);
00395 BLYNK_WRITE(18);
00396 BLYNK_WRITE(19);
00397 BLYNK_WRITE(20);
00398 BLYNK_WRITE(21);
00399 BLYNK_WRITE(22);
00400 BLYNK_WRITE(23);
00401 BLYNK_WRITE(24);
00402 BLYNK_WRITE(25);
00403 BLYNK_WRITE(26);
00404 BLYNK_WRITE(27);
00405 BLYNK_WRITE(28);
00406 BLYNK_WRITE(29);
00407 BLYNK_WRITE(30);
00408 BLYNK_WRITE(31);
00409 #ifdef BLYNK_USE_128_VPINS
00410   BLYNK_WRITE(32);
00411   BLYNK_WRITE(33);
00412   BLYNK_WRITE(34);
00413   BLYNK_WRITE(35);
00414   BLYNK_WRITE(36);
00415   BLYNK_WRITE(37);
00416   BLYNK_WRITE(38);
00417   BLYNK_WRITE(39);
00418   BLYNK_WRITE(40);
00419   BLYNK_WRITE(41);
00420   BLYNK_WRITE(42);
00421   BLYNK_WRITE(43);
00422   BLYNK_WRITE(44);
00423   BLYNK_WRITE(45);
00424   BLYNK_WRITE(46);
00425   BLYNK_WRITE(47);
00426   BLYNK_WRITE(48);
00427   BLYNK_WRITE(49);
00428   BLYNK_WRITE(50);
00429   BLYNK_WRITE(51);
00430   BLYNK_WRITE(52);
00431   BLYNK_WRITE(53);
00432   BLYNK_WRITE(54);
00433   BLYNK_WRITE(55);
00434   BLYNK_WRITE(56);
00435   BLYNK_WRITE(57);
00436   BLYNK_WRITE(58);
00437   BLYNK_WRITE(59);
00438   BLYNK_WRITE(60);
00439   BLYNK_WRITE(61);
00440   BLYNK_WRITE(62);
00441   BLYNK_WRITE(63);
00442   BLYNK_WRITE(64);
00443   BLYNK_WRITE(65);
00444   BLYNK_WRITE(66);
00445   BLYNK_WRITE(67);
00446   BLYNK_WRITE(68);
00447   BLYNK_WRITE(69);
00448   BLYNK_WRITE(70);
00449   BLYNK_WRITE(71);
00450   BLYNK_WRITE(72);
00451   BLYNK_WRITE(73);
00452   BLYNK_WRITE(74);
00453   BLYNK_WRITE(75);
00454   BLYNK_WRITE(76);
00455   BLYNK_WRITE(77);
00456   BLYNK_WRITE(78);
00457   BLYNK_WRITE(79);
00458   BLYNK_WRITE(80);
00459   BLYNK_WRITE(81);
00460   BLYNK_WRITE(82);
00461   BLYNK_WRITE(83);
00462   BLYNK_WRITE(84);
00463   BLYNK_WRITE(85);
00464   BLYNK_WRITE(86);
00465   BLYNK_WRITE(87);
00466   BLYNK_WRITE(88);
00467   BLYNK_WRITE(89);
00468   BLYNK_WRITE(90);
00469   BLYNK_WRITE(91);
00470   BLYNK_WRITE(92);
00471   BLYNK_WRITE(93);
00472   BLYNK_WRITE(94);
00473   BLYNK_WRITE(95);
00474   BLYNK_WRITE(96);
00475   BLYNK_WRITE(97);
00476   BLYNK_WRITE(98);
00477   BLYNK_WRITE(99);
00478   BLYNK_WRITE(100);
00479   BLYNK_WRITE(101);
00480   BLYNK_WRITE(102);
00481   BLYNK_WRITE(103);
00482   BLYNK_WRITE(104);
00483   BLYNK_WRITE(105);
00484   BLYNK_WRITE(106);
00485   BLYNK_WRITE(107);
00486   BLYNK_WRITE(108);
00487   BLYNK_WRITE(109);
00488   BLYNK_WRITE(110);
00489   BLYNK_WRITE(111);
00490   BLYNK_WRITE(112);
00491   BLYNK_WRITE(113);
00492   BLYNK_WRITE(114);
00493   BLYNK_WRITE(115);
00494   BLYNK_WRITE(116);
00495   BLYNK_WRITE(117);
00496   BLYNK_WRITE(118);
00497   BLYNK_WRITE(119);
00498   BLYNK_WRITE(120);
00499   BLYNK_WRITE(121);
00500   BLYNK_WRITE(122);
00501   BLYNK_WRITE(123);
00502   BLYNK_WRITE(124);
00503   BLYNK_WRITE(125);
00504   BLYNK_WRITE(126);
00505   BLYNK_WRITE(127);
00506 #endif
00507 
00508 #ifdef __cplusplus
00509 }
00510 #endif
00511 
00512 #endif
00513