nRF24L01, encoder, pca9685, pid

Dependencies:   mbed QEI-1 LibPN532 nRF24L01P xiugai

Revision:
5:fdacb4ef6709
diff -r 652d2be11b35 -r fdacb4ef6709 esp8266.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/esp8266.h	Wed Oct 30 10:59:58 2019 +0000
@@ -0,0 +1,53 @@
+/**
+ * 调用本驱动库需要使能
+ * 在mbed_config.h中define一下ENABLE_ESP8266即可
+ **/
+#ifndef __ESP8266_H
+#define __ESP8266_H
+
+#ifdef ENABLE_ESP8266
+
+#include "mbed.h"
+#include <string>
+
+class Esp8266 {                                                                 //声明一个类
+    volatile bool network_start;
+    volatile bool mqtt_start;
+    volatile bool control_cmd;
+    char esp_tokenBuf[32], esp_paramBuf[32];   // recv from esp8266
+    char control_buf[32];
+    bool esp_buf_ready;
+    Serial ser2esp8266;
+    
+protected:
+    void esp8266_rxCallback();
+    void gotResponse(char *token, char *param);
+    void buildCapability(char *out, const char* infoList[][2]);
+public:
+    Esp8266(PinName TX, PinName RX, const char *wifi_ssid, const char *wifi_passwd);
+    
+    // 通用
+    bool reset();
+    
+    // 连接模式
+    bool connect_wifi(const char *wifi_ssid, const char *wifi_passwd);
+    bool weblogin();
+    bool connect_mqtt_broker(const char *ip, const char *node_name, const char* sensors[][2], const char* actuator[][2]);
+    bool is_connected();
+    
+    bool publish_value(const char *topic, std::string data);
+    bool publish_value(const char *topic, int data);
+    bool publish_value(const char *topic, float data);
+    bool subscribe_control(const char *topic, const char *data = NULL);
+    bool is_control_available(void) { return control_cmd; }
+    bool get_control_cmd(char* actuator, char* value);
+    // 热点模式
+};
+
+#else
+
+    #error esp8266.h is included but "ENABLE_ESP8266" is not defined, check mbed_config.h for detail
+
+#endif  // ENABLE_ESP8266
+
+#endif  // !__ESP8266_H