/*#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif*/
#ifndef LcdMQTTViewerdef
#define LcdMQTTViewerdef 1

#include "MqttDefines.h"
class LiquidCrystal;
class PubSubClient;
class MqttVarManager;
struct LcdMQTTInfo
{
	byte ivar;//indice a variable
	char formatLCD[MAXTOPICVAR];//formato
	byte pan;//pantalla en la que sale
  byte line;//linea en la que sale

};

#define MAXINFOLCD	 8
class LcdMQTTViewer
{
public:
	LiquidCrystal *lcd;
	int nchar;//caracteres maximos por linea del lcd
	int maxtInfo;
	int maxpan;//maximo de pantallas configuradas
	int panActual;//pantalla que esta mostrando actualmente
  byte nlineslcd;//lineas maximas del lcd
  byte ivarBuzzer;
  unsigned long  tiempo;
	unsigned long incre_t;
  char topic[MAXSTR];//topic de mqtt Alarma

  MqttVarManager* vars;
  
	LcdMQTTInfo LcdConf[MAXINFOLCD];

	LcdMQTTViewer();

  void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines,int ibuz);
  void loop();//publica datos variables
  int OnMqtt(char* topic, char* payload);
  void suscribe(PubSubClient *client_qqtt);
 //auxiliares----------------------------------------------------------
	void add(byte ivar, char* formatLCD, int line, int pan);
	void setTimer(int seg);
	void envia(char* txt, int pos, int line);
	void envia(int pan);
	//void revisa();
};
#endif
