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

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers WidgetBridge.h Source File

WidgetBridge.h

Go to the documentation of this file.
00001 /**
00002  * @file       WidgetBridge.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       Apr 2015
00007  * @brief
00008  *
00009  */
00010 
00011 #ifndef WidgetBridge_h
00012 #define WidgetBridge_h
00013 
00014 #include <Blynk/BlynkApi.h>
00015 
00016 class WidgetBridge
00017 {
00018 public:
00019     WidgetBridge(int vPin)
00020         : mPin(vPin)
00021     {}
00022     void onWrite(BlynkReq& request, const BlynkParam& param) {}
00023 
00024     void setAuthToken(const char* token) {
00025         char mem[64];
00026         BlynkParam cmd(mem, 0, sizeof(mem));
00027         cmd.add(mPin);
00028         cmd.add("i");
00029         cmd.add(token);
00030         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
00031     }
00032 
00033     template <typename T>
00034     void digitalWrite(const T& pin, int val) {
00035         char mem[64];
00036         BlynkParam cmd(mem, 0, sizeof(mem));
00037         cmd.add(mPin);
00038         cmd.add("dw");
00039         cmd.add(pin);
00040         cmd.add(val);
00041         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
00042     }
00043 
00044     template <typename T>
00045     void analogWrite(const T& pin, int val) {
00046         char mem[64];
00047         BlynkParam cmd(mem, 0, sizeof(mem));
00048         cmd.add(mPin);
00049         cmd.add("aw");
00050         cmd.add(pin);
00051         cmd.add(val);
00052         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
00053     }
00054 
00055     template <typename T>
00056     void virtualWrite(int pin, const T& data) {
00057         char mem[64];
00058         BlynkParam cmd(mem, 0, sizeof(mem));
00059         cmd.add(mPin);
00060         cmd.add("vw");
00061         cmd.add(pin);
00062         cmd.add(data);
00063         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1);
00064     }
00065 
00066     template <typename T1, typename T2>
00067     void virtualWrite(int pin, const T1& data1, const T2& data2) {
00068         char mem[64];
00069         BlynkParam cmd(mem, 0, sizeof(mem));
00070         cmd.add(mPin);
00071         cmd.add("vw");
00072         cmd.add(pin);
00073         cmd.add(data1);
00074         cmd.add(data2);
00075         Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
00076     }
00077 
00078     template <typename T1, typename T2, typename T3>
00079     void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3) {
00080         char mem[64];
00081         BlynkParam cmd(mem, 0, sizeof(mem));
00082         cmd.add(mPin);
00083         cmd.add("vw");
00084         cmd.add(pin);
00085         cmd.add(data1);
00086         cmd.add(data2);
00087         cmd.add(data3);
00088         Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
00089     }
00090 
00091     template <typename T1, typename T2, typename T3, typename T4>
00092     void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3, const T4& data4) {
00093         char mem[64];
00094         BlynkParam cmd(mem, 0, sizeof(mem));
00095         cmd.add(mPin);
00096         cmd.add("vw");
00097         cmd.add(pin);
00098         cmd.add(data1);
00099         cmd.add(data2);
00100         cmd.add(data3);
00101         cmd.add(data4);
00102         Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1);
00103     }
00104 
00105     void virtualWriteBinary(int pin, const void* buff, size_t len) {
00106         char mem[8];
00107         BlynkParam cmd(mem, 0, sizeof(mem));
00108         cmd.add(mPin);
00109         cmd.add("vw");
00110         cmd.add(pin);
00111         Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength(), buff, len);
00112     }
00113 
00114     void virtualWrite(int pin, const BlynkParam& param) {
00115         virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1);
00116     }
00117 
00118 private:
00119     int mPin;
00120 };
00121 
00122 #endif
00123