Verbesserung der Konfiguration

Ich habe den Pull Request zum Issue 342 gemergt.
Folgende Verbesserungen/Änderungen wurde vorgenommen:

  1. Konfiguration mittels config.hpp:
    Man kann im Root-Verzeichnis des Projekts eine Datei config.hpp anlegen, die nur die #defines der Konfiguration enthält. Diese Datei ist nicht Bestandteil der TonUINO Sourcen, somit wird sie auch nicht bei einem Softwareupgrade überschrieben. Die Datei constants.hpp muss dann auch nicht mehr editiert werden. Für die Datei config.hpp gibt es zwei Beispiele/Templates: config_all_undef.hpp und config_all_tle_traeger.hpp. Die erste enthält alle möglichen #defines (alle auskommentiert) und die zweite ist schon vorkonfiguriert für ein Projekt mit der TLE Trägerplatine. Eine dieser Dateien könnte man nach config.hpp kopieren und danach nach seinen Anforderungen editieren. Das muss man nur einmal machen, beim Softwareupgrade bleibt ja alles erhalten.

  2. Kalibrierung der Spannungsmessung:
    Es gibt jetzt ein #define BAT_VOLTAGE_MEASUREMENT_CALIBRATION. Wenn damit compiliert wird, gibt es Hilfsmittel zur Kalibrierung: In der seriellen Konsole wird die Batteriespannung, die der TonUINO gerade misst, angezeigt. Mann kann nun die tatsächliche Spannung mit einem Messgerät ermitteln und in der Konsole mittels BAT <mV> eingeben. (Wenn z.B. 3.56V gemessen wird, gibt man BAT 3560 ein - Achtung Leerzeichen zwischen BAT und der Zahl!) Der TonUINO berechnet dann einen neuen Korrekturfaktor und speichert diesen in den Settings (EEPROM). In der Konsole sollte danach die tatsächlich gemessene Spannung angezeigt werden. In diesem Modus macht die Software keine Spannungsüberwachung, es kann also auch nicht passieren, das der TonUINO durch falsche Kalibrierung eine Shutdown macht. Nach erfolgreicher Kalibrierung kommentiert man das #define wieder aus und lädt die Software erneut auf den TonUINO.
    (BTW: die Spannungsmessung auf den ESP32 wurde gefixt, so dass auch hier jetzt der Korrekturfaktor ungefähr 2 ist.)

  3. Kalibrierung für den Nano:
    Da der Nano zu wenig Flash Speicher hat, kann man hier die obige Methode nicht verwenden. In diesem Fall verwendet man das #define BAT_VOLTAGE_MEASUREMENT_CALIBRATION_NANO. Dann wird nur die Spannung in der Konsole angezeigt und man kann den Korrekturfaktor in der Datei constants.hpp ändern. Das macht man solange, bis die angezeigte Spannung mit der gemessenen übereinstimmt. Zum Schluss lädt man dann wieder die Software mit auskommentierten #define.

  4. 5 Tasten mit invertierten Buttons:
    Es wurde der Wunsch geäußert, dass man auch in der 5 Tasten Konfiguration die Lautstärke Tasten mit den vor/zurück Tasten tauschen kann. Ich hatte mich bisher immer gesträubt, da in beiden Fällen (3/5 Tasten) die Defaults nicht übereinstimmen. Als Lösung habe ich die Version der Settings hochgezählt, so dass beim ersten Laden der neuen Software der Wert für invertVolumeButtons in der 5 Tasten Konfiguration auf false gesetzt wird und damit das alte Verhalten nicht geändert wird.

  5. 3x3 Button-Board und 5 Tasten:
    Es ist jetzt auch möglich das 3x3 Button-Bord zusammen mit der 5 Tasten Konfiguration zu verwenden. Es wird dazu der Pin für den special start shortcut verwendet.

  6. Korrekturen in der Datei constants.hpp
    Die Beschreibungen der Features/Konfigurationsmöglichkeiten wurden verbessert und Fehler beseitigt.

Die Änderungen waren etwas umfangreicher, so dass sich natürlich auch Fehler eingeschlichen haben können. Falls ihr also irgendetwas Merkwürdigen bemerkt, gebt bitte Bescheid, am besten mit genauer Beschreibung und mit Log. Viel Spaß beim Ausprobieren!

Da hat sich ein Fehler eingeschlichen.

Noch eine zweite Sache
Norbert wollte das auf dem Nano machen, hat aber Probleme damit. Ich habe es mit dem Nano noch nicht getestet, aber hast du da auch eine Sperre für den Shutdown im Kalibriermodus hinzugefügt? Das Fehlerbild bei Norbert deutet darauf hin, dass die Abschaltung aktiv wird und dadurch die Messung nicht möglich ist.

Ist korrigiert. Sorry.