AdvancedControllerRemoteCPP - remote control of the AdvancedController from Linux (C++ / Qt 6, RS485, INPUT port)
================================================================================================================

  build.sh              builds the project and installs binaries into bin/
                        (bin/AdvancedControllerPanel, bin/remote_test)
  run.sh                starts the virtual front panel: tabs CONTROLLER 1..3, each with its own port
                        and OPEN / CLOSE; IDENTIFY blinks the gear led of that device

  lib/                  protocol client library - integrate into your software
                          RemoteClient   (remoteclient.h)   blocking, one port
                          ControllerLink (controllerlink.h) RemoteClient in its own thread, Qt signals
  panel/                the virtual front panel application (Qt Widgets)
  tools/remote_test.cpp test tool:  --list | --scan | --detect | --monitor | -c CMD | --selftest
  docs/REMOTE_API_EN.txt / REMOTE_API_RU.txt   protocol + integration guide
  docs/PANEL_HELP.txt                            what every button does (HELP button of the panel)
  CMakeLists.txt        CMake project of lib, panel and tools

Requirements (Debian / Ubuntu / Raspberry Pi OS)
  sudo apt install build-essential cmake qt6-base-dev qt6-serialport-dev
  The user must be in the dialout group to access serial ports:
    sudo usermod -a -G dialout $USER
  (log out and log back in for group changes to take effect).

Quick start
  ./build.sh
  ./run.sh                                    or ./run.sh -p /dev/ttyUSB0 -p /dev/ttyUSB1
  ./bin/remote_test --list
  ./bin/remote_test --scan
  ./bin/remote_test -p /dev/ttyUSB0 --detect
  ./bin/remote_test -p /dev/ttyUSB0 --selftest

Manual build with CMake
  cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_BINDIR=.
  cmake --build build -j$(nproc)
  cmake --install build --prefix bin

Using the library in your software (Qt 6, CMake)
  find_package(Qt6 REQUIRED COMPONENTS Core SerialPort)
  qt_standard_project_setup()
  add_subdirectory(<path>/lib)
  target_link_libraries(<your target> PRIVATE AdvancedControllerRemote)
  Or add the four files of lib/ to your target. Examples: docs/REMOTE_API_EN.txt, section 8.

Line: 9600 8N1, RS485 two-wire, USB-RS485 adapter with automatic direction control.
Firmware: r7.2.6 or later ("PING" -> "OK PONG ADVCTRL" is the detection signature,
"ID" shows version and UID, "LEDS" gives the led states for the virtual panel).
