OnMqtt5Message

Callback-Methode

OnMqtt5Message 1:

Diese Methode darf nicht vom Anwender aufgerufen werden. Stattdessen kann vom Funktionsbaustein FB_IotMqtt5ClientBase abgeleitet und diese Methode überschrieben werden. Während dem Aufruf der Methode Execute()hat der zuständige TwinCAT-Treiber die Möglichkeit, im Fall von neuen eingehenden Nachrichten, die Methode OnMqtt5Message() aufzurufen. Bei mehreren eingehenden Nachrichten wird die Callback-Methode mehrfach, je Nachricht einmal, aufgerufen. Die Implementierung der Methode muss dies berücksichtigen.
Die Verwendung der Callback-Methode ist auch im Beispiel IotMqttSampleUsingCallback erläutert.

Syntax

METHOD OnMqtt5Message : HRESULT
VAR_IN_OUT CONSTANT
    topic    : STRING;
END_VAR
VAR_INPUT
    payload  : PVOID;
    length   : UDINT;
    qos      : TcIotMqttQos;
    pProps   : POINTER TO MqttPublishProperties;
    pReq     : POINTER TO MqttRequestProperties;
    repeated : BOOL;
END_VAR

OnMqtt5Message 2: Rückgabewert

Name

Typ

Beschreibung

OnMqtt5Message

HRESULT

Der Rückgabewert der Methode ist mit S_OK zu belegen, sofern die Nachricht angenommen wurde. Soll die Nachricht im Kontext des nächsten Execute()-Aufrufs erneut ausgegeben werden, kann der Rückgabewert mit S_FALSE belegt werden.

OnMqtt5Message 3: Eingänge

Name

Typ

Beschreibung

payload

PVOID

Adresse des Payload der eingegangenen MQTT-Nachricht

length

UDINT

Größe vom Payload in Bytes

qos

TcIotMqttQos

"Quality of Service"

pProps

POINTER TO MqttPublishProperties

MQTT Properties, die ggf. mit einer Nachricht empfangen wurden.

pReq

POINTER TO MqttRequestProperties

MQTT Request Properties, der ggf. mit einer Nachricht empfangen wurde.

repeated

BOOL

Wurde der letzte OnMqtt5Message()-Methodenaufruf vom Anwender nicht mit S_OK erwidert, wird die Nachricht im Kontext des nächsten Execute()-Aufrufs erneut ausgegeben und hierbei der Parameter repeated gesetzt. Daran ist zu erkennen, dass die Nachricht wiederholt ausgegeben wird.

OnMqtt5Message 4: Ein-/Ausgänge

Name

Typ

Beschreibung

topic

STRING

Topic der eingegangenen MQTT-Nachricht