lvds-embedded-hmi-qt5-7.ino
Initialise une interface graphique Qt5 optimisée pour la sortie LVDS native de la carte, adaptée aux bornes interactives.
Cet exemple nécessite libqt5-dev sur Ubuntu 24.04. La carte BIWCL-PAT gère l'affichage LVDS via son header dédié (câble plat non fourni). Le code utilise QWidget pour minimiser la charge GPU sur le SoC Wildcat Lake. Compilez avec qmake ou CMake. L'exécution directe via ./hmi_app affiche l'interface en plein écran sans gestionnaire de fenêtres lourd, idéal pour l'edge computing. Vérifiez que le noyau Linux détecte bien la sortie LVDS (fbcon ou DRM).
lvds-embedded-hmi-qt5-7.ino
#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <QVBoxLayout>
#include <QFont>
#include <QPalette>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// Forcer la résolution LVDS native si détectée
QScreen *screen = QApplication::primaryScreen();
QRect screenGeometry = screen->geometry();
qDebug() << "LVDS Resolution:" << screenGeometry.size();
QMainWindow window;
window.setWindowTitle("BIWCL-PAT Industrial HMI");
window.setStyleSheet("background-color: #1e1e1e; color: #00ff00;");
QWidget *centralWidget = new QWidget();
QVBoxLayout *layout = new QVBoxLayout(centralWidget);
QLabel *statusLabel = new QLabel("SYSTEM: ONLINE\\nTEMP: 45°C\\nNET: OK");
statusLabel->setFont(QFont("Monospace", 24));
statusLabel->setAlignment(Qt::AlignCenter);
layout->addWidget(statusLabel);
window.setCentralWidget(centralWidget);
// Masquer la barre de titre pour un mode plein écran industriel
window.setWindowFlags(Qt::FramelessWindowHint);
window.showFullScreen();
return app.exec();
}