Files
appRobotDriver/doc/ToDo_49_Cleanup.md
2026-06-09 12:05:18 +02:00

127 lines
4.9 KiB
Markdown

# 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)