Files
RoboGlue_QT/com/mqtt_callback.cpp

38 lines
1.5 KiB
C++

#include "mqtt_callback.h"
mqtt_callback::mqtt_callback(mqtt::async_client *cli, std::shared_ptr<spdlog::logger> log, RoboGlue_SHARED *mem) {
//initialize client pointer
cli_=cli;
log_=log;
mem_= mem;
}
void mqtt_callback::connected(const mqtt::string &cause) {
log_->info("MQTT client Connected: {}", cause.c_str());
}
void mqtt_callback::connection_lost(const mqtt::string &cause) {
log_->info("MQTT client Disconnected {}", cause.c_str());
}
void mqtt_callback::message_arrived(mqtt::const_message_ptr msg) {
log_->debug("Message Arrived: topic->{} - message->{}",
msg->get_topic(), msg->to_string());
if(msg->get_topic() == mem_->comSettings.subMap.find("interface")->second) {
log_->debug("MQTT: Interface Message: {}", msg->get_payload().c_str());
} else if (msg->get_topic() == mem_->comSettings.subMap.find("state")->second){
log_->debug("MQTT: State Message: {}", msg->get_payload().c_str());
} else if (msg->get_topic() == mem_->comSettings.subMap.find("commands")->second){
log_->debug("MQTT: Command Message: {}", msg->get_payload().c_str());
} else if (msg->get_topic() == mem_->comSettings.subMap.find("coordinates")->second){
log_->debug("MQTT: Coordinate Message: {}", msg->get_payload().c_str());
} else {
log_->error("Unrecognized topic");
}
}
void mqtt_callback::delivery_complete(mqtt::delivery_token_ptr tok) {
log_->trace("Message Delivery complete \n tok: {}", tok->get_message_id());
}