#ifndef DomoEspManagerDef #define DomoEspManagerDef 1 #include #if defined(ESP8266) #include #elif defined(ESP32) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(ESP32C3) #include #else #error "Placa no soportada" #endif #include "utiles.h" #include "DomoEspApiConexion.h" class DomoEspConfig; class IDomoEspLisener { public: void inicia(); void loop(); virtual void OnMqtt(char* topic, char* payload); virtual bool SubscribeMqtt(char *topic); }; class DomoEspManager: public MqttReceiver, public IMqttManager, public ISensorManager { WifiManager wifi; DomoEspConfig* conf; WiFiClient espClient; PubSubClient clienteMqtt; MqttManager mqtt; #ifdef ESP8266 DomoEspApiConexion api; #endif DomoEspSensorReceiver* sensores[MAXSENS]; int n; int tiempo; bool suscrito; Ctimer timer; Ctimer tNoConexion; Ctimer tNomqtt; public: DomoEspManager(); //funcion inicial void SetTimeRefres(int seg); void inicia(DomoEspConfig* cnf); void loop(); //funciones auxiliares virtual void OnMqtt(char* topic, char* payload); virtual void SubscribeMqtt(PubSubClient *client_mqtt); virtual void MqttSend(char* topic, char* payload); virtual void MqttSubs(char* topic); virtual void Add(DomoEspSensorReceiver* sensor); }; #endif