DomoEsp_v2.0/DomoEspSensor/SensorDin.h

47 lines
877 B
C++

#ifndef SensorDinDef
#define SensorDinDef 1
#include "defines.h"
class SensorDin: public DomoEspSensorReceiver
{
bool val;
uint8_t pin;
public:
virtual float getVal()
{
return (float)val;
}
SensorDin(){}
void set(uint8_t _pin, char* topic_id)
{
pin=_pin;
val=0;
strcpy(topic, topic_id);
}
virtual void procesa(IMqttManager * man, int tiempo)
{
//mirar para configurar por interrupcion
int val_ac=digitalRead(pin);
if(tiempo==2 || val_ac!=val)
{
val=val_ac;
//loguea------------
//char buffer_t[MAXTOPICVAR];
//char buffer_p[MAXTOPICVAR];
sprintf(buffer_p, "%d", (int)val);
sprintf(buffer_t, "%s/get",topic);
man->MqttSend(buffer_t, buffer_p);
}
}
virtual void inicia()
{
pinMode(pin, INPUT);
val=digitalRead(pin);
}
};
#endif