Document dependency install per platform, the MSYS2 MinGW64 toolchain setup for Windows, and the cpack/NSIS installer step. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| resources | ||
| src | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
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-serialportbaut die App weiterhin und läuft im Simulator-Modus. Für echte RS232-Hardware das Paket installieren:sudo pacman -S qt6-serialport
Bauen
Linux
Abhängigkeiten installieren (Arch / pacman):
sudo pacman -S cmake gcc qt6-base qt6-serialport
Bauen und starten:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/apart-controller
Auf anderen Distributionen heißen die Pakete z. B.
qt6-base-devundqt6-serialport-dev(Debian/Ubuntu) bzw.qt6-qtbase-develundqt6-qtserialport-devel(Fedora).
Windows
Empfohlen ist die MSYS2 MinGW64-Toolchain.
-
MSYS2 installieren und die „MSYS2 MinGW64“-Shell öffnen.
-
Toolchain und Qt6 installieren:
pacman -S --needed \ mingw-w64-x86_64-toolchain \ mingw-w64-x86_64-cmake \ mingw-w64-x86_64-ninja \ mingw-w64-x86_64-qt6-base \ mingw-w64-x86_64-qt6-serialport \ mingw-w64-x86_64-nsis -
Bauen:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build ./build/apart-controller.exe
Installer erstellen
Der Installer bündelt automatisch die Anwendung, alle Qt- und MinGW-Laufzeit-DLLs
sowie die zur Laufzeit geladenen Qt-Plugins (Plattform-, Stil-, Bildformate).
Aus dem build-Verzeichnis heraus:
cd build
cpack -G NSIS
Heraus kommt Apart Concept 1 Controller-1.0.0-win64.exe — ein eigenständiger
Installer mit Start-Menü- und Desktop-Verknüpfung. Es müssen keine DLLs von
Hand kopiert werden.
Bedienung
- Oben Transport wählen: Simulator (kein Gerät nötig) oder
Serielle Schnittstelle (Port aus der Liste, ggf. mit
↻aktualisieren). - Verbinden klicken. Beim Verbinden wird der Gerätezustand automatisch
eingelesen (
GET INFO, Gains, Quellennamen, Versionen). - 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.
- 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)