diff --git a/include/display.h b/include/display.h index acff32e..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,19 +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[]) { - clockDisplay.print(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 7791f28..353c8c4 100644 --- a/include/ir.h +++ b/include/ir.h @@ -37,17 +37,10 @@ namespace Ir { return newCommand; } - void displayValue() { - Display::displayValue(lastCommand); - Display::tDisplay.setCallback(Display::displayColon); - Display::adjustTime(); - } - - void displayText(const char c[]) { - Display::tDisplay.disable(); + void command(const char c[]) { + avrOn = true; + Wifi::reconnect(); Display::displayText(c); - Display::adjustTime(); - Display::tDisplay.enableDelayed(1000); } void loop() { @@ -57,26 +50,41 @@ namespace Ir { case 0x9F: avrOn = false; tCheckWifi.enable(); - displayText("off"); + 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::tDisplay.setCallback(displayValue); - Display::tDisplay.forceNextIteration(); + 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(); } }