ESPWortuhr / Multilayout-ESP-Wordclock

Software for an ESP8266 based word clock with support of different layouts and languages
85 stars 45 forks source link

Farbskala & Symbolfunktion #416

Closed bbroesl closed 2 days ago

bbroesl commented 1 month ago

Hallo, das ist echt ein toll programmiertes Projekt & es macht Spaß es umzusetzen! Ich habe 2 Fragen, bisher habe ich dazu noch keine Lösung finden können:

vielen Dank!

dbambus commented 1 month ago

Hallo @bbroesl

jeder Hersteller verbaut die LEDs unterschiedlich, um das zu beheben habe ich in den Einstellungen der Wordclock folgendes hinterlegt. Hier kann man die Zuordnung korrigieren, sodass dann auch das Farbrad wieder passt :-) Bildschirmfoto 2024-07-14 um 23 53 07

Zu den Symbolen.

Ich habe bisher nur das Herzsymbol fertig implementiert. Zu finden sind weitere, aber zumeist umadressierte, unter https://github.com/ESPWortuhr/Multilayout-ESP-Wordclock/blob/main/include/icons.h und aufgerufen werden sie in der Datei Wordclock.hpp ab 217ff. Hierzu muss ich allerdings sagen, dass ich gerne ein anderes Auswahlmenü für die Website plane, beschrieben in dem Issue https://github.com/ESPWortuhr/Multilayout-ESP-Wordclock/issues/297, aber es mangelt leider an der Zeit, die ganzen schönen Ideen zu implementieren :-(. Gerne aber schon mal den ersten Schritt machen, dann kann ich gerne mithelfen :-).

void ClockWork::displaySymbols(uint8_t iconNum) {
    static uint8_t count = 0;

    switch (iconNum) {
    case HEART:
        /* Heartbeat begin */
        if (count < 10) {
            G.color[Foreground].B += 0.03;
            if (G.color[Foreground].B > 1) {
                G.color[Foreground].B = 1;
            }
            count++;
        } else if (count < 20) {
            G.color[Foreground].B -= 0.03;
            if (G.color[Foreground].B <= 0) {
                G.color[Foreground].B = 0;
            }
            count++;
        } else {
            count = 0;
        }
        /* Heartbeat end */
        led.setIcon(iconNum);
        break;

    case SMILEY:
        led.setIcon(iconNum);
        break;

    case NOTE:
        led.setIcon(iconNum);
        break;

    case SNOW:
        led.setIcon(iconNum);
        break;

    default:
        break;
    }
}

Mit freundlichen Grüßen David