27 lines
780 B
C++
27 lines
780 B
C++
#include "mqtt/mqtt_app.hh"
|
|
#include "jsoncpp/json/json.h"
|
|
#include "jsoncpp/json/value.h"
|
|
#include "jsoncpp/json/writer.h"
|
|
#include <cstdint>
|
|
|
|
using namespace af::mqtt::v1;
|
|
|
|
void MqttApp::app_publish_state(State state) {
|
|
std::string payload;
|
|
uint8_t mask = static_cast<uint8_t>(state);
|
|
encode_state_json(mask, payload);
|
|
mqtt_client_->publish(Topics::state(topic_contex_), payload, 1, false);
|
|
}
|
|
|
|
void MqttApp::encode_state_json(uint8_t mask, std::string& str_json) {
|
|
Json::Value root;
|
|
root["version"] = "v1";
|
|
root["state"] = mask;
|
|
root["left"] = 0;
|
|
Json::FastWriter write;
|
|
str_json = write.write(root);
|
|
}
|
|
|
|
void MqttApp::init_topic_feed_callback() {
|
|
mqtt_client_->subscribe(Topics::cmd_ack(topic_contex_, "feed"), 0, nullptr);
|
|
} |