OnMqtt5Message
Callback-Methode
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
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. |
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. |
Ein-/Ausgänge
Name | Typ | Beschreibung |
---|---|---|
topic | STRING | Topic der eingegangenen MQTT-Nachricht |