Apart Concept 1 Serial Controller Program with modern UI
This commit is contained in:
commit
c4bde4c18c
103 changed files with 38385 additions and 0 deletions
78
README.md
Normal file
78
README.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# Apart Concept 1 — RS232 Controller
|
||||
|
||||
Eine native Desktop-Anwendung (C++ / Qt6) zur vollständigen Steuerung des
|
||||
**Apart Concept 1** 2-Zonen-Verstärkers über die serielle RS232-Schnittstelle.
|
||||
Mit modernem GUI, **Dark/Light-Mode** und eingebautem **Simulator** zum Testen
|
||||
ohne Hardware.
|
||||
|
||||
## Funktionen
|
||||
|
||||
Alle Attribute des offiziellen Concept-1-RS232-Protokolls werden unterstützt:
|
||||
|
||||
- **Steuerung:** Standby, Quellenwahl (A–D), Musik-/Mikrofon-Lautstärke pro Zone
|
||||
(mit Mute), EQ Bass/Höhen, Auto-Loudness
|
||||
- **Konfiguration:** Multizone & Zone-Link (Stereo / 2 Zonen verknüpft / 2 Zonen
|
||||
unabhängig), Max-Musik-/Max-Mic-Pegel pro Zone, Paging-Active + Live-Paging-Status,
|
||||
Eingangs-Gain pro Quelle, editierbare Quellennamen
|
||||
- **RS-232 / System:** ECHO, LF, BS, HEADER, VALFB; Geräteinfo
|
||||
(Serial-, HW-, SW-Version); Werksreset (RESTORE)
|
||||
- **Terminal:** farbcodiertes TX/RX-Log und manuelle Rohbefehle
|
||||
|
||||
## Protokoll-Eckdaten
|
||||
|
||||
| Parameter | Wert |
|
||||
|---|---|
|
||||
| Baudrate | 19200 |
|
||||
| Datenbits | 8 |
|
||||
| Parität | keine |
|
||||
| Stopbits | 1 |
|
||||
| Flow-Control | keine |
|
||||
| Terminator | `<CR>` (0x0D) |
|
||||
|
||||
**Verkabelung (D-Sub 9):** Pin 2 = TX, Pin 3 = RX, Pin 5 = GND (Nullmodem zum PC).
|
||||
|
||||
## Abhängigkeiten
|
||||
|
||||
- CMake ≥ 3.19, C++17-Compiler
|
||||
- **Qt6 Widgets** (Pflicht) — Paket `qt6-base`
|
||||
- **Qt6 SerialPort** (optional, für echte Hardware) — Paket `qt6-serialport`
|
||||
|
||||
> Ohne `qt6-serialport` baut die App weiterhin und läuft im **Simulator-Modus**.
|
||||
> Für echte RS232-Hardware das Paket installieren:
|
||||
> ```
|
||||
> sudo pacman -S qt6-serialport
|
||||
> ```
|
||||
|
||||
## Bauen
|
||||
|
||||
```bash
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build build -j
|
||||
./build/apart-controller
|
||||
```
|
||||
|
||||
## Bedienung
|
||||
|
||||
1. Oben **Transport** wählen: *Simulator* (kein Gerät nötig) oder
|
||||
*Serielle Schnittstelle* (Port aus der Liste, ggf. mit `↻` aktualisieren).
|
||||
2. **Verbinden** klicken. Beim Verbinden wird der Gerätezustand automatisch
|
||||
eingelesen (`GET INFO`, Gains, Quellennamen, Versionen).
|
||||
3. Bedienen über die Tabs **Steuerung**, **Konfiguration**, **RS232 / System**.
|
||||
Alle Änderungen werden sofort als RS232-Befehl gesendet und der Zustand wird
|
||||
über Value-Feedback synchron gehalten.
|
||||
4. Theme über den Button rechts oben umschalten (wird gespeichert).
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
src/
|
||||
protocol/ Concept1Protocol – Befehlsaufbau & Reply-Parser (stateless)
|
||||
Concept1State – Gerätezustand
|
||||
transport/ ITransport – abstrakte Schnittstelle
|
||||
SerialTransport – echte RS232 (QtSerialPort, optional)
|
||||
SimulatorTransport– virtueller Concept 1
|
||||
core/ Concept1Controller– verbindet Transport+Protokoll, High-Level-API
|
||||
ui/ MainWindow – GUI mit Tabs
|
||||
ThemeManager – Dark/Light QSS + Persistenz
|
||||
resources/ styles/*.qss – Themes (Qt Resource System)
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue