# 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 - [x] `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)* - [x] **Erledigt:** Statt eines dauerhaften Alias wurde `robot/Robot.js` nach Abschluss von ToDo_12 Phase 0–2 **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)