32 lines
1.0 KiB
C++
32 lines
1.0 KiB
C++
#include <RemoteVariable.hpp>
|
|
|
|
RemoteVariable::RemoteVariable() {
|
|
this->topic = nullptr;
|
|
this->value = nullptr;
|
|
}
|
|
RemoteVariable::~RemoteVariable() {
|
|
delete this->topic;
|
|
delete this->value;
|
|
}
|
|
void RemoteVariable::begin(size_t size, char* topic, ESPMegaIoT* iot) {
|
|
this->iot = iot;
|
|
this->size = size;
|
|
topic = (char*)calloc(size, sizeof(char));
|
|
value = (char*)calloc(size, sizeof(char));
|
|
auto bindedMqttCallback = std::bind(&RemoteVariable::mqtt_callback, this, std::placeholders::_1, std::placeholders::_2);
|
|
this->iot->registerMqttCallback(bindedMqttCallback);
|
|
auto bindedSubscribe = std::bind(&RemoteVariable::subscribe, this);
|
|
this->iot->registerSubscribeCallback(bindedSubscribe);
|
|
}
|
|
void RemoteVariable::subscribe() {
|
|
this->iot->subscribe(this->topic);
|
|
}
|
|
char* RemoteVariable::getValue() {
|
|
return this->getValue();
|
|
}
|
|
|
|
void RemoteVariable::mqtt_callback(char* topic, char* payload) {
|
|
if (strcmp(topic, this->topic) == 0) {
|
|
strcpy(this->value, payload);
|
|
}
|
|
} |