add MQTT and OTA update support #1
@ -19,6 +19,7 @@ static SocketServer socketServer;
|
||||
#define AIO_SERVERPORT credentials::mqtt_port
|
||||
#define AIO_USERNAME credentials::mqtt_username.c_str()
|
||||
#define AIO_KEY credentials::mqtt_password.c_str()
|
||||
|
||||
fmueller marked this conversation as resolved
Outdated
|
||||
WiFiClient client;
|
||||
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
|
||||
Adafruit_MQTT_Subscribe mqtt_subscribe_topic = Adafruit_MQTT_Subscribe(&mqtt, "homeassistant/marquee_sign/text");
|
||||
@ -90,7 +91,8 @@ void MQTT_connect() {
|
||||
}
|
||||
|
||||
uint8_t retries = 6;
|
||||
fmueller
commented
I'd highly appreciate if you'd avoid the use of inline comments. I'd highly appreciate if you'd avoid the use of inline comments.
burned42
commented
I think I copied the whole function from some code in an example of one of the libraries. Feel free to adjust to your prefered code style. I think I copied the whole function from some code in an example of one of the libraries. Feel free to adjust to your prefered code style.
fmueller
commented
Will do. I'll also test the USB flashing locally. Will do. I'll also test the USB flashing locally.
|
||||
while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected
|
||||
// connect will return 0 for connected
|
||||
while ((ret = mqtt.connect()) != 0) {
|
||||
mqtt.disconnect();
|
||||
|
||||
// wait 10s till next try
|
||||
fmueller marked this conversation as resolved
Outdated
fmueller
commented
A chance to flash it while it's in the back-off? I'd appreciate a comment explaining this line. A chance to flash it while it's in the back-off? I'd appreciate a comment explaining this line.
burned42
commented
see above, I copied this from an example from one of the used libraries see above, I copied this from an example from one of the used libraries
|
||||
|
12
src/util.h
12
src/util.h
@ -287,7 +287,8 @@ String convertToCP437(const String& input) {
|
||||
if ((ch & 0xF0) == 0xE0) {
|
||||
if (i + 2 < len) {
|
||||
uint32_t utf8_char = ((uint8_t)input[i] << 16) | ((uint8_t)input[i + 1] << 8) | (uint8_t)input[i + 2];
|
||||
i += 2; // skip 2 additional bytes
|
||||
// skip 2 additional bytes
|
||||
i += 2;
|
||||
if (cp437_map.find(utf8_char) != cp437_map.end()) {
|
||||
output += static_cast<char>(cp437_map[utf8_char]);
|
||||
continue;
|
||||
@ -298,7 +299,8 @@ String convertToCP437(const String& input) {
|
||||
else if ((ch & 0xE0) == 0xC0) {
|
||||
if (i + 1 < len) {
|
||||
uint16_t utf8_char = ((uint8_t)input[i] << 8) | (uint8_t)input[i + 1];
|
||||
i++; // skip second byte
|
||||
// skip second byte
|
||||
i++;
|
||||
if (cp437_map.find(utf8_char) != cp437_map.end()) {
|
||||
output += static_cast<char>(cp437_map[utf8_char]);
|
||||
continue;
|
||||
@ -306,11 +308,13 @@ String convertToCP437(const String& input) {
|
||||
}
|
||||
}
|
||||
// single UTF-16 character (or plain ANSI character)
|
||||
else if ((uint8_t)ch < 0x80) { // keep ASCII as is
|
||||
else if ((uint8_t)ch < 0x80) {
|
||||
// keep ASCII as is
|
||||
output += ch;
|
||||
}
|
||||
else {
|
||||
uint16_t utf16_char = (uint8_t)ch; // UTF-16 range
|
||||
uint16_t utf16_char = (uint8_t)ch;
|
||||
// check if character is in UTF-16 range, fallback to ?
|
||||
if (cp437_map.find(utf16_char) != cp437_map.end()) {
|
||||
output += static_cast<char>(cp437_map[utf16_char]);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user
Please add a blank line above.
done 👍