Files
appRobotDriver/doc/ToDo_49_Cleanup.md

128 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 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)