Der Ordner hieß JC_Display_Firmware, bedient seit 1.6.0 aber auch das Waveshare 7inch DSI LCD (H) am ESP32-P4-Pico. Der Name führte in die Irre. - JC_Display_Firmware/ -> P4_Display_Firmware/ (samt Sketch, den Arduino gleichnamig zum Ordner verlangt) - Doku/JC-Display_UART-Protokoll.md -> Doku/P4-Display_UART-Protokoll.md, Verweise und Titel angepasst - Verweise in CLAUDE.md, README und Quelltextköpfen nachgezogen Nur Namen und Pfade, keine Logikänderung. Der Vendor-Ordner JC_Display_Firmware_7zoll/ behält seinen Namen, ebenso die Bezeichner JC_PANEL_TYPE/jc_board_bringup im Quelltext. Enthält außerdem die bereits im Arbeitsverzeichnis liegende, noch nicht committete Ergänzung des Git-Workflows in CLAUDE.md (PRs über die Gitea-API statt der hängenden tea-CLI). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y
42 lines
2.9 KiB
Markdown
42 lines
2.9 KiB
Markdown
# Projekt-Orientierung
|
||
|
||
Dieses Repository ist die Steuerung einer Espresso-/Siebträgermaschine (Dual-PID,
|
||
Wasser- und Dampfkessel getrennt geregelt). Sie besteht aus zwei getrennten Firmwares
|
||
für zwei Mikrocontroller, die per UART (230400 8N1, JSON-Zeilen) verbunden sind:
|
||
|
||
- **ESP32-S3 – Hauptsteuerung in der Maschine (Source of Truth).**
|
||
Datei: `Dual_PID_FastHeatUp.ino` (im Projekt-Root).
|
||
Regelt PID/Heizungen/SSRs, Pumpe/Ventile, Waage (HX711/Brew-by-Weight), Standby/Eco,
|
||
Profile, Nutzungsstatistik und stellt die **Web-UI** + WLAN + OTA bereit.
|
||
Änderungshistorie: `Changelog.txt` (Root), Version steht in `String version = "…"`.
|
||
|
||
- **ESP32-P4 – UART-Touch-Display (spiegelt den S3-Zustand).**
|
||
Ordner: `P4_Display_Firmware/` (Hauptsketch `P4_Display_Firmware.ino`,
|
||
UI in `ui.cpp`/`ui.h`, UART-Protokoll in `protocol_client.*`, LVGL 9.x).
|
||
Hat **kein eigenes WLAN** (der ESP32-C6-Co-Prozessor ist ungenutzt); alle Daten
|
||
kommen über UART vom S3. Eigene Version `DISPLAY_FW_VERSION` +
|
||
`P4_Display_Firmware/Changelog.txt`.
|
||
|
||
Wenn ich „S3/Controller/Maschine" sage, ist `Dual_PID_FastHeatUp.ino` gemeint;
|
||
„P4/Display" ist der Ordner `P4_Display_Firmware/`.
|
||
|
||
**Nicht anfassen:** Der Ordner `Sicherungen/` enthält nur datierte Versions-Backups
|
||
(`.ino`) — niemals dort editieren. Unter `P4_Display_Firmware/JC4880P443C_I_W/` liegen
|
||
reine Hersteller-Demos/Beispiele (Board-Support), ebenfalls nicht als Projektcode behandeln.
|
||
|
||
# Agent Instructions
|
||
|
||
- UI-Texte muessen immer in allen verfuegbaren Anwendungssprachen hinterlegt oder geaendert werden. Wenn neue UI-Strings entstehen, sind die entsprechenden Sprachdateien vollstaendig zu ergaenzen.
|
||
- Dateien duerfen generell nur ohne BOM geschrieben werden. Textdateien sind als UTF-8 ohne BOM anzulegen oder zu aktualisieren.
|
||
- Sprachstrings/Texte sind immer mit Umlauten zu schreiben
|
||
|
||
## Git-Workflow
|
||
|
||
- Host: Gitea `git.mueller.black`, Repo `thomas/Dual-PID`, User `thomas`, CLI `tea`.
|
||
- Aenderungen immer ueber Feature-Branch + Merge-Request, nie direkt auf `main` committen oder pushen.
|
||
- PR anlegen **und** mergen bevorzugt über die **Gitea-REST-API** (PowerShell `Invoke-RestMethod` auf `https://git.mueller.black/api/v1/repos/thomas/Dual-PID/pulls[/<nr>/merge]`, Token aus `C:\Users\Thomas\AppData\Local\tea\config.yml`, nur in Variable, nie ausgeben), da die `tea`-CLI gegen `git.mueller.black` oft hängt und nie zurückkehrt. `tea pr create`/`tea pr merge` nur als Ausweichweg. PRs dürfen selbstständig gemergt werden (Auto-Merge, kein grünes CI erforderlich); danach den Merge kurz melden.
|
||
- Kein Force-Push, kein History-Rewrite auf geteilten Branches.
|
||
- Commit-Identitaet bleibt `raw-designs` / `Thomas@raw-designs.de` (globale Git-Config, nicht aendern).
|
||
- Commit-Messages im Conventional-Commits-Format (feat/fix/docs/refactor/...).
|
||
- Auch Branch-Namen, Commit-Messages sowie PR-Titel und -Beschreibungen sind mit echten Umlauten zu schreiben (sofern technisch möglich).
|