Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Io_moon by
BlynkHandlers.h
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
Generated on Tue Jul 19 2022 01:01:49 by
1.7.2
