Example MQTT node - Hyp-ed/hyped-2024 GitHub Wiki
An MQTT node consists of an infinite loop:
void Example::run()
{
while (true /* or you may have a better exit condition */) {
mqtt_->consume();
const auto message = mqtt_.getMessage();
if (!message) { continue; }
const auto message = *message;
if (message.topic == kStateMachine) {
logger_.log(kFatal, "Received shutdown message");
break;
}
elif (message.topic == kIncomingData)
{
const auto result_message = process(message);
mqtt_->publish(result_message)
}
// there will be a core function for cross platform sleep soon
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
}