#ifndef SensorVFDef #define SensorVFDDef 1 #include "defines.h" //sensor virtual class SensorVF: public DomoEspSensorReceiver { float val; public: SensorVF() { val=0; topic[0]=0; } void set(char* topic_id, float valdef) { val=valdef; strcpy(topic, topic_id); } virtual float getVal() { return (float)val; } virtual void procesa(IMqttManager * man, int tiempo) { if(tiempo==2) { #ifdef DEBUG_PS Serial.print("LogSF "); Serial.println(val); #endif //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 SubscribeMqtt(IMqttManager* man){ //char buffer_t[MAXTOPICVAR]; sprintf(buffer_t, "%s/set",topic); man->MqttSubs(buffer_t); } virtual void OnMqtt(IMqttManager * man, char* _topic, char* payload, int tipo) { if(tipo!=Topic::SET) return; if(!strcmp(_topic, topic)) { if(payload[0]=='X') { if(val==0) val=1; else val=0; } else val=atof(payload); sprintf(buffer_p, "%d", (int)val); sprintf(buffer_t, "%s/get",topic); man->MqttSend(buffer_t, buffer_p); } } }; #endif