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 { namespace Display {
void displayColon(); void displayColon();
Task tDisplay(500, TASK_FOREVER, Display::displayColon, &ts, true); Task tDisplay(500, TASK_FOREVER, displayColon, &ts, true);
uint8_t brightness = BRIGHTNESS; uint8_t brightness = BRIGHTNESS;
int currentHour = -1; int currentHour = -1;
@ -55,9 +55,7 @@ namespace Display {
clockDisplay.setBrightness(brightness); clockDisplay.setBrightness(brightness);
} }
void displayColon() { void displayColon(bool colonOn) {
static bool colonOn = false;
if (colonOn) { if (colonOn) {
if (currentHour != hour()) { if (currentHour != hour()) {
currentHour = hour(); currentHour = hour();
@ -71,14 +69,33 @@ namespace Display {
} }
} }
clockDisplay.drawColon(colonOn); clockDisplay.drawColon(colonOn);
}
void displayColon() {
static bool colonOn = false;
displayColon(colonOn);
clockDisplay.writeDisplay(); clockDisplay.writeDisplay();
colonOn = !colonOn; colonOn = !colonOn;
} }
void displayValue(int value) { void displayValue(uint8_t value) {
tDisplay.disable();
displayColon(false);
clockDisplay.print(value, HEX); clockDisplay.print(value, HEX);
clockDisplay.writeDisplay(); 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() { void setup() {

View File

@ -37,38 +37,54 @@ namespace Ir {
return newCommand; return newCommand;
} }
void displayValue() { void command(const char c[]) {
Display::displayValue(lastCommand); avrOn = true;
Display::tDisplay.setCallback(Display::displayColon); Wifi::reconnect();
Display::adjustTime(); Display::displayText(c);
} }
void loop() { void loop() {
if (readCommand()) { if (readCommand()) {
Display::tDisplay.setCallback(displayValue);
Display::tDisplay.forceNextIteration();
switch (lastCommand) switch (lastCommand)
{ {
case 0x9F: case 0x9F:
avrOn = false; avrOn = false;
tCheckWifi.enable(); tCheckWifi.enable();
Display::displayText("Off");
break;
case 0x12:
command("Slp");
break; break;
case 0xC4: case 0xC4:
command("Play");
break;
case 0xD0: case 0xD0:
command("Fire");
break;
case 0xC0: case 0xC0:
avrOn = true; command("On");
Wifi::reconnect();
break; break;
default: default:
Display::displayValue(lastCommand);
break; break;
} }
} }
if (!avrOn && Mqtt::commands.getCurrent() == 0xC7) { if (Mqtt::commands.getCurrent() == 0xC7) {
if (!avrOn) {
Display::displayText("B Up");
Display::changeBrightness(true); Display::changeBrightness(true);
} else {
Display::displayText(" Up");
}
Mqtt::commands.pop(); Mqtt::commands.pop();
} }
if (!avrOn && Mqtt::commands.getCurrent() == 0xC8) { if (Mqtt::commands.getCurrent() == 0xC8) {
if (!avrOn) {
Display::displayText("B Dn");
Display::changeBrightness(false); Display::changeBrightness(false);
} else {
Display::displayText(" Dn");
}
Mqtt::commands.pop(); Mqtt::commands.pop();
} }
} }

View File

@ -14,9 +14,9 @@ board = d1_mini
framework = arduino framework = arduino
lib_deps = lib_deps =
arduino-libraries/NTPClient@^3.1.0 arduino-libraries/NTPClient@^3.1.0
adafruit/Adafruit LED Backpack Library@^1.1.8 adafruit/Adafruit LED Backpack Library@^1.3.2
adafruit/Adafruit GFX Library@^1.10.7 adafruit/Adafruit GFX Library@^1.10.12
adafruit/Adafruit BusIO@^1.6.0 adafruit/Adafruit BusIO@^1.9.8
jchristensen/Timezone@^1.2.4 jchristensen/Timezone@^1.2.4
ottowinter/AsyncMqttClient-esphome@^0.8.5 ottowinter/AsyncMqttClient-esphome@^0.8.5
crankyoldgit/IRremoteESP8266@^2.7.18 crankyoldgit/IRremoteESP8266@^2.7.18