#ifndef SensorVDDef #define SensorVDDef 1 #include "defines.h" //sensor virtual class SensorVD: public DomoEspSensorReceiver { bool val; public: SensorVD() { val=0; topic[0]=0; } void set(char* topic_id, bool 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("LogSV "); 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') val=!val; else val=(atoi(payload)==1); sprintf(buffer_p, "%d", (int)val); sprintf(buffer_t, "%s/get",topic); man->MqttSend(buffer_t, buffer_p); } } }; #endif