apart-controller/README.md

2.8 KiB
Raw Blame History

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 (AD), 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

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)