MqttPublish – Odeslání zprávy protokolem MQTT

Symbol blokuPotřebná licence: MQTT
PIC

Popis funkce

Tento funkční blok je závislý na MQTT ovladači. Je doporučeno si před použitím přečíst manuál MQTTDrv ovladače [6].

Blok MqttPublish slouží pro odesílání zpráv na zařízení typu MQTT Broker prostřednictvím připojení, které zajišťuje MQTTDrv ovladač.

Prvním parametrem jménem topic se určuje do jakého tématického celku budou zprávy produkované blokem zařazeny. Protokol MQTT doručuje aplikační zprávy dle zvolené úrovně kvality služby (Quality of Service – QoS). Požadovaná úroveň lze nastavit parametrem QoS. Více informací naleznete ve specifikaci MQTT protokolu [7] (pouze anglicky).

Pokud je parametr RETAIN nahozen, odchozí pakety zprávy budou označeny příznakem RETAIN. Více informací naleznete ve specifikaci MQTT protokolu [7] (pouze anglicky).

Parametr defBuffSize může být použit pro optimalizaci práce s pamětí bloku. Hodnota parametru představuje velikost staticky alokované paměti pro vnitřní buffer odchozích zpráv. Pokud je velikost bufferu nadbytečně velká, blok si alokuje paměť, která je zbytečně blokována. Na druhou stranu pokud je hodnota parametru příliš malá, algoritmus bloku musí často dynamicky alokovat paměť, což je časově náročná operace.

Odesílaná zpráva je konstruována ze vstupního signálu value. Blok předpokládá, že vstup value bude datového typu string. Pokud je vstup jiného typu, dojde k automatické konverzi. Pro odeslání zprávy v aktuální periodě stačí nastavit vstup RUN na on. Výstup BUSY má hodnotu on pokud je blok zaneprázdněn nevyřízeným požadavkem pro odeslání zprávy nebo vyčkává na odpověď od zařízení typu Broker. Pokud je požadavek pro odeslání úspěšně vyřízen v aktuální periodě, dojde k nastavení výstupu DONE na on.

Vstupy

value

Vstupní signál

String

RUN

Povolení běhu algoritmu

Bool

Parametry

topic

MQTT topic

String

QoS

Quality of Service  1

Long (I32)

1 ....

QoS0 (Maximálně jednou)

2 ....

QoS1 (Alespoň jednou)

3 ....

QoS2 (Právě jednou)

RETAIN

Zachovat poslední zprávu  on

Bool

defBuffSize

Výchozí velikost bufferu   1 2048

Long (I32)

Výstupy

BUSY

Příznak probíhající operace

Bool

DONE

Příznak dokončení transakce

Bool

errId

Kód chyby

Error

2020 © REX Controls s.r.o., www.rexygen.com