# 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` beschreiben was es nach ToDo_12 ist (Alias → `RobotBase`) - [ ] 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/Robot.js` 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)* - [ ] `robot/Robot.js` zeigt nach Phase 1 auf `Arm3SegmentLinearX` (Übergangsalias) - [ ] Nach Phase 2: auf `RobotBase` umzeigen: ```js module.exports = require('./RobotBase'); ``` - [ ] Kommentar in `robot/Robot.js` aktualisieren: Zweck des Alias erklären --- ## 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/Robot.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)