--- a/branches/aliazzz/mqttsparkplugb/SparkplugB/Function Blocks/FB_EoN_Node/FB_EoN_Node_1/svnobj
+++ b/branches/aliazzz/mqttsparkplugb/SparkplugB/Function Blocks/FB_EoN_Node/FB_EoN_Node_1/svnobj
@@ -1,4 +1,4 @@
-Gx_lУ$!0┘jЭou@╒и	ач▀ЦSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
-TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText// Components_Client();_SparkplugB();J// Retry to reconnect until connectedBIF NOT _Client.IsConnected() THENd	// Set connection and update lastwill (new BdSeq)	Initialise();	// Connect&	_Client.Connect();END_IFV_OnConnect( CLK := _Client.IsConnected() );(IF _OnConnect.Q THEN▓	// Call onConnect only once to send Birth certificate for MQTT EoN node.\	_MessageType := SparkplugMessageTypes.NBIRTH;	OnConnect(); END_IF;!l// Determine continuously if any messages are received"DIF _Client.MessageReceived1() THEN#─	_RecvMesg := _Client.GetMessage1( MessageTopic => _RecvTopic );$N	// Avoid copying around chunks of data%┬	onMessage( pTopic := ADR(_RecvTopic), pMessage := ADR(_RecvMesg) );&(CASE _MessageType OF'■    SparkplugMessageTypes.NBIRTH : //Birth certificate for MQTT EoN nodes.(■    SparkplugMessageTypes.NDEATH : //Death certificate for MQTT EoN nodes.)        ;*▌    SparkplugMessageTypes.DBIRTH : //Birth certificate forDevices.     +@        PublishDeviceBirth();   ,┬    SparkplugMessageTypes.DDEATH : //Death certificate for Devices. -p    SparkplugMessageTypes.NDATA  : //Node data message. .t    SparkplugMessageTypes.DDATA  : //Device data message. /v    SparkplugMessageTypes.NCMD   : //Node command message. 0         ;       1x    SparkplugMessageTypes.DCMD   : //Device command message.2"        ;        3░    SparkplugMessageTypes.STATE  ://Critical application state message  4END_CASE5// diagnose6*_Client.ClientDiag();70_Client.PublisherDiag();84_Client.Subscriber1Diag();9Interface:L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94};(*<0    Edge of Network Node=d    Binds together FB_MQTT_PubSub and FB_Sparkplug>*)?<FUNCTION_BLOCK FB_EoN_node    @VAR_INPUTAd    ServerUrl : STRING; // eg:'broker.hivemq.com';BD    ServerPort : UINT; // eg: 1883C>    KeepAlive : UINT; // eg: 60Db    GroupId : WSTRING; // eg: "SparkplugB Device"En    NodeName : WSTRING; // eg: "Edge of Network Node 1"Fd    DeviceName : WSTRING; // eg: "Emulated Device"GJ    publishPeriod : UINT; // eg: 5000H.    Username : WSTRING;I.    Password : WSTRING;JEND_VARKVARLn    _Client : FB_MQTT_PubSub; // Handles all MQTT stuffM─    _SparkplugB : FB_SparkplugB; // Handles all SparkPlugB stuffN	OЛ    _DeathPayload : FB_Payload; // Stores the most recent DeathPayload content, will update after each initialisation.P@	_LastWillTopic : WSTRING(1024);QJ    _LastWillMessage : WSTRING(1024);Rn    _LastWillQos : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;SH    _LastWillRetain : BOOL := FALSE;T*	_OnConnect : R_TRIG;U0	_OnDisConnect : R_TRIG;VT    _MessageType : SparkplugMessageTypes; W6	_RecvMesg : WSTRING(1024);X8	_RecvTopic : WSTRING(1024);Y 	_Diag : STRING;ZVAR CONSTANT[.	// UTF-8 encoding only\J	SPARKPLUG_B : WSTRING := "spBv1.0/";]@	FORWARD_SLASH : WSTRING := "/";^L	TOPIC_FILTER_POUND : WSTRING := "/#";_J	TOPIC_FILTER_PLUS : WSTRING := "/+";`T	NODE_DEATH_TOPIC : WSTRING := "/NDEATH/";aT	NODE_BIRTH_TOPIC : WSTRING := "/NBIRTH/";bX	DEVICE_DEATH_TOPIC : WSTRING := "/DDEATH/";cX	DEVICE_BIRTH_TOPIC : WSTRING := "/DBIRTH/";d8	NCMD : WSTRING := "/NCMD/";e8	DCMD : WSTRING := "/DCMD/";f"UniqueIdGeneratorg930hPOULeveliL{8e575c5b-1d37-49c6-941b-5c0ec7874787}jStandardk ChildObjectGuidsl8System.Collections.ArrayListm,AddAttributeSubsequentnboolпп-пп	E
-4пп
╜hзп-пп
╜iзп-пп
╜jзп-пп
╜kзп-пп
╜lзп-пп
╜mзп-пп
╜nзп-пп
╜oзп-пп
╜pзп-пп
╜qзп-пп
╜rзп-пп
╜sзп-пп
╜tзп-пп
╜uзп-пп
╜vзп-пп
╜wзп-пп
╜xзп-пп
╜yзп- пп
╜zзп-пп
╜{зп-!пп
╜|зп-"пп
╜}зп-#пп
╜~зп-$пп
╜зп-%пп
╜─зп-пп
╜│зп-пп
╜┌зп-пп
╜┐зп-&пп
╜└зп-'пп
╜┘зп-пп
╜├зп-(пп
╜┤зп-)пп
╜┬зп-*пп
╜┴зп-+пп
╜┼зп-,пп
╜▀зп-)пп
╜▄зп--пп
╜█зп-)пп
╜▌зп-.пп
╜▐зп-)пп
╜░зп-/пп
╜▒зп-0пп
╜▓зп-1пп
╜⌠зп-2пп
╜■зп-3пп
╜∙зп-)пп
╜√зп-4пп
╜≈зп-пп
╜≤зп-5пп
╜≥зп-6пп
╜ зп-7пп
╜mзп-8п9:п	E
+Gx_l%!0┘jЭoт╚├фи	└O╧ДSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText// Components_Client();_SparkplugB();J// Retry to reconnect until connectedBIF NOT _Client.IsConnected() THENd	// Set connection and update lastwill (new BdSeq)	Initialise();	// Connect&	_Client.Connect();END_IFV_OnConnect( CLK := _Client.IsConnected() );(IF _OnConnect.Q THEN▓	// Call onConnect only once to send Birth certificate for MQTT EoN node.\	_MessageType := SparkplugMessageTypes.NBIRTH;	OnConnect(); END_IF;!l// Determine continuously if any messages are received"DIF _Client.MessageReceived1() THEN#─	_RecvMesg := _Client.GetMessage1( MessageTopic => _RecvTopic );$N	// Avoid copying around chunks of data%┬	onMessage( pTopic := ADR(_RecvTopic), pMessage := ADR(_RecvMesg) );&(CASE _MessageType OF'■    SparkplugMessageTypes.NBIRTH : //Birth certificate for MQTT EoN nodes.(        ;)■    SparkplugMessageTypes.NDEATH : //Death certificate for MQTT EoN nodes.*▌    SparkplugMessageTypes.DBIRTH : //Birth certificate forDevices.     +@        PublishDeviceBirth();   ,┬    SparkplugMessageTypes.DDEATH : //Death certificate for Devices. -p    SparkplugMessageTypes.NDATA  : //Node data message. .t    SparkplugMessageTypes.DDATA  : //Device data message. /v    SparkplugMessageTypes.NCMD   : //Node command message. 0         ;       1x    SparkplugMessageTypes.DCMD   : //Device command message.2"        ;        3░    SparkplugMessageTypes.STATE  ://Critical application state message  4END_CASE5// diagnose6*_Client.ClientDiag();70_Client.PublisherDiag();84_Client.Subscriber1Diag();9Interface:L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94};(*<0    Edge of Network Node=d    Binds together FB_MQTT_PubSub and FB_Sparkplug>*)?<FUNCTION_BLOCK FB_EoN_node    @VAR_INPUTAd    ServerUrl : STRING; // eg:'broker.hivemq.com';BD    ServerPort : UINT; // eg: 1883C>    KeepAlive : UINT; // eg: 60Db    GroupId : WSTRING; // eg: "SparkplugB Device"En    NodeName : WSTRING; // eg: "Edge of Network Node 1"Fd    DeviceName : WSTRING; // eg: "Emulated Device"GJ    publishPeriod : UINT; // eg: 5000H.    Username : WSTRING;I.    Password : WSTRING;JEND_VARKVARLn    _Client : FB_MQTT_PubSub; // Handles all MQTT stuffM▄    _SparkplugB : FB_SparkplugBSimple; // Handles all SparkPlugB stuffN	OЛ    _DeathPayload : FB_Payload; // Stores the most recent DeathPayload content, will update after each initialisation.P@	_LastWillTopic : WSTRING(1024);QJ    _LastWillMessage : WSTRING(1024);Rn    _LastWillQos : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;SH    _LastWillRetain : BOOL := FALSE;T*	_OnConnect : R_TRIG;U0	_OnDisConnect : R_TRIG;VT    _MessageType : SparkplugMessageTypes; W6	_RecvMesg : WSTRING(1024);X8	_RecvTopic : WSTRING(1024);Y 	_Diag : STRING;ZVAR CONSTANT[.	// UTF-8 encoding only\J	SPARKPLUG_B : WSTRING := "spBv1.0/";]@	FORWARD_SLASH : WSTRING := "/";^L	TOPIC_FILTER_POUND : WSTRING := "/#";_J	TOPIC_FILTER_PLUS : WSTRING := "/+";`T	NODE_DEATH_TOPIC : WSTRING := "/NDEATH/";aT	NODE_BIRTH_TOPIC : WSTRING := "/NBIRTH/";bX	DEVICE_DEATH_TOPIC : WSTRING := "/DDEATH/";cX	DEVICE_BIRTH_TOPIC : WSTRING := "/DBIRTH/";d8	NCMD : WSTRING := "/NCMD/";e8	DCMD : WSTRING := "/DCMD/";f"UniqueIdGeneratorg930hPOULeveliL{8e575c5b-1d37-49c6-941b-5c0ec7874787}jStandardk ChildObjectGuidsl8System.Collections.ArrayListm,AddAttributeSubsequentnboolпп-пп	E
+4пп
╜hзп-пп
╜iзп-пп
╜jзп-пп
╜kзп-пп
╜lзп-пп
╜mзп-пп
╜nзп-пп
╜oзп-пп
╜pзп-пп
╜qзп-пп
╜rзп-пп
╜sзп-пп
╜tзп-пп
╜uзп-пп
╜vзп-пп
╜wзп-пп
╜xзп-пп
╜yзп- пп
╜zзп-пп
╜{зп-!пп
╜|зп-"пп
╜}зп-#пп
╜~зп-$пп
╜зп-%пп
╜─зп-пп
╜│зп-пп
╜┌зп-пп
╜┐зп-&пп
╜└зп-'пп
╜┘зп-(пп
╜├зп-)пп
╜┤зп-(пп
╜┬зп-*пп
╜┴зп-+пп
╜┼зп-,пп
╜▀зп-(пп
╜▄зп--пп
╜█зп-(пп
╜▌зп-.пп
╜▐зп-(пп
╜░зп-/пп
╜▒зп-0пп
╜▓зп-1пп
╜⌠зп-2пп
╜■зп-3пп
╜∙зп-(пп
╜√зп-4пп
╜≈зп-пп
╜≤зп-5пп
╜≥зп-6пп
╜ зп-7пп
╜mзп-8п9:п	E
 2пп
╜≈зп-;пп
╜≤зп-<пп
╜╒зп-=пп
╜≥зп->пп
╜ зп-?пп
╜⌡зп-@пп
╜°зп-Aпп
╜²зп-Bпп
╜·зп-Cпп
╜÷зп-Dпп
╜═зп-Eпп
╜║зп-Fпп
╜╒зп-Gпп
╜ёзп-Hпп
╜╓зп-Iпп
╜╔зп-Jпп
╜╕зп-Kпп
╜╖зп-Lпп
╜╗зп-Mпп
╜Ьзп-Nпп
╜╘зп-Oпп
╜Ызп-Pпп
╜Ззп-Qпп
╜Шзп-Rпп
╜Узп-Sпп
╜Эзп-Nпп
╜╙зп-Tпп
╜Нзп-Uпп
╜╚зп-Nпп
╜╠зп-Vпп
╜╡зп-Wпп
╜Ёзп-Xпп
╜Жзп-Nпп
╜Взп-Yпп
╜╢зп-Jпп
╜╣зп-Zпп
╜╤зп-[пп
╜╥зп-\пп
╜╦зп-]пп
╜═зп-Nпп
╜²зп-^пп
╜÷зп-_пп
╜·зп-Nпп
╜╧зп-`пп
╜╨зп-aпп
╜╩зп-bпп
╜╪зп-cпп
╜⌡зп-dпп
╜°зп-eпп
╜hзп-Jпf-gпhi-jklпmn╜