IOP / WIZwiki-7500_Blynk

Dependents:   Blynk_Example_WIZwiki-W7500

Fork of Blynk by Volodymyr Shymanskyy

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BlynkHandlers.cpp Source File

BlynkHandlers.cpp

Go to the documentation of this file.
00001 /**
00002  * @file       BlynkHandlers.cpp
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      Virtual pin utilities
00008  */
00009 
00010 #include <Blynk/BlynkConfig.h>
00011 #include <Blynk/BlynkHandlers.h>
00012 #include <Blynk/BlynkDebug.h>
00013 
00014 void BlynkNoOpCbk()
00015 {}
00016 
00017 void BlynkWidgetRead(BlynkReq BLYNK_UNUSED &request)
00018 {
00019     BLYNK_LOG2(BLYNK_F("No handler for reading from pin "), request.pin);
00020 }
00021 
00022 void BlynkWidgetWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED &param)
00023 {
00024     BLYNK_LOG2(BLYNK_F("No handler for writing to pin "), request.pin);
00025 }
00026 
00027 #define BLYNK_ON_READ_IMPL(pin)  void BlynkWidgetRead  ## pin (BlynkReq BLYNK_UNUSED &req) \
00028           __attribute__((weak, alias("BlynkWidgetRead")))
00029 
00030 #define BLYNK_ON_WRITE_IMPL(pin) void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &req, const BlynkParam BLYNK_UNUSED &param) \
00031           __attribute__((weak, alias("BlynkWidgetWrite")))
00032 
00033 BLYNK_CONNECTED() __attribute__((weak, alias("BlynkNoOpCbk")));
00034 BLYNK_DISCONNECTED() __attribute__((weak, alias("BlynkNoOpCbk")));
00035 
00036 // Internal Virtual Pins
00037 BLYNK_ON_WRITE_IMPL(InternalPinACON);
00038 BLYNK_ON_WRITE_IMPL(InternalPinADIS);
00039 BLYNK_ON_WRITE_IMPL(InternalPinRTC);
00040 BLYNK_ON_WRITE_IMPL(InternalPinOTA);
00041 
00042 // Regular Virtual Pins
00043 BLYNK_ON_READ_IMPL(Default);
00044 BLYNK_ON_WRITE_IMPL(Default);
00045 
00046 BLYNK_ON_READ_IMPL(0 );
00047 BLYNK_ON_READ_IMPL(1 );
00048 BLYNK_ON_READ_IMPL(2 );
00049 BLYNK_ON_READ_IMPL(3 );
00050 BLYNK_ON_READ_IMPL(4 );
00051 BLYNK_ON_READ_IMPL(5 );
00052 BLYNK_ON_READ_IMPL(6 );
00053 BLYNK_ON_READ_IMPL(7 );
00054 BLYNK_ON_READ_IMPL(8 );
00055 BLYNK_ON_READ_IMPL(9 );
00056 BLYNK_ON_READ_IMPL(10);
00057 BLYNK_ON_READ_IMPL(11);
00058 BLYNK_ON_READ_IMPL(12);
00059 BLYNK_ON_READ_IMPL(13);
00060 BLYNK_ON_READ_IMPL(14);
00061 BLYNK_ON_READ_IMPL(15);
00062 BLYNK_ON_READ_IMPL(16);
00063 BLYNK_ON_READ_IMPL(17);
00064 BLYNK_ON_READ_IMPL(18);
00065 BLYNK_ON_READ_IMPL(19);
00066 BLYNK_ON_READ_IMPL(20);
00067 BLYNK_ON_READ_IMPL(21);
00068 BLYNK_ON_READ_IMPL(22);
00069 BLYNK_ON_READ_IMPL(23);
00070 BLYNK_ON_READ_IMPL(24);
00071 BLYNK_ON_READ_IMPL(25);
00072 BLYNK_ON_READ_IMPL(26);
00073 BLYNK_ON_READ_IMPL(27);
00074 BLYNK_ON_READ_IMPL(28);
00075 BLYNK_ON_READ_IMPL(29);
00076 BLYNK_ON_READ_IMPL(30);
00077 BLYNK_ON_READ_IMPL(31);
00078 #ifdef BLYNK_USE_128_VPINS
00079   BLYNK_ON_READ_IMPL(32);
00080   BLYNK_ON_READ_IMPL(33);
00081   BLYNK_ON_READ_IMPL(34);
00082   BLYNK_ON_READ_IMPL(35);
00083   BLYNK_ON_READ_IMPL(36);
00084   BLYNK_ON_READ_IMPL(37);
00085   BLYNK_ON_READ_IMPL(38);
00086   BLYNK_ON_READ_IMPL(39);
00087   BLYNK_ON_READ_IMPL(40);
00088   BLYNK_ON_READ_IMPL(41);
00089   BLYNK_ON_READ_IMPL(42);
00090   BLYNK_ON_READ_IMPL(43);
00091   BLYNK_ON_READ_IMPL(44);
00092   BLYNK_ON_READ_IMPL(45);
00093   BLYNK_ON_READ_IMPL(46);
00094   BLYNK_ON_READ_IMPL(47);
00095   BLYNK_ON_READ_IMPL(48);
00096   BLYNK_ON_READ_IMPL(49);
00097   BLYNK_ON_READ_IMPL(50);
00098   BLYNK_ON_READ_IMPL(51);
00099   BLYNK_ON_READ_IMPL(52);
00100   BLYNK_ON_READ_IMPL(53);
00101   BLYNK_ON_READ_IMPL(54);
00102   BLYNK_ON_READ_IMPL(55);
00103   BLYNK_ON_READ_IMPL(56);
00104   BLYNK_ON_READ_IMPL(57);
00105   BLYNK_ON_READ_IMPL(58);
00106   BLYNK_ON_READ_IMPL(59);
00107   BLYNK_ON_READ_IMPL(60);
00108   BLYNK_ON_READ_IMPL(61);
00109   BLYNK_ON_READ_IMPL(62);
00110   BLYNK_ON_READ_IMPL(63);
00111   BLYNK_ON_READ_IMPL(64);
00112   BLYNK_ON_READ_IMPL(65);
00113   BLYNK_ON_READ_IMPL(66);
00114   BLYNK_ON_READ_IMPL(67);
00115   BLYNK_ON_READ_IMPL(68);
00116   BLYNK_ON_READ_IMPL(69);
00117   BLYNK_ON_READ_IMPL(70);
00118   BLYNK_ON_READ_IMPL(71);
00119   BLYNK_ON_READ_IMPL(72);
00120   BLYNK_ON_READ_IMPL(73);
00121   BLYNK_ON_READ_IMPL(74);
00122   BLYNK_ON_READ_IMPL(75);
00123   BLYNK_ON_READ_IMPL(76);
00124   BLYNK_ON_READ_IMPL(77);
00125   BLYNK_ON_READ_IMPL(78);
00126   BLYNK_ON_READ_IMPL(79);
00127   BLYNK_ON_READ_IMPL(80);
00128   BLYNK_ON_READ_IMPL(81);
00129   BLYNK_ON_READ_IMPL(82);
00130   BLYNK_ON_READ_IMPL(83);
00131   BLYNK_ON_READ_IMPL(84);
00132   BLYNK_ON_READ_IMPL(85);
00133   BLYNK_ON_READ_IMPL(86);
00134   BLYNK_ON_READ_IMPL(87);
00135   BLYNK_ON_READ_IMPL(88);
00136   BLYNK_ON_READ_IMPL(89);
00137   BLYNK_ON_READ_IMPL(90);
00138   BLYNK_ON_READ_IMPL(91);
00139   BLYNK_ON_READ_IMPL(92);
00140   BLYNK_ON_READ_IMPL(93);
00141   BLYNK_ON_READ_IMPL(94);
00142   BLYNK_ON_READ_IMPL(95);
00143   BLYNK_ON_READ_IMPL(96);
00144   BLYNK_ON_READ_IMPL(97);
00145   BLYNK_ON_READ_IMPL(98);
00146   BLYNK_ON_READ_IMPL(99);
00147   BLYNK_ON_READ_IMPL(100);
00148   BLYNK_ON_READ_IMPL(101);
00149   BLYNK_ON_READ_IMPL(102);
00150   BLYNK_ON_READ_IMPL(103);
00151   BLYNK_ON_READ_IMPL(104);
00152   BLYNK_ON_READ_IMPL(105);
00153   BLYNK_ON_READ_IMPL(106);
00154   BLYNK_ON_READ_IMPL(107);
00155   BLYNK_ON_READ_IMPL(108);
00156   BLYNK_ON_READ_IMPL(109);
00157   BLYNK_ON_READ_IMPL(110);
00158   BLYNK_ON_READ_IMPL(111);
00159   BLYNK_ON_READ_IMPL(112);
00160   BLYNK_ON_READ_IMPL(113);
00161   BLYNK_ON_READ_IMPL(114);
00162   BLYNK_ON_READ_IMPL(115);
00163   BLYNK_ON_READ_IMPL(116);
00164   BLYNK_ON_READ_IMPL(117);
00165   BLYNK_ON_READ_IMPL(118);
00166   BLYNK_ON_READ_IMPL(119);
00167   BLYNK_ON_READ_IMPL(120);
00168   BLYNK_ON_READ_IMPL(121);
00169   BLYNK_ON_READ_IMPL(122);
00170   BLYNK_ON_READ_IMPL(123);
00171   BLYNK_ON_READ_IMPL(124);
00172   BLYNK_ON_READ_IMPL(125);
00173   BLYNK_ON_READ_IMPL(126);
00174   BLYNK_ON_READ_IMPL(127);
00175 #endif
00176 
00177 BLYNK_ON_WRITE_IMPL(0 );
00178 BLYNK_ON_WRITE_IMPL(1 );
00179 BLYNK_ON_WRITE_IMPL(2 );
00180 BLYNK_ON_WRITE_IMPL(3 );
00181 BLYNK_ON_WRITE_IMPL(4 );
00182 BLYNK_ON_WRITE_IMPL(5 );
00183 BLYNK_ON_WRITE_IMPL(6 );
00184 BLYNK_ON_WRITE_IMPL(7 );
00185 BLYNK_ON_WRITE_IMPL(8 );
00186 BLYNK_ON_WRITE_IMPL(9 );
00187 BLYNK_ON_WRITE_IMPL(10);
00188 BLYNK_ON_WRITE_IMPL(11);
00189 BLYNK_ON_WRITE_IMPL(12);
00190 BLYNK_ON_WRITE_IMPL(13);
00191 BLYNK_ON_WRITE_IMPL(14);
00192 BLYNK_ON_WRITE_IMPL(15);
00193 BLYNK_ON_WRITE_IMPL(16);
00194 BLYNK_ON_WRITE_IMPL(17);
00195 BLYNK_ON_WRITE_IMPL(18);
00196 BLYNK_ON_WRITE_IMPL(19);
00197 BLYNK_ON_WRITE_IMPL(20);
00198 BLYNK_ON_WRITE_IMPL(21);
00199 BLYNK_ON_WRITE_IMPL(22);
00200 BLYNK_ON_WRITE_IMPL(23);
00201 BLYNK_ON_WRITE_IMPL(24);
00202 BLYNK_ON_WRITE_IMPL(25);
00203 BLYNK_ON_WRITE_IMPL(26);
00204 BLYNK_ON_WRITE_IMPL(27);
00205 BLYNK_ON_WRITE_IMPL(28);
00206 BLYNK_ON_WRITE_IMPL(29);
00207 BLYNK_ON_WRITE_IMPL(30);
00208 BLYNK_ON_WRITE_IMPL(31);
00209 #ifdef BLYNK_USE_128_VPINS
00210   BLYNK_ON_WRITE_IMPL(32);
00211   BLYNK_ON_WRITE_IMPL(33);
00212   BLYNK_ON_WRITE_IMPL(34);
00213   BLYNK_ON_WRITE_IMPL(35);
00214   BLYNK_ON_WRITE_IMPL(36);
00215   BLYNK_ON_WRITE_IMPL(37);
00216   BLYNK_ON_WRITE_IMPL(38);
00217   BLYNK_ON_WRITE_IMPL(39);
00218   BLYNK_ON_WRITE_IMPL(40);
00219   BLYNK_ON_WRITE_IMPL(41);
00220   BLYNK_ON_WRITE_IMPL(42);
00221   BLYNK_ON_WRITE_IMPL(43);
00222   BLYNK_ON_WRITE_IMPL(44);
00223   BLYNK_ON_WRITE_IMPL(45);
00224   BLYNK_ON_WRITE_IMPL(46);
00225   BLYNK_ON_WRITE_IMPL(47);
00226   BLYNK_ON_WRITE_IMPL(48);
00227   BLYNK_ON_WRITE_IMPL(49);
00228   BLYNK_ON_WRITE_IMPL(50);
00229   BLYNK_ON_WRITE_IMPL(51);
00230   BLYNK_ON_WRITE_IMPL(52);
00231   BLYNK_ON_WRITE_IMPL(53);
00232   BLYNK_ON_WRITE_IMPL(54);
00233   BLYNK_ON_WRITE_IMPL(55);
00234   BLYNK_ON_WRITE_IMPL(56);
00235   BLYNK_ON_WRITE_IMPL(57);
00236   BLYNK_ON_WRITE_IMPL(58);
00237   BLYNK_ON_WRITE_IMPL(59);
00238   BLYNK_ON_WRITE_IMPL(60);
00239   BLYNK_ON_WRITE_IMPL(61);
00240   BLYNK_ON_WRITE_IMPL(62);
00241   BLYNK_ON_WRITE_IMPL(63);
00242   BLYNK_ON_WRITE_IMPL(64);
00243   BLYNK_ON_WRITE_IMPL(65);
00244   BLYNK_ON_WRITE_IMPL(66);
00245   BLYNK_ON_WRITE_IMPL(67);
00246   BLYNK_ON_WRITE_IMPL(68);
00247   BLYNK_ON_WRITE_IMPL(69);
00248   BLYNK_ON_WRITE_IMPL(70);
00249   BLYNK_ON_WRITE_IMPL(71);
00250   BLYNK_ON_WRITE_IMPL(72);
00251   BLYNK_ON_WRITE_IMPL(73);
00252   BLYNK_ON_WRITE_IMPL(74);
00253   BLYNK_ON_WRITE_IMPL(75);
00254   BLYNK_ON_WRITE_IMPL(76);
00255   BLYNK_ON_WRITE_IMPL(77);
00256   BLYNK_ON_WRITE_IMPL(78);
00257   BLYNK_ON_WRITE_IMPL(79);
00258   BLYNK_ON_WRITE_IMPL(80);
00259   BLYNK_ON_WRITE_IMPL(81);
00260   BLYNK_ON_WRITE_IMPL(82);
00261   BLYNK_ON_WRITE_IMPL(83);
00262   BLYNK_ON_WRITE_IMPL(84);
00263   BLYNK_ON_WRITE_IMPL(85);
00264   BLYNK_ON_WRITE_IMPL(86);
00265   BLYNK_ON_WRITE_IMPL(87);
00266   BLYNK_ON_WRITE_IMPL(88);
00267   BLYNK_ON_WRITE_IMPL(89);
00268   BLYNK_ON_WRITE_IMPL(90);
00269   BLYNK_ON_WRITE_IMPL(91);
00270   BLYNK_ON_WRITE_IMPL(92);
00271   BLYNK_ON_WRITE_IMPL(93);
00272   BLYNK_ON_WRITE_IMPL(94);
00273   BLYNK_ON_WRITE_IMPL(95);
00274   BLYNK_ON_WRITE_IMPL(96);
00275   BLYNK_ON_WRITE_IMPL(97);
00276   BLYNK_ON_WRITE_IMPL(98);
00277   BLYNK_ON_WRITE_IMPL(99);
00278   BLYNK_ON_WRITE_IMPL(100);
00279   BLYNK_ON_WRITE_IMPL(101);
00280   BLYNK_ON_WRITE_IMPL(102);
00281   BLYNK_ON_WRITE_IMPL(103);
00282   BLYNK_ON_WRITE_IMPL(104);
00283   BLYNK_ON_WRITE_IMPL(105);
00284   BLYNK_ON_WRITE_IMPL(106);
00285   BLYNK_ON_WRITE_IMPL(107);
00286   BLYNK_ON_WRITE_IMPL(108);
00287   BLYNK_ON_WRITE_IMPL(109);
00288   BLYNK_ON_WRITE_IMPL(110);
00289   BLYNK_ON_WRITE_IMPL(111);
00290   BLYNK_ON_WRITE_IMPL(112);
00291   BLYNK_ON_WRITE_IMPL(113);
00292   BLYNK_ON_WRITE_IMPL(114);
00293   BLYNK_ON_WRITE_IMPL(115);
00294   BLYNK_ON_WRITE_IMPL(116);
00295   BLYNK_ON_WRITE_IMPL(117);
00296   BLYNK_ON_WRITE_IMPL(118);
00297   BLYNK_ON_WRITE_IMPL(119);
00298   BLYNK_ON_WRITE_IMPL(120);
00299   BLYNK_ON_WRITE_IMPL(121);
00300   BLYNK_ON_WRITE_IMPL(122);
00301   BLYNK_ON_WRITE_IMPL(123);
00302   BLYNK_ON_WRITE_IMPL(124);
00303   BLYNK_ON_WRITE_IMPL(125);
00304   BLYNK_ON_WRITE_IMPL(126);
00305   BLYNK_ON_WRITE_IMPL(127);
00306 #endif
00307 
00308 static const WidgetReadHandler BlynkReadHandlerVector[] BLYNK_PROGMEM = {
00309     BlynkWidgetRead0,   BlynkWidgetRead1,   BlynkWidgetRead2,   BlynkWidgetRead3,
00310     BlynkWidgetRead4,   BlynkWidgetRead5,   BlynkWidgetRead6,   BlynkWidgetRead7,
00311     BlynkWidgetRead8,   BlynkWidgetRead9,   BlynkWidgetRead10,  BlynkWidgetRead11,
00312     BlynkWidgetRead12,  BlynkWidgetRead13,  BlynkWidgetRead14,  BlynkWidgetRead15,
00313     BlynkWidgetRead16,  BlynkWidgetRead17,  BlynkWidgetRead18,  BlynkWidgetRead19,
00314     BlynkWidgetRead20,  BlynkWidgetRead21,  BlynkWidgetRead22,  BlynkWidgetRead23,
00315     BlynkWidgetRead24,  BlynkWidgetRead25,  BlynkWidgetRead26,  BlynkWidgetRead27,
00316     BlynkWidgetRead28,  BlynkWidgetRead29,  BlynkWidgetRead30,  BlynkWidgetRead31,
00317 #ifdef BLYNK_USE_128_VPINS
00318     BlynkWidgetRead32,  BlynkWidgetRead33,  BlynkWidgetRead34,  BlynkWidgetRead35,
00319     BlynkWidgetRead36,  BlynkWidgetRead37,  BlynkWidgetRead38,  BlynkWidgetRead39,
00320     BlynkWidgetRead40,  BlynkWidgetRead41,  BlynkWidgetRead42,  BlynkWidgetRead43,
00321     BlynkWidgetRead44,  BlynkWidgetRead45,  BlynkWidgetRead46,  BlynkWidgetRead47,
00322     BlynkWidgetRead48,  BlynkWidgetRead49,  BlynkWidgetRead50,  BlynkWidgetRead51,
00323     BlynkWidgetRead52,  BlynkWidgetRead53,  BlynkWidgetRead54,  BlynkWidgetRead55,
00324     BlynkWidgetRead56,  BlynkWidgetRead57,  BlynkWidgetRead58,  BlynkWidgetRead59,
00325     BlynkWidgetRead60,  BlynkWidgetRead61,  BlynkWidgetRead62,  BlynkWidgetRead63,
00326     BlynkWidgetRead64,  BlynkWidgetRead65,  BlynkWidgetRead66,  BlynkWidgetRead67,
00327     BlynkWidgetRead68,  BlynkWidgetRead69,  BlynkWidgetRead70,  BlynkWidgetRead71,
00328     BlynkWidgetRead72,  BlynkWidgetRead73,  BlynkWidgetRead74,  BlynkWidgetRead75,
00329     BlynkWidgetRead76,  BlynkWidgetRead77,  BlynkWidgetRead78,  BlynkWidgetRead79,
00330     BlynkWidgetRead80,  BlynkWidgetRead81,  BlynkWidgetRead82,  BlynkWidgetRead83,
00331     BlynkWidgetRead84,  BlynkWidgetRead85,  BlynkWidgetRead86,  BlynkWidgetRead87,
00332     BlynkWidgetRead88,  BlynkWidgetRead89,  BlynkWidgetRead90,  BlynkWidgetRead91,
00333     BlynkWidgetRead92,  BlynkWidgetRead93,  BlynkWidgetRead94,  BlynkWidgetRead95,
00334     BlynkWidgetRead96,  BlynkWidgetRead97,  BlynkWidgetRead98,  BlynkWidgetRead99,
00335     BlynkWidgetRead100,  BlynkWidgetRead101,  BlynkWidgetRead102,  BlynkWidgetRead103,
00336     BlynkWidgetRead104,  BlynkWidgetRead105,  BlynkWidgetRead106,  BlynkWidgetRead107,
00337     BlynkWidgetRead108,  BlynkWidgetRead109,  BlynkWidgetRead110,  BlynkWidgetRead111,
00338     BlynkWidgetRead112,  BlynkWidgetRead113,  BlynkWidgetRead114,  BlynkWidgetRead115,
00339     BlynkWidgetRead116,  BlynkWidgetRead117,  BlynkWidgetRead118,  BlynkWidgetRead119,
00340     BlynkWidgetRead120,  BlynkWidgetRead121,  BlynkWidgetRead122,  BlynkWidgetRead123,
00341     BlynkWidgetRead124,  BlynkWidgetRead125,  BlynkWidgetRead126,  BlynkWidgetRead127,
00342 #endif
00343 };
00344 
00345 static const WidgetWriteHandler BlynkWriteHandlerVector[] BLYNK_PROGMEM = {
00346     BlynkWidgetWrite0,  BlynkWidgetWrite1,  BlynkWidgetWrite2,  BlynkWidgetWrite3,
00347     BlynkWidgetWrite4,  BlynkWidgetWrite5,  BlynkWidgetWrite6,  BlynkWidgetWrite7,
00348     BlynkWidgetWrite8,  BlynkWidgetWrite9,  BlynkWidgetWrite10, BlynkWidgetWrite11,
00349     BlynkWidgetWrite12, BlynkWidgetWrite13, BlynkWidgetWrite14, BlynkWidgetWrite15,
00350     BlynkWidgetWrite16, BlynkWidgetWrite17, BlynkWidgetWrite18, BlynkWidgetWrite19,
00351     BlynkWidgetWrite20, BlynkWidgetWrite21, BlynkWidgetWrite22, BlynkWidgetWrite23,
00352     BlynkWidgetWrite24, BlynkWidgetWrite25, BlynkWidgetWrite26, BlynkWidgetWrite27,
00353     BlynkWidgetWrite28, BlynkWidgetWrite29, BlynkWidgetWrite30, BlynkWidgetWrite31,
00354 #ifdef BLYNK_USE_128_VPINS
00355     BlynkWidgetWrite32,  BlynkWidgetWrite33,  BlynkWidgetWrite34,  BlynkWidgetWrite35,
00356     BlynkWidgetWrite36,  BlynkWidgetWrite37,  BlynkWidgetWrite38,  BlynkWidgetWrite39,
00357     BlynkWidgetWrite40,  BlynkWidgetWrite41,  BlynkWidgetWrite42,  BlynkWidgetWrite43,
00358     BlynkWidgetWrite44,  BlynkWidgetWrite45,  BlynkWidgetWrite46,  BlynkWidgetWrite47,
00359     BlynkWidgetWrite48,  BlynkWidgetWrite49,  BlynkWidgetWrite50,  BlynkWidgetWrite51,
00360     BlynkWidgetWrite52,  BlynkWidgetWrite53,  BlynkWidgetWrite54,  BlynkWidgetWrite55,
00361     BlynkWidgetWrite56,  BlynkWidgetWrite57,  BlynkWidgetWrite58,  BlynkWidgetWrite59,
00362     BlynkWidgetWrite60,  BlynkWidgetWrite61,  BlynkWidgetWrite62,  BlynkWidgetWrite63,
00363     BlynkWidgetWrite64,  BlynkWidgetWrite65,  BlynkWidgetWrite66,  BlynkWidgetWrite67,
00364     BlynkWidgetWrite68,  BlynkWidgetWrite69,  BlynkWidgetWrite70,  BlynkWidgetWrite71,
00365     BlynkWidgetWrite72,  BlynkWidgetWrite73,  BlynkWidgetWrite74,  BlynkWidgetWrite75,
00366     BlynkWidgetWrite76,  BlynkWidgetWrite77,  BlynkWidgetWrite78,  BlynkWidgetWrite79,
00367     BlynkWidgetWrite80,  BlynkWidgetWrite81,  BlynkWidgetWrite82,  BlynkWidgetWrite83,
00368     BlynkWidgetWrite84,  BlynkWidgetWrite85,  BlynkWidgetWrite86,  BlynkWidgetWrite87,
00369     BlynkWidgetWrite88,  BlynkWidgetWrite89,  BlynkWidgetWrite90,  BlynkWidgetWrite91,
00370     BlynkWidgetWrite92,  BlynkWidgetWrite93,  BlynkWidgetWrite94,  BlynkWidgetWrite95,
00371     BlynkWidgetWrite96,  BlynkWidgetWrite97,  BlynkWidgetWrite98,  BlynkWidgetWrite99,
00372     BlynkWidgetWrite100,  BlynkWidgetWrite101,  BlynkWidgetWrite102,  BlynkWidgetWrite103,
00373     BlynkWidgetWrite104,  BlynkWidgetWrite105,  BlynkWidgetWrite106,  BlynkWidgetWrite107,
00374     BlynkWidgetWrite108,  BlynkWidgetWrite109,  BlynkWidgetWrite110,  BlynkWidgetWrite111,
00375     BlynkWidgetWrite112,  BlynkWidgetWrite113,  BlynkWidgetWrite114,  BlynkWidgetWrite115,
00376     BlynkWidgetWrite116,  BlynkWidgetWrite117,  BlynkWidgetWrite118,  BlynkWidgetWrite119,
00377     BlynkWidgetWrite120,  BlynkWidgetWrite121,  BlynkWidgetWrite122,  BlynkWidgetWrite123,
00378     BlynkWidgetWrite124,  BlynkWidgetWrite125,  BlynkWidgetWrite126,  BlynkWidgetWrite127,
00379 #endif
00380 };
00381 
00382 WidgetReadHandler GetReadHandler(uint8_t pin)
00383 {
00384     if (pin >= BLYNK_COUNT_OF(BlynkReadHandlerVector))
00385         return NULL;
00386 #ifdef BLYNK_HAS_PROGMEM
00387     return (WidgetReadHandler)pgm_read_word(&BlynkReadHandlerVector[pin]);
00388 #else
00389     return BlynkReadHandlerVector[pin];
00390 #endif
00391 }
00392 
00393 WidgetWriteHandler GetWriteHandler(uint8_t pin)
00394 {
00395     if (pin >= BLYNK_COUNT_OF(BlynkWriteHandlerVector))
00396         return NULL;
00397 #ifdef BLYNK_HAS_PROGMEM
00398     return (WidgetWriteHandler)pgm_read_word(&BlynkWriteHandlerVector[pin]);
00399 #else
00400     return BlynkWriteHandlerVector[pin];
00401 #endif
00402 }