diff --git a/include/display.h b/include/display.h index 9aac3b9..cad554f 100644 --- a/include/display.h +++ b/include/display.h @@ -13,7 +13,7 @@ namespace Display { void displayColon(); - Task tDisplay(500, TASK_FOREVER, Display::displayColon, &ts, true); + Task tDisplay(500, TASK_FOREVER, displayColon, &ts, true); uint8_t brightness = BRIGHTNESS; int currentHour = -1; @@ -55,9 +55,7 @@ namespace Display { clockDisplay.setBrightness(brightness); } - void displayColon() { - static bool colonOn = false; - + void displayColon(bool colonOn) { if (colonOn) { if (currentHour != hour()) { currentHour = hour(); @@ -71,14 +69,33 @@ namespace Display { } } clockDisplay.drawColon(colonOn); + } + + void displayColon() { + static bool colonOn = false; + + displayColon(colonOn); clockDisplay.writeDisplay(); colonOn = !colonOn; } - void displayValue(int value) { + void displayValue(uint8_t value) { + tDisplay.disable(); + displayColon(false); clockDisplay.print(value, HEX); clockDisplay.writeDisplay(); + adjustTime(); + tDisplay.enableDelayed(1000); + } + + void displayText(const char c[]) { + tDisplay.disable(); + displayColon(false); + clockDisplay.println(c); + clockDisplay.writeDisplay(); + adjustTime(); + tDisplay.enableDelayed(1000); } void setup() { diff --git a/include/ir.h b/include/ir.h index 19fac88..353c8c4 100644 --- a/include/ir.h +++ b/include/ir.h @@ -37,38 +37,54 @@ namespace Ir { return newCommand; } - void displayValue() { - Display::displayValue(lastCommand); - Display::tDisplay.setCallback(Display::displayColon); - Display::adjustTime(); + void command(const char c[]) { + avrOn = true; + Wifi::reconnect(); + Display::displayText(c); } void loop() { if (readCommand()) { - Display::tDisplay.setCallback(displayValue); - Display::tDisplay.forceNextIteration(); switch (lastCommand) { case 0x9F: avrOn = false; tCheckWifi.enable(); + Display::displayText("Off"); + break; + case 0x12: + command("Slp"); break; case 0xC4: + command("Play"); + break; case 0xD0: + command("Fire"); + break; case 0xC0: - avrOn = true; - Wifi::reconnect(); + command("On"); break; default: + Display::displayValue(lastCommand); break; } } - if (!avrOn && Mqtt::commands.getCurrent() == 0xC7) { - Display::changeBrightness(true); + if (Mqtt::commands.getCurrent() == 0xC7) { + if (!avrOn) { + Display::displayText("B Up"); + Display::changeBrightness(true); + } else { + Display::displayText(" Up"); + } Mqtt::commands.pop(); } - if (!avrOn && Mqtt::commands.getCurrent() == 0xC8) { - Display::changeBrightness(false); + if (Mqtt::commands.getCurrent() == 0xC8) { + if (!avrOn) { + Display::displayText("B Dn"); + Display::changeBrightness(false); + } else { + Display::displayText(" Dn"); + } Mqtt::commands.pop(); } } diff --git a/platformio.ini b/platformio.ini index 3382a3c..a2fdefd 100644 --- a/platformio.ini +++ b/platformio.ini @@ -14,9 +14,9 @@ board = d1_mini framework = arduino lib_deps = arduino-libraries/NTPClient@^3.1.0 - adafruit/Adafruit LED Backpack Library@^1.1.8 - adafruit/Adafruit GFX Library@^1.10.7 - adafruit/Adafruit BusIO@^1.6.0 + adafruit/Adafruit LED Backpack Library@^1.3.2 + adafruit/Adafruit GFX Library@^1.10.12 + adafruit/Adafruit BusIO@^1.9.8 jchristensen/Timezone@^1.2.4 ottowinter/AsyncMqttClient-esphome@^0.8.5 crankyoldgit/IRremoteESP8266@^2.7.18