#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; Ctimer timer; bool espera; public: virtual float getVal() { return (float)val; } SensorPulsante() { espera=false; timer.setmilis(500); } void set(uint8_t _pin, char* topic_id, bool _valDef) { pin=_pin; valDef=_valDef; val=valDef; strcpy(topic, topic_id); } void setIncremento(int milis) { timer.setmilis(milis); } virtual void procesa(IMqttManager * man, int tiempo) { //mirar para configurar por interrupcion int val_ac=val; if(!espera || timer.onTimer()) { val_ac=digitalRead(pin); espera=false; } 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); timer.inicia(); espera=true; } val=val_ac; } virtual void inicia() { pinMode(pin, INPUT); val=digitalRead(pin); } }; #endif