DESIGN-Praxis / embedded-HMI Qt OPC UA – Ein Tutorial

Eintrag im BackEnd

Zur Verwendung des Backends in einer QML-Anwendung muss die Klasse im Konstruktor von OpcUaMachineBackend oder in main.cpp im Qt-Typen-System registriert werden.

Registrieren von MachineBackend

qmlRegisterType<OpcUaMachineBackend>("OpcUaMachineBackend", 1, 0,
           "OpcUaMachineBackend");

 

Anschließend kann in main.cpp ein OpcUaMachineBackend-Objekt erstellt und als Context-Property an QML übergeben werden. Innerhalb der QML-Anwendung sind nun die Properties, Signale und Slots von OpcUaMachineBackend zugänglich und können beispielsweise verwendet werden, um GUI-Elemente zu beschriften, Buttons an serverseitige Methodenaufrufe zu binden oder den Wert eines Sliders in eine Variable auf dem Server zu schreiben.

Verwendung der Properties und Slots in QML

Text {  // erzeugt ein Property-Binding. Der Text aktualisiert sich, sobald sich der Wert des Properties ändert.
    text: "<b>Tank1: </b>" + uaBackend.percentFilledTank1 + "%"
}

Button {
    text: "Start"
    onClicked: uaBackend.startPump();  // ruft den in C++ implementierten Slot OpcUaBackend::startPump() auf
}