Files
appRobotDriver/doc/ToDo_49_Cleanup.md

5.1 KiB
Raw Permalink Blame History

ToDo 49 — Cleanup vor Auslieferung

Dieser Cleanup wird als letzter Schritt vor einer Auslieferung durchgeführt, nachdem die funktionalen ToDos abgeschlossen sind. Einige Punkte sind bereits jetzt erledigbar, andere hängen von vorgelagerten ToDos ab.


1. ToDo-Dateien aufräumen

Vollständig erledigte ToDos löschen (alle Punkte [x], keine offenen):

  • doc/ToDo_1_Parsing.md — vollständig erledigt
  • doc/ToDo_2_Anbindung.md — vollständig erledigt
  • doc/ToDo_5_API.md — vollständig erledigt
  • doc/ToDo_8_Bugs.md — vollständig erledigt (nutzt -Marker statt [x])

Teilweise erledigte ToDos bereinigen:

  • doc/ToDo_7_Tests.md — erledigte Punkte entfernen, nur offene behalten

README.md-Tabelle anpassen:

  • Zeilen der gelöschten ToDo-Dateien aus der Tabelle entfernen
  • Prioritätsreihenfolge im README auf den aktuellen Stand bringen

2. README.md Review

  • Alle Abschnitte auf Aktualität prüfen — insbesondere nach den Refactorings aus ToDo_1, ToDo_2, ToDo_5
  • robot/Robot.js ist nach ToDo_12 entfernt; README beschreibt jetzt RobotBase.js + kinematics/Arm3SegmentLinearX.js + KinematicsFactory.js
  • Env-Variablen-Liste: ROBOT_KINEMATICS und ROBOT_KINEMATICS_PARAMS ergänzen (nach ToDo_12 Phase 2)
  • Tippfehler GRBL_ELLBOW_IP prüfen: ist das Legacy-Absicht oder korrigierbar?
  • Laufzeitvoraussetzungen: logs/-Verzeichnis-Hinweis prüfen (nach ToDo_3 evtl. obsolet)
  • Einmal vollständig lesen und gegen den tatsächlichen Code abgleichen

3. Toter Code entfernen

Folgende Felder in robot/RobotBase.js (seit ToDo_12 dorthin gewandert) werden nirgendwo im Projekt gelesen oder gesetzt (Grep über alle .js ohne node_modules ergibt nur die Deklaration selbst):

  • this.speedX, this.speedY, this.speedZ — nie referenziert
  • this.doAnimate — nie referenziert
  • this.showFunctions — nie referenziert
  • this.lastCommandSend / this.oldCommandTime — gesetzt, nie gelesen
  • this.savedPoints, this.atPointNr — gesetzt, nie gelesen

Folgende Methoden in robot/GCode.js werden nie aufgerufen:

  • containsMCode() — hat einen Test, wird im Produktivcode aber nie aufgerufen; entweder integrieren oder entfernen (inklusive Test)
  • receiveMCode() — nie aufgerufen, kann entfernt werden

4. robot/Robot.js Alias aufräumen (abhängig von ToDo_12 Phase 2)

  • Erledigt: Statt eines dauerhaften Alias wurde robot/Robot.js nach Abschluss von ToDo_12 Phase 02 vollständig entfernt. Alle Tests importieren jetzt direkt robot/kinematics/Arm3SegmentLinearX bzw. robot/RobotBase. Produktivcode geht ohnehin über robot/KinematicsFactory.js. Damit entfällt der Übergangsalias komplett.

5. Sicherheit: Zertifikate und private Schlüssel aus Git entfernen

Die folgenden Dateien liegen aktuell im Repository und sollten dort nicht sein:

  • https/localhost.key — privater Schlüssel
  • https/localhost2.key — privater Schlüssel
  • https/key.pem — privater Schlüssel
  • https/localhost.pem — Zertifikat
  • https/cert_abcd.pfx — enthält privaten Schlüssel
  • Diese Dateien aus Git-History entfernen (git filter-repo oder BFG)
  • .gitignore um https/*.key, https/*.pem, https/*.pfx, https/*.cer ergänzen
  • Eine https/README.md oder https/EXAMPLE.md anlegen mit Anleitung zur Zertifikatserzeugung (z. B. openssl self-signed für lokale Entwicklung)

6. GCodeFiles/ aus Git entfernen

GCodeFiles/ enthält Nutzungsprotokolle aus 2025 — das ist Laufzeitdata, kein Quellcode.

  • .gitignore um GCodeFiles/*.gcode ergänzen (oder GCodeFiles/log*.gcode)
  • Eine Beispieldatei GCodeFiles/example.gcode ins Repository nehmen
  • Bestehende Log-Dateien aus Git-History entfernen (optional, je nach Sensitivität)

7. Naming-Inkonsistenz: WSSenderGrbl.js

  • WSSenderGrbl.js exportiert eine Klasse namens TelnetSenderGRBL — das ist der alte Name aus der Telnet-Ära
  • Klasse in WSSenderGrbl.js umbenennen auf WSSenderGrbl
  • Alle Importe prüfen (aktuell: startRobot.js, Tests)

8. Hilfsdateien prüfen

  • install.bat / runTest.bat — aktuell und korrekt? Oder löschen?
  • sendTest_Client.py — gepflegt? Ins README erwähnen oder löschen
  • https/info.txt — Inhalt prüfen; falls nur interne Notizen: löschen
  • robot/fluidnc/FluidNCClient.js — wird von WSSenderGrbl.js nicht mehr verwendet; entweder löschen oder als "experimentell/archiviert" kennzeichnen

9. Console.log-Hygiene

Der Code hat viele console.log-Aufrufe — einige sind wichtig, andere Debugging-Reste.

  • robot/RobotBase.js sendCommand(): ausführliches Log bei jedem Befehl — für Produktion eher auf debug-Level oder hinter eine verbose-Flag
  • robot/GCode.js: Motor-Position-Log in receiveMCode (ohnehin toter Code)
  • Sinnvolle Logs behalten (Verbindungsaufbau, Fehler, Start-Info)
  • Kandidat für späteren Ausbau: leichtgewichtiger Logger statt nacktem console.log (z. B. Log-Level via Env-Variable)