#ifndef SensorAinDef #define SensorAinDef 1 #include "utiles.h" class SensorAin: public DomoEspSensorReceiver { float val; bool negado; uint8_t pin; float dif; Ctimer timer; public: virtual float getVal() { return val; } SensorAin(){} void set(uint8_t _pin,const char* topic_id, bool _negado, float _dif) { timer.inicia(); timer.set(1); dif=_dif; negado=_negado; pin=_pin; val=0; strcpy(topic, topic_id); } virtual void procesa(IMqttManager * man, int tiempo) { //mirar para configurar por interrupcion if((dif!=0 && timer.onTimerReset()) || tiempo==2) { float val_act; if(negado) val_act =100.*((float)(1024- analogRead(pin)))/1024; else val_act =100.*((float)(analogRead(pin)))/1024; if(dif<=abs(val_act-val) || tiempo==2) { val=val_act; #ifdef DEBUG_PS Serial.print("Sensor Analog log "); Serial.println(val); #endif //loguea------------ dtostrf(val,3, 2, buffer_p); sprintf(buffer_t, "%s/get",topic); man->MqttSend(buffer_t, buffer_p); } } } }; #endif