Wer kennt es nicht? Gerade eben hat das Programm noch funktioniert. Eine kleine Änderung und schon machen Arduino, ESP, Raspberry & Co nicht mehr was sie sollen. Aber welche der Kleinigkeiten die sich geändert haben, sorgt nun dafür, dass das Programm nicht mehr wie gewünscht arbeitet? Und welche Änderungen habe ich seit der letzten „stabilen Version“ eigentlich alle gemacht?
Das ist eines der „Standardprobleme“ über die jeder früher oder später einmal stolpert, der sich mit Softwareentwicklung beschäftigt. Leider unterstützt die Arduino IDE wenig bis gar nicht bei diesem Problem. Deshalb lohnt es sich, sich einmal näher mit Werkzeugen zu beschäftigen, die dazu gemacht sind bei solchen Problemen zu unterstützen. Andererseits ist die Einarbeitung in komplett andere IDE’s vielleicht auch für viele der Kanonenschuss auf den Spatz. Es müssen also leichtgewichtige Alternativen her die zur konkreten Problemlösung taugen. Darum soll es in diesem Beitrag gehen.
Ein leichtgewichtiger aber mächtiger Kandidat ist Notepad++.
Bei Notepad++ handelt es sich um einen freien, leichtgewichtigen Texteditor der Out-of-the-Box viele Dateiformate, wie z.B. .json, .xml, .cpp, .js und viele mehr unterstützt. Die Version mit der die nachfolgenden Screenshots erstellt wurden ist V8.6 (20th-Year-Anniversary) und kann hier heruntergeladen werden: https://notepad-plus-plus.org/downloads/
Diff mit Notepad++
Für das eingangs beschriebene Problem hilft ein detaillierter, grafischer Vergleich (englisch difference, kurz diff) von Textdateien. Hat man sich die zuletzt funktionierende Datei separat als Backup gespeichert (z.B. datenlogger_backup.ino
oder datenlogger_2023_12_17.ino
) kann man diese mit einer zweiten Datei (z.B. datenlogger.ino
) vergleichen.
Die Vergleichsfunktion in Notepad++ ist nicht im Standardumfang enthalten, sondern muss über eine Erweiterung (plugin) installiert werden.
Dazu in Notepad++ -> Plugins -> Plugin-Verwaltung -> Compare auswählen und installieren:
Dateivergleich
Nachdem das Plugin installiert ist öffnen wir zunächst den „alten“ Sicherungssketch über Datei -> Öffnen bzw. alternativ über das kleine Ordnersymbol (in diesem Fall d1mini_logger_sicherung_2023_12_17.ino
, aus unserer Datenlogger Serie). Anschließend öffnen wir genauso noch unseren aktuellen Sketch (d1mini_logger.ino
) der sich minimal von unserem aktuellen Sketch unterscheidet:
Es sollte zunächst die neue Datei und dann die alte Datei geöffnet werden. Ansonsten werden die Vergleichsergebnisse „andersherum“ dargestellt. Die Reihenfolge lässt sich leicht durch Ziehen der Tabs ändern! Allerdings lässt sich diese Einstellung im Plugin auch anpassen über Plugins -> Compare -> Settings.
Wenn beide Dateien geöffnet und in die richtige Reihenfolge gebracht sind starten wir den Vergleich mit Plugins -> Compare -> Compare:
Das Ergebnis sieht dann wie folgt aus:
Die Änderungen werden grafisch dargestellt (Die Farben wurden aufgrund des Dark-Modes über die Plugin-Settings geändert).
- In Zeile 218 (gelb) wird die Änderung der Baudrate dargestellt
- In Zeile 223 (grün) wird die Ergänzung eines Serial.println angezeigt
- Die Zeilen 232, 247-250 (rot) wurden gelöscht
Falls es eine längere Datei ist kann man durch die Änderungen mit ALT+BildAb bzw. ALT+BildAuf springen.
Weitere Tools
Es gibt auch andere erwähnenswerte Tools wie z.B. WinMerge (https://winmerge.org/). Oder natürlich auch vollwertige (kostenlose) IDE’s mit vielen weiteren Funktionalitäten wie z.B. Visual Studio Code (https://code.visualstudio.com/) und Eclipse (https://eclipseide.org/).
Schreibe einen Kommentar