docs: Mermaid-Diagramme zur Systemanzeige in Kapitel 07
Sequenzdiagramm des Abfragewegs (GUI-Poll, /api/sysstat, sysstat.js, /proc und statfs, 60-s-Puffer des recordings-Scans, 2-s-Ticker fuer die CPU- Differenz) und Flussdiagramm der beiden Rechenwege (Ring = Aufnahmen durch frei plus Aufnahmen; Ventilator = Drehstufe und Ampel).
This commit is contained in:
@@ -135,6 +135,55 @@ Einheit allein in die nächste Zeile und sah aus wie ein fehlender Wert.
|
||||
- Farbe: grün < 75 %, gelb ab 75 %, rot ab 90 %; beim Ventilator zählt der schlimmste Wert aus CPU, RAM
|
||||
und Temperatur (Temperatur skaliert 45 °C → 0 %, 90 °C → 100 %).
|
||||
|
||||
### Ablauf einer Abfrage
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant GUI as Browser (main.js)
|
||||
participant API as server.js
|
||||
participant SYS as sysstat.js
|
||||
participant K as Kernel (/proc, statfs)
|
||||
participant FS as recordings/
|
||||
|
||||
Note over SYS: eigener Ticker alle 2 s:<br/>/proc/stat lesen, CPU-% aus der Differenz
|
||||
loop alle 5 s (im Hintergrund-Tab ausgesetzt)
|
||||
GUI->>API: GET /api/sysstat
|
||||
API->>SYS: status()
|
||||
SYS->>K: statfs(recordings/) · /proc/meminfo · thermal_zone*/temp
|
||||
K-->>SYS: frei/gesamt · MemAvailable · °C je CPU-Zone
|
||||
alt Scan älter als 60 s
|
||||
SYS->>FS: readdir rekursiv + stat (nur Audio-Endungen)
|
||||
FS-->>SYS: Bytes + Dateizahl → Puffer
|
||||
else Puffer frisch
|
||||
Note over SYS: Puffer wiederverwenden,<br/>Scan höchstens 1× pro Minute
|
||||
end
|
||||
SYS-->>API: {cpu, ram, disk, temp}
|
||||
API-->>GUI: JSON
|
||||
GUI->>GUI: paintSysmon(): Ring, Balken, Zahlen,<br/>--spin (Stufe), Ampelfarbe
|
||||
end
|
||||
Note over GUI: nach jedem render() sofort<br/>paintSysmon(sysmon.last) — die Kopfzeile<br/>wird komplett neu geschrieben
|
||||
```
|
||||
|
||||
Rechenwege der beiden Anzeigen:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Ring["Ring — Aufnahme-Vorrat"]
|
||||
F["freier Platz<br/>statfs.bavail"] --> B(("Vorrat<br/>= frei + Aufnahmen"))
|
||||
R["Aufnahmen<br/>Summe aller mp3 + wav in recordings/<br/>(inkl. Papierkorb)"] --> B
|
||||
R --> P["Prozent = Aufnahmen / Vorrat"]
|
||||
B --> P
|
||||
end
|
||||
subgraph Fan["Ventilator — Last"]
|
||||
C["CPU %<br/>/proc/stat-Differenz"] --> S["spinSeconds()<br/>7 s … 0,35 s in Stufen"]
|
||||
C --> W{"schlimmster Wert"}
|
||||
M["RAM %<br/>MemAvailable"] --> W
|
||||
T["CPU-Temperatur<br/>soc/bigcore/littlecore"] --> W
|
||||
W --> A["Ampel grün / gelb / rot"]
|
||||
end
|
||||
```
|
||||
|
||||
## Deploy-Ablauf (von Windows aus)
|
||||
|
||||
```mermaid
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
Chronik der Entwicklungsschritte. **Regel: jede zukünftige Änderung bekommt hier einen Eintrag** (Datum,
|
||||
Was, Warum, betroffene Dateien/Backups).
|
||||
|
||||
## 2026-08-17 (Nachtrag 6) — Diagramme zur Systemanzeige
|
||||
|
||||
Kapitel 07 nachgerüstet: ein Sequenzdiagramm für den Abfrageweg (GUI-Poll → `/api/sysstat` →
|
||||
`sysstat.js` → `/proc`/`statfs`, dazu der 60-s-Puffer des `recordings/`-Scans und der 2-s-Ticker für
|
||||
die CPU-Differenz) und ein Flussdiagramm für die beiden Rechenwege (Ring = Aufnahmen / (frei +
|
||||
Aufnahmen); Ventilator = Drehstufe aus CPU-%, Ampel aus dem schlimmsten Wert von CPU, RAM,
|
||||
CPU-Temperatur). Damit erfüllt die Änderung die Hausregel „neue Abläufe als Mermaid-Diagramm“.
|
||||
|
||||
## 2026-08-17 (Nachtrag 5) — „CPU-Temperatur“ statt Zonenname in Klammern
|
||||
|
||||
Die Zeile heißt jetzt „CPU-Temperatur“ und zeigt nur noch `46,2 °C`; der Zonenname in Klammern
|
||||
|
||||
Reference in New Issue
Block a user