Abbiamo quattro eventi, tutti generati dal client MQTT, e tutte le rispettive classi derivano da una classe comune, della libreria che ho utilizzato. Alcuni portano con sé informazione extra, altri no.
Abbiamo gli otto stati, incluso lo pseudo-stato AnyState, e tutte le relative classi derivano da una classe comune, della libreria che ho utilizzato.
Attraverso la classe progenitrice EuNode, ogni stato ha un riferimento alla macchina a stati di cui fa parte, in modo da poterla utilizzare come delegato, sia al fine di accedere alle variabili di stato extra, sia per invocare le funzioni che eseguono le azioni.
La macchina a stati contiene anche, e utilizza, un client MQTT ad hoc, che le permette di pubblicare messaggi, e gestire i messaggi in arrivo, tradotti nei corrispondenti eventi. Questo client utilizza a sua volta un componente della libreria MQTTNet, pubblicamente disponibile.
Giorgio Barchiesi
Albo degli Ingegneri Sez. A, N. 4027 della Prov. di Trento
P.IVA 02370260222, C.F. BRC GRG 58L26 C794R
Copyright © 2015-2024 Giorgio Barchiesi - Tutti i diritti riservati