DomoEsp_v2.0/DomoEspSensor/SensorPulsante.h

51 lines
1.0 KiB
C++

#ifndef SensorPulsanteDef
#define SensorPulsanteDef 1
#include "defines.h"
//sensor que avisa del cambio cuando deja de ser el valor por defecto
class SensorPulsante: public DomoEspSensorReceiver
{
bool val;
bool valDef;
uint8_t pin;
public:
virtual float getVal()
{
return (float)val;
}
SensorPulsante()
{}
void set(uint8_t _pin, char* topic_id, bool _valDef)
{
pin=_pin;
valDef=_valDef;
val=valDef;
strcpy(topic, topic_id);
}
virtual void procesa(IMqttManager * man, int tiempo)
{
//mirar para configurar por interrupcion
int val_ac=digitalRead(pin);
if(val_ac!=val && val_ac!=valDef)
{
#ifdef DEBUG_PS
Serial.println("SensorPulsante log ");
#endif
//loguea------------
sprintf(buffer_p, "%d", (int)val_ac);
sprintf(buffer_t, "%s/pul",topic);
man->MqttSend(buffer_t, buffer_p);
delay(100);
}
val=val_ac;
}
virtual void inicia()
{
pinMode(pin, INPUT);
val=digitalRead(pin);
}
};
#endif