DomoEsp_v2.0/DomoEspSensor/SensorAin.h

56 lines
1.2 KiB
C++

#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, 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