add functionality to display text commands

This commit is contained in:
Nicu Hodos 2021-12-07 14:32:46 +01:00
parent aa1c548551
commit d0590d736b
3 changed files with 53 additions and 20 deletions

View File

@ -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() {

View File

@ -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();
}
}

View File

@ -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