64 lines
1.2 KiB
C++
64 lines
1.2 KiB
C++
#ifndef DomoEspManagerDef
|
|
#define DomoEspManagerDef 1
|
|
|
|
|
|
#include <PubSubClient.h>
|
|
#ifndef ESP32_DEF
|
|
#include <ESP8266WiFi.h>
|
|
#endif
|
|
#ifdef ESP32_DEF
|
|
#include <WiFi.h>
|
|
#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;
|
|
#ifndef ESP32_DEF
|
|
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 |