DomoEsp_v2.0/DomoEspSensor/Utiles.h

106 lines
1.9 KiB
C++

#ifndef UtilesDef
#define UtilesDef 1
#include "defines.h"
class PubSubClient;
#ifdef ESP8266
class WiFiClient;
#endif
class MqttUtiles
{
public:
static void resetFunc();
};
class Ctimer
{
unsigned long t;
unsigned long incre;
public:
Ctimer();
void set(int incremento_seg);
void setmilis(int milis);
void inicia();//inicia contador de incremento
bool onTimer();//devuelve true si ha pasado el tiempo
bool onTimerReset();//pasa incremento y si ha pasado se reinicia
};
class MqttOnVarChangeListenner
{
public:
virtual void OnVarChange(int ivar)=0;
};
class WifiManager
{
public:
char nred[32];
char pass[32];
char idArduino[32];
WiFiClient *espClient;
WifiManager();
bool conecta();
void inicia( WiFiClient *espClient, char *ssid, char* key, char *idArduino);
bool loop();
};
static MqttReceiver* Mqttlistener;
class MqttManager
{
public:
private:
char idEsp[32];
public:
PubSubClient *client_mqtt;
MqttReceiver *mqttlisener;
MqttManager();
/*
WiFiClient espClient;//conexion a wifi
PubSubClient client_qqtt(espClient);//para conexion con mqtt
*/
void inicia(PubSubClient *mqttClient,char *ideEsp, char *host, int port, MqttReceiver* classReceiver);
bool loop();
//void desconecta();
//auxiliar------------------
static void OnMqtt(char* topic, uint8_t * payload, unsigned int length);
void subscribe_mqtt();
};
class MelodiaBuzzer
{
public:
//melodia se compone de notas (primera letra y tiempo de duracion) silecio es #
char melodia[MAX_CHAR_MELODIA];
MelodiaBuzzer();
int st2nota(char st);
int str2t(char* st, int *t);
void Toca(int pin);
};
class SonidoBuzzer
{
public:
MelodiaBuzzer mel[MAX_MELODIAS];
int n;
SonidoBuzzer();
void Toca(int pin, int melodia);
void Set(int i, const char* melo);
char* getMelSubSt(char* orig, char caracter, int lim, char* bufOut);
};
#endif