#include <qthing.h> #include "lcd.h" #include "mqtt.h" #include <string> #include <vector> #include <sstream> #include "Arduino.h" #include "LiquidCrystal.h" LiquidCrystal lcd(-1, -1, -1, -1, -1, -1); void enable_lcd(const std::string& topic, uint8_t rs, uint8_t en, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) { lcd = LiquidCrystal(rs, en, d4, d5, d6, d7); lcd.begin(16, 2); lcd.clear(); lcd.print("Uninitialized"); add_wlan_connection_status_callback([](connection_status_t connection_status) { lcd.clear(); if (connection_status == connecting) { lcd.print("WLAN connecting"); } else if (connection_status == disconnected) { lcd.print("WLAN offline"); } }); add_mqtt_connection_status_callback([](connection_status_t connection_status) { lcd.clear(); if (connection_status == connecting) { lcd.print("MQTT connecting"); } else if (connection_status == disconnected) { lcd.print("MQTT offline"); } }); add_message_callback(topic, [](std::string message) { lcd.clear(); std::istringstream stream(message); std::string line; std::getline(stream, line); lcd.setCursor(0,0); lcd.print(line.c_str()); if (std::getline(stream, line)) { lcd.setCursor(0,1); lcd.print(line.c_str()); } }); }