1 . Code-Aufteilung in thematische Projektdateien
Das Projekt wächst und wächst (Yay! ), aber gleichzeitig wird der Code immer unübersichtlicher. Ich möchte daher vorschlagen, den Code sinnvoll aufzuteilen:
Tonuino.ino //Zentraler Code, der die eigentliche TonUINO-Funktionalität ausmacht und die folgenden Dateien einbindet
Tonuino_Config.ino //Konfigurationsmöglichkeit für den normalen Anwender (ButtonMode, Lautstärke Min/Max/Start, ...)
Tonuino_Admin.ino //Alles, was das Admin-Menü betrifft
Tonuino_Modes.ino //Alle Modifier-Klassen mit ausführlichen Erläuterungen (!), was diese jeweils genau tun
Tonuino_Rfid.ino //Karten lesen und schreiben
Tonuino_Declarations.ino //Für alle structs, vars, etc.
Ein normaler Anwender sollte dann nur die (gut kommentierte) Config-Datei bearbeiten, worauf in der Readme hingewiesen wird.
Die Rfid- und Declarations-Dateien werden von den meisten nicht angerührt werden.
Funktionale Anpassungen werden dann in den restlichen Dateien durchgeführt.
2 . Unterschiedliche Bautypen
Aktuell gibt es eine Compiler-Direktive, um zwischen 3 und 5 Knöpfen zu unterscheiden (#define FIVEBUTTONS
). Ich finde das nicht so gut lesbar und außerdem gibt es noch andere Bautypen. Diese sollten in einem Enum definiert werden und anschließend im Code mit case oder if/else unterschiedlich behandelt werden.
enum ButtonMode {
THREE_BUTTONS, //Play, Next Track / Volume Up, Previous Track / Volume Down
FIVE_BUTTONS, //Play, Next Track, Previous Track, Volume Up, Volume Down
THREE_BUTTONS_REVERSE, //Play, Volume Up / Next Track, Volume Down / Previous Track
THREE_BUTTONS_WITH_POTI //Play, Next Track, Previous Track, Volume by Potentiometer
};
In der Tonuino_Config.ino kann der Anwender dann mit einer Zuweisung festlegen, wie sein TonUINO gebaut wurde.
3 . Sprache der Kommentare und Logs
Aktuell sind Kommentare und Logs teilweise auf Englisch und teilweise auf Deutsch. Ich handhabe es normalerweise so, dass sämtliche Kommentare auf Englisch sind, selbst wenn es aktuell nur ich selbst oder deutsche Programmierer lesen - man weiß ja nie, was in der Zukunft kommt.
Ich kann mir gut vorstellen, dass der TonUINO ab einem gewissen Reifegrad auch international Bekanntheit erlangt. Da sollte der Code schon von allen lesbar sein.