Diff of /project/sparkplug™_mqtt_host_b9741afd/function_blocks_8ad6e219/fb_primaryhost_ec6863e3/fb_primaryhost_948b5570/948b55707cc5435c9690793c65eb192c.object [fba71e] .. [b7862c]  Maximize  Restore

Switch to side-by-side view

--- a/project/sparkplug™_mqtt_host_b9741afd/function_blocks_8ad6e219/fb_primaryhost_ec6863e3/fb_primaryhost_948b5570/948b55707cc5435c9690793c65eb192c.object
+++ b/project/sparkplug™_mqtt_host_b9741afd/function_blocks_8ad6e219/fb_primaryhost_ec6863e3/fb_primaryhost_948b5570/948b55707cc5435c9690793c65eb192c.object
@@ -1 +1 @@
-{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)948b5570-7cc5-435c-9690-793c65eb192c","ParentGuid":"(Guid)00000000-0000-0000-0000-000000000000","Name":"(string)FB_PrimaryHost","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)829a18f2-c514-4f6e-9634-1df173429203","@Value":{"@Type":"829a18f2","@Value":{"ParentObjects":{"@Type":"fa2ee218:IDictionary","@Value":[{"@Key":"(Guid)21af5390-2942-461a-bf89-951aaf6999f1","@Value":"(Guid)ec6863e3-35a1-4237-b54f-4c4d98ebfb4e"}]}}}}]},"TypeGuid":"(Guid)6f9dac99-8de1-4efc-8465-68ac443b7d08","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","string":"System.String"}},"object":{"Graph":{"@Type":"6f9dac99","@Value":{"SpecialFunc":{"@Type":"0db3d7bb:Enum","@Value":"None"},"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)1926","Tag":null,"Text":"(string)// Components"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1927","Tag":null,"Text":"(string)_MQTT.IASyncPropertyProvider( IASyncPropertyProvider );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1928","Tag":null,"Text":"(string)_MQTT.ITLSContextProvider( ITLSContextProvider );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1929","Tag":null,"Text":"(string)_MQTT();"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1930","Tag":null,"Text":"(string)Connected := (NOT _MQTT.ClientError() AND NOT _MQTT.IsConnecting() AND _MQTT.IsConnected());"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1931","Tag":null,"Text":"(string)_SparkplugB( );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1932","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1933","Tag":null,"Text":"(string)IF _MQTT.SubscriberMessageReceived() THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2128","Tag":null,"Text":"(string)    _MessageConsumer( pPrimaryHost := THIS, // Alternatively ADR( THIS^ ) "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2465","Tag":null,"Text":"(string)                      pMQTT := ADR(_MQTT), "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2466","Tag":null,"Text":"(string)                      xError => , "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2467","Tag":null,"Text":"(string)                      eError => );   "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2129","Tag":null,"Text":"(string)END_IF"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2130","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2131","Tag":null,"Text":"(string)_ExponentialBackOff( Enable := (Connect AND NOT Connected),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2132","Tag":null,"Text":"(string)                     ConnectionTime := _ConnectionTime,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2133","Tag":null,"Text":"(string)                     LockTimesArray := _LockTimesArray,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2134","Tag":null,"Text":"(string)                     Enabled => _Enabled,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2135","Tag":null,"Text":"(string)                     OutTimeRemaining => _OutTimeRemaining,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2136","Tag":null,"Text":"(string)                     LockTimeRemaining => _LockTimeRemaining );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2137","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2138","Tag":null,"Text":"(string)_StateMachine( Connect := _ExponentialBackOff.out,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2139","Tag":null,"Text":"(string)               PrimaryHostConnected := Connected,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2140","Tag":null,"Text":"(string)               pMQTT := ADR( _MQTT ),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2141","Tag":null,"Text":"(string)               pSparkplugB := ADR( _SparkplugB ),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2142","Tag":null,"Text":"(string)               pPrimaryHost := THIS,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2143","Tag":null,"Text":"(string)               SessionState => SessionState );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2144","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)133","Tag":null,"Text":"(string)Diag();"}}]}}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)2479","Tag":null,"Text":"(string)(*"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2480","Tag":null,"Text":"(string)    Primary Host Node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2481","Tag":null,"Text":"(string)    Allows you to concenrate Edge of Network Data sent by various Edges or other Sparkplug compatible nodes"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2482","Tag":null,"Text":"(string)*)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2483","Tag":null,"Text":"(string){attribute 'reflection'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2484","Tag":null,"Text":"(string){attribute 'no_assign'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2485","Tag":null,"Text":"(string)FUNCTION_BLOCK FB_PrimaryHost IMPLEMENTS IPrimaryHost"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2486","Tag":null,"Text":"(string)VAR_INPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2487","Tag":null,"Text":"(string)    ServerUrl     : STRING;          // eg:'test.mosquitto.org';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2488","Tag":null,"Text":"(string)    ServerPort    : UINT    := 1883; // eg: 1883"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2489","Tag":null,"Text":"(string)    PrimaryHostID : WSTRING := \"\";   // eg:'PrimaryHost';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2490","Tag":null,"Text":"(string)    KeepAlive     : UINT    := 60;   // eg: 60 (Value is in seconds)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2491","Tag":null,"Text":"(string)    // Persistent Session (FALSE = DEFAULT)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2492","Tag":null,"Text":"(string)    //  * The client must get all messages from a certain topic, even if it is offline. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2493","Tag":null,"Text":"(string)    //  * You want the broker to queue the messages for the client and deliver them as soon as the client is back online."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2494","Tag":null,"Text":"(string)    //  * The client has limited resources. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2495","Tag":null,"Text":"(string)    //  * You want the broker to store the subscription information of the client and restore the interrupted communication quickly."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2496","Tag":null,"Text":"(string)    //  * The client needs to reNumberOfMetricse all QoS 1 and 2 publish messages after a reconnect."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2497","Tag":null,"Text":"(string)    //  "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2498","Tag":null,"Text":"(string)    //  Clean session (TRUE)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2499","Tag":null,"Text":"(string)    //  * The client needs only to publish messages to topics, the client does not need to subscribe to topics. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2500","Tag":null,"Text":"(string)    //  * You don’t want the broker to store session information or retry transmission of QoS 1 and 2 messages."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2501","Tag":null,"Text":"(string)    //  * The client does not need to get messages that it misses offline. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2502","Tag":null,"Text":"(string)    //"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2503","Tag":null,"Text":"(string)    CleanSession : BOOL    := FALSE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2504","Tag":null,"Text":"(string)    Username     : WSTRING := \"\";           // specify a username if any (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2505","Tag":null,"Text":"(string)    Password     : WSTRING := \"\";           // specify the password for the username (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2506","Tag":null,"Text":"(string)    UseTLS       : BOOL;                    // Enables usage of the TLS encryption (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2507","Tag":null,"Text":"(string)    hCert        : SysTypes.RTS_IEC_HANDLE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2508","Tag":null,"Text":"(string)    ;                                           // Handle to the client certificate (optional) and only used if UseTLS is TRUE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2509","Tag":null,"Text":"(string)    ITLSContextProvider : MQTT.NBS.ITLSContext"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2510","Tag":null,"Text":"(string)    ; //Encapsulates all the data neccessaray to handle encrypted tcp connections"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2511","Tag":null,"Text":"(string)    //Static initialization, as shown in the following code snippet;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2512","Tag":null,"Text":"(string)    //"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2513","Tag":null,"Text":"(string)    //VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2514","Tag":null,"Text":"(string)    //    commonName : STRING := 'MyRasPi';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2515","Tag":null,"Text":"(string)    //    ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName));"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2516","Tag":null,"Text":"(string)    //    myTLSContext : NBS.TLSContext := ("}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2517","Tag":null,"Text":"(string)    //        ePurpose:=NBS.PURPOSE.CLIENT_SIDE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2518","Tag":null,"Text":"(string)    //        sUseCaseName:='NBSTest',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2519","Tag":null,"Text":"(string)    //        sTLSVersion:='1.3',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2520","Tag":null,"Text":"(string)    //        ciCertInfo:=ciCertInfo,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2521","Tag":null,"Text":"(string)    //        udiVerificationMode:=2"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2522","Tag":null,"Text":"(string)    //    );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2523","Tag":null,"Text":"(string)    //END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2524","Tag":null,"Text":"(string)    IASyncPropertyProvider : MQTT.NBS.IAsyncProperty; // Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2525","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2526","Tag":null,"Text":"(string)VAR_OUTPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2527","Tag":null,"Text":"(string)    Connected      : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2528","Tag":null,"Text":"(string)    SessionState   : SPStack.SparkplugSessionStateType;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2529","Tag":null,"Text":"(string)    xError         : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2530","Tag":null,"Text":"(string)    eError         : SPStack.ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2531","Tag":null,"Text":"(string)    itfPrimaryHost : IPrimaryHost := THIS^;    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2532","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2533","Tag":null,"Text":"(string)VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2534","Tag":null,"Text":"(string)\t_groupIDFactory     : GroupIDFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2535","Tag":null,"Text":"(string)    _groupIDPool        : LinkedList.List; // OF FB_GroupID - This is blank groupids for dynamic allocation"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2536","Tag":null,"Text":"(string)\t_EdgeFactory        : RemoteEdgeFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2537","Tag":null,"Text":"(string)    _EdgePool           : LinkedList.List; // OF FB_RemoteEdge"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2538","Tag":null,"Text":"(string)\t_DevicesFactory     : RemoteDeviceFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2539","Tag":null,"Text":"(string)    _DevicePool         : LinkedList.List; // OF FB_RemoteDevice"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2540","Tag":null,"Text":"(string)\t_MetricsFactory     : MetricFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2541","Tag":null,"Text":"(string)    _MetricPool         : LinkedList.List; // OF FB_Metric"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2542","Tag":null,"Text":"(string)    _groupIDs           : LinkedList.List; // OF FB_GroupID - This is groupIDs with names"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2543","Tag":null,"Text":"(string)    Connect             : BOOL := TRUE; // TRUE: Connects EoN using the configured settings, FALSE: Disconnects EoN from server if it was connected"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2544","Tag":null,"Text":"(string)    _cPrimaryHostID     : WSTRING; // Corrected PrimaryHostID, contains no illegal chars    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2545","Tag":null,"Text":"(string)    _Enabled            : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2546","Tag":null,"Text":"(string)    _ConnectionTime     : TIME := T#30S;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2547","Tag":null,"Text":"(string)    _LockTimesArray     : ARRAY[1..8] OF TIME := [4(TIME#30S0MS), 2(TIME#1M0S0MS), TIME#2M0S0MS, TIME#4M0S0MS]; // could be made accessible public  "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2548","Tag":null,"Text":"(string)    _OutTimeRemaining   : TIME; // Duration of Out Time Period = TRUE remaining"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2549","Tag":null,"Text":"(string)    _LockTimeRemaining  : TIME;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2550","Tag":null,"Text":"(string)    _ExponentialBackOff : SPStack.FB_ExponentialBackOffTimer; // Handles the Exponential Backoff timing"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2551","Tag":null,"Text":"(string)    _StateMachine       : FB_PrimaryHostStateMachine;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2552","Tag":null,"Text":"(string)    _TopicProvider      : FB_PrimaryHostTopicProvider;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2553","Tag":null,"Text":"(string)    _MQTT               : FB_PrimaryHostMQTT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2554","Tag":null,"Text":"(string)    _MQTT_eError        : MQTT.MQTT_ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2555","Tag":null,"Text":"(string)    _SparkplugB         : SPStack.FB_SparkplugBxCoderHandler; // Handles SparkPlugB Stuff "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2556","Tag":null,"Text":"(string)    _Blob               : ARRAY[0..65535] OF BYTE; // buffer for encoded messages"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2557","Tag":null,"Text":"(string)    _BlobSize           : UDINT; // current encoded message size"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2558","Tag":null,"Text":"(string)    _LastWillQos        : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2559","Tag":null,"Text":"(string)    _LastWillRetain     : BOOL := FALSE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2560","Tag":null,"Text":"(string)    _LastWillTopic      : WSTRING(SPStack.GC_Sparkplug.supported_string_lengths);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2561","Tag":null,"Text":"(string)    _NDEATH             : SPStack.FB_Metric := (_dataType := SPStack.MetricDataType.UInt64);    // contains the current NDEATH BDSeq"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2562","Tag":null,"Text":"(string)    _NDEATHPayload      : ARRAY[0..255] OF BYTE; // what is the maximum size of this payload?"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2563","Tag":null,"Text":"(string)    _NDEATHPayloadSize  : UDINT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2564","Tag":null,"Text":"(string)    _MessageConsumer    : FB_PrimaryHostMessageConsumer;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2565","Tag":null,"Text":"(string)    _Diag               : STRING;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2566","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2567","Tag":null,"Text":"(string)\t// IMessageSource"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2568","Tag":null,"Text":"(string)\t_IMessageSource_GroupID : LinkedList.IElement; //The itfElement that you are publishing (for FB_Edge this will be a FB_Device)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2569","Tag":null,"Text":"(string)\t_IMessageSource_publishing : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2570","Tag":null,"Text":"(string)\t_IMessageSource_published  : BOOL; // TRUE when publish is complete.  Is set false automatically in claimExclusivePublishingRights, but you can set it false yourself if you want"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2571","Tag":null,"Text":"(string)    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2572","Tag":null,"Text":"(string)\t//Publihser"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2573","Tag":null,"Text":"(string)\t_pPayload : POINTER TO SPStack.FB_Payload;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2574","Tag":null,"Text":"(string)\t_pTopic   : POINTER TO WSTRING(SPStack.GC_Sparkplug.supported_string_lengths);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2575","Tag":null,"Text":"(string)\t_xCMDBlob : ARRAY [0..MQTT.MQTTParam.g_udiMaxPayloadSize] OF BYTE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2576","Tag":null,"Text":"(string)\t_xCMDSize : DINT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2577","Tag":null,"Text":"(string)\t_xCMDEncDone  : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2578","Tag":null,"Text":"(string)\t_xCMDEncxErr  : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2579","Tag":null,"Text":"(string)\t_xCMDEncError : SPStack.ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2580","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2581","Tag":null,"Text":"(string)    {attribute 'instance-path'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2582","Tag":null,"Text":"(string)    {attribute 'noinit'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2583","Tag":null,"Text":"(string)    _POU : STRING;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)107","Tag":null,"Text":"(string)END_VAR"}}]}}}}},"UniqueIdGenerator":"(string)2583","POULevel":{"@Type":"8e575c5b:Enum","@Value":"Standard"},"ChildObjectGuids":{"@Type":"ArrayList:IList","@Value":[]},"AddAttributeSubsequent":"(bool)False"}},"TypeInfos":{"0db3d7bb":"{0db3d7bb-cde0-4416-9a7b-ce49a0124323}","3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","6f9dac99":"{6f9dac99-8de1-4efc-8465-68ac443b7d08}","8e575c5b":"{8e575c5b-1d37-49c6-941b-5c0ec7874787}","a5de0b0b":"{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","ArrayList":"System.Collections.ArrayList","bool":"System.Boolean","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","long":"System.Int64","string":"System.String"}}},"FormatVersion":"1.0"}
\ No newline at end of file
+{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)948b5570-7cc5-435c-9690-793c65eb192c","ParentGuid":"(Guid)00000000-0000-0000-0000-000000000000","Name":"(string)FB_PrimaryHost","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)829a18f2-c514-4f6e-9634-1df173429203","@Value":{"@Type":"829a18f2","@Value":{"ParentObjects":{"@Type":"fa2ee218:IDictionary","@Value":[{"@Key":"(Guid)21af5390-2942-461a-bf89-951aaf6999f1","@Value":"(Guid)ec6863e3-35a1-4237-b54f-4c4d98ebfb4e"}]}}}}]},"TypeGuid":"(Guid)6f9dac99-8de1-4efc-8465-68ac443b7d08","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","string":"System.String"}},"object":{"Graph":{"@Type":"6f9dac99","@Value":{"SpecialFunc":{"@Type":"0db3d7bb:Enum","@Value":"None"},"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)1926","Tag":null,"Text":"(string)// Components"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1927","Tag":null,"Text":"(string)_MQTT.IASyncPropertyProvider( IASyncPropertyProvider );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1928","Tag":null,"Text":"(string)_MQTT.ITLSContextProvider( ITLSContextProvider );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1929","Tag":null,"Text":"(string)_MQTT();"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1930","Tag":null,"Text":"(string)Connected := (NOT _MQTT.ClientError() AND NOT _MQTT.IsConnecting() AND _MQTT.IsConnected());"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1931","Tag":null,"Text":"(string)_SparkplugB( );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1932","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1933","Tag":null,"Text":"(string)IF _MQTT.SubscriberMessageReceived() THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2586","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2584","Tag":null,"Text":"(string)    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2585","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2128","Tag":null,"Text":"(string)    _MessageConsumer( pPrimaryHost := THIS, // Alternatively ADR( THIS^ ) "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2465","Tag":null,"Text":"(string)                      pMQTT := ADR(_MQTT), "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2466","Tag":null,"Text":"(string)                      xError => , "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2467","Tag":null,"Text":"(string)                      eError => );   "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2129","Tag":null,"Text":"(string)END_IF"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2130","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2131","Tag":null,"Text":"(string)_ExponentialBackOff( Enable := (Connect AND NOT Connected),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2132","Tag":null,"Text":"(string)                     ConnectionTime := _ConnectionTime,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2133","Tag":null,"Text":"(string)                     LockTimesArray := _LockTimesArray,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2134","Tag":null,"Text":"(string)                     Enabled => _Enabled,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2135","Tag":null,"Text":"(string)                     OutTimeRemaining => _OutTimeRemaining,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2136","Tag":null,"Text":"(string)                     LockTimeRemaining => _LockTimeRemaining );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2137","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2138","Tag":null,"Text":"(string)_StateMachine( Connect := _ExponentialBackOff.out,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2139","Tag":null,"Text":"(string)               PrimaryHostConnected := Connected,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2140","Tag":null,"Text":"(string)               pMQTT := ADR( _MQTT ),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2141","Tag":null,"Text":"(string)               pSparkplugB := ADR( _SparkplugB ),"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2142","Tag":null,"Text":"(string)               pPrimaryHost := THIS,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2143","Tag":null,"Text":"(string)               SessionState => SessionState );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2144","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)133","Tag":null,"Text":"(string)Diag();"}}]}}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)2479","Tag":null,"Text":"(string)(*"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2480","Tag":null,"Text":"(string)    Primary Host Node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2481","Tag":null,"Text":"(string)    Allows you to concenrate Edge of Network Data sent by various Edges or other Sparkplug compatible nodes"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2482","Tag":null,"Text":"(string)*)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2483","Tag":null,"Text":"(string){attribute 'reflection'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2484","Tag":null,"Text":"(string){attribute 'no_assign'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2485","Tag":null,"Text":"(string)FUNCTION_BLOCK FB_PrimaryHost IMPLEMENTS IPrimaryHost"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2486","Tag":null,"Text":"(string)VAR_INPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2487","Tag":null,"Text":"(string)    ServerUrl     : STRING;          // eg:'test.mosquitto.org';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2488","Tag":null,"Text":"(string)    ServerPort    : UINT    := 1883; // eg: 1883"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2489","Tag":null,"Text":"(string)    PrimaryHostID : WSTRING := \"\";   // eg:'PrimaryHost';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2490","Tag":null,"Text":"(string)    KeepAlive     : UINT    := 60;   // eg: 60 (Value is in seconds)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2491","Tag":null,"Text":"(string)    // Persistent Session (FALSE = DEFAULT)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2492","Tag":null,"Text":"(string)    //  * The client must get all messages from a certain topic, even if it is offline. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2493","Tag":null,"Text":"(string)    //  * You want the broker to queue the messages for the client and deliver them as soon as the client is back online."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2494","Tag":null,"Text":"(string)    //  * The client has limited resources. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2495","Tag":null,"Text":"(string)    //  * You want the broker to store the subscription information of the client and restore the interrupted communication quickly."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2496","Tag":null,"Text":"(string)    //  * The client needs to reNumberOfMetricse all QoS 1 and 2 publish messages after a reconnect."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2497","Tag":null,"Text":"(string)    //  "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2498","Tag":null,"Text":"(string)    //  Clean session (TRUE)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2499","Tag":null,"Text":"(string)    //  * The client needs only to publish messages to topics, the client does not need to subscribe to topics. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2500","Tag":null,"Text":"(string)    //  * You don’t want the broker to store session information or retry transmission of QoS 1 and 2 messages."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2501","Tag":null,"Text":"(string)    //  * The client does not need to get messages that it misses offline. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2502","Tag":null,"Text":"(string)    //"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2503","Tag":null,"Text":"(string)    CleanSession : BOOL    := FALSE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2504","Tag":null,"Text":"(string)    Username     : WSTRING := \"\";           // specify a username if any (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2505","Tag":null,"Text":"(string)    Password     : WSTRING := \"\";           // specify the password for the username (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2506","Tag":null,"Text":"(string)    UseTLS       : BOOL;                    // Enables usage of the TLS encryption (optional)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2507","Tag":null,"Text":"(string)    hCert        : SysTypes.RTS_IEC_HANDLE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2508","Tag":null,"Text":"(string)    ;                                           // Handle to the client certificate (optional) and only used if UseTLS is TRUE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2509","Tag":null,"Text":"(string)    ITLSContextProvider : MQTT.NBS.ITLSContext"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2510","Tag":null,"Text":"(string)    ; //Encapsulates all the data neccessaray to handle encrypted tcp connections"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2511","Tag":null,"Text":"(string)    //Static initialization, as shown in the following code snippet;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2512","Tag":null,"Text":"(string)    //"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2513","Tag":null,"Text":"(string)    //VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2514","Tag":null,"Text":"(string)    //    commonName : STRING := 'MyRasPi';"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2515","Tag":null,"Text":"(string)    //    ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName));"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2516","Tag":null,"Text":"(string)    //    myTLSContext : NBS.TLSContext := ("}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2517","Tag":null,"Text":"(string)    //        ePurpose:=NBS.PURPOSE.CLIENT_SIDE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2518","Tag":null,"Text":"(string)    //        sUseCaseName:='NBSTest',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2519","Tag":null,"Text":"(string)    //        sTLSVersion:='1.3',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2520","Tag":null,"Text":"(string)    //        ciCertInfo:=ciCertInfo,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2521","Tag":null,"Text":"(string)    //        udiVerificationMode:=2"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2522","Tag":null,"Text":"(string)    //    );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2523","Tag":null,"Text":"(string)    //END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2524","Tag":null,"Text":"(string)    IASyncPropertyProvider : MQTT.NBS.IAsyncProperty; // Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2525","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2526","Tag":null,"Text":"(string)VAR_OUTPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2527","Tag":null,"Text":"(string)    Connected      : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2528","Tag":null,"Text":"(string)    SessionState   : SPStack.SparkplugSessionStateType;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2529","Tag":null,"Text":"(string)    xError         : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2530","Tag":null,"Text":"(string)    eError         : SPStack.ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2531","Tag":null,"Text":"(string)    itfPrimaryHost : IPrimaryHost := THIS^;    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2532","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2533","Tag":null,"Text":"(string)VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2534","Tag":null,"Text":"(string)\t_groupIDFactory     : GroupIDFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2535","Tag":null,"Text":"(string)    _groupIDPool        : LinkedList.List; // OF FB_GroupID - This is blank groupids for dynamic allocation"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2536","Tag":null,"Text":"(string)\t_EdgeFactory        : RemoteEdgeFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2537","Tag":null,"Text":"(string)    _EdgePool           : LinkedList.List; // OF FB_RemoteEdge"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2538","Tag":null,"Text":"(string)\t_DevicesFactory     : RemoteDeviceFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2539","Tag":null,"Text":"(string)    _DevicePool         : LinkedList.List; // OF FB_RemoteDevice"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2540","Tag":null,"Text":"(string)\t_MetricsFactory     : MetricFactory;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2541","Tag":null,"Text":"(string)    _MetricPool         : LinkedList.List; // OF FB_Metric"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2542","Tag":null,"Text":"(string)    _groupIDs           : LinkedList.List; // OF FB_GroupID - This is groupIDs with names"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2543","Tag":null,"Text":"(string)    Connect             : BOOL := TRUE; // TRUE: Connects EoN using the configured settings, FALSE: Disconnects EoN from server if it was connected"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2544","Tag":null,"Text":"(string)    _cPrimaryHostID     : WSTRING; // Corrected PrimaryHostID, contains no illegal chars    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2545","Tag":null,"Text":"(string)    _Enabled            : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2546","Tag":null,"Text":"(string)    _ConnectionTime     : TIME := T#30S;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2547","Tag":null,"Text":"(string)    _LockTimesArray     : ARRAY[1..8] OF TIME := [4(TIME#30S0MS), 2(TIME#1M0S0MS), TIME#2M0S0MS, TIME#4M0S0MS]; // could be made accessible public  "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2548","Tag":null,"Text":"(string)    _OutTimeRemaining   : TIME; // Duration of Out Time Period = TRUE remaining"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2549","Tag":null,"Text":"(string)    _LockTimeRemaining  : TIME;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2550","Tag":null,"Text":"(string)    _ExponentialBackOff : SPStack.FB_ExponentialBackOffTimer; // Handles the Exponential Backoff timing"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2551","Tag":null,"Text":"(string)    _StateMachine       : FB_PrimaryHostStateMachine;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2552","Tag":null,"Text":"(string)    _TopicProvider      : FB_PrimaryHostTopicProvider;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2553","Tag":null,"Text":"(string)    _MQTT               : FB_PrimaryHostMQTT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2554","Tag":null,"Text":"(string)    _MQTT_eError        : MQTT.MQTT_ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2555","Tag":null,"Text":"(string)    _SparkplugB         : SPStack.FB_SparkplugBxCoderHandler; // Handles SparkPlugB Stuff "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2556","Tag":null,"Text":"(string)    _Blob               : ARRAY[0..65535] OF BYTE; // buffer for encoded messages"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2557","Tag":null,"Text":"(string)    _BlobSize           : UDINT; // current encoded message size"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2558","Tag":null,"Text":"(string)    _LastWillQos        : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2559","Tag":null,"Text":"(string)    _LastWillRetain     : BOOL := FALSE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2560","Tag":null,"Text":"(string)    _LastWillTopic      : WSTRING(SPStack.GC_Sparkplug.supported_string_lengths);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2561","Tag":null,"Text":"(string)    _NDEATH             : SPStack.FB_Metric := (_dataType := SPStack.MetricDataType.UInt64);    // contains the current NDEATH BDSeq"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2562","Tag":null,"Text":"(string)    _NDEATHPayload      : ARRAY[0..255] OF BYTE; // what is the maximum size of this payload?"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2563","Tag":null,"Text":"(string)    _NDEATHPayloadSize  : UDINT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2564","Tag":null,"Text":"(string)    _MessageConsumer    : FB_PrimaryHostMessageConsumer;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2565","Tag":null,"Text":"(string)    _Diag               : STRING;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2566","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2567","Tag":null,"Text":"(string)\t// IMessageSource"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2568","Tag":null,"Text":"(string)\t_IMessageSource_GroupID : LinkedList.IElement; //The itfElement that you are publishing (for FB_Edge this will be a FB_Device)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2569","Tag":null,"Text":"(string)\t_IMessageSource_publishing : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2570","Tag":null,"Text":"(string)\t_IMessageSource_published  : BOOL; // TRUE when publish is complete.  Is set false automatically in claimExclusivePublishingRights, but you can set it false yourself if you want"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2571","Tag":null,"Text":"(string)    "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2572","Tag":null,"Text":"(string)\t//Publihser"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2573","Tag":null,"Text":"(string)\t_pPayload : POINTER TO SPStack.FB_Payload;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2574","Tag":null,"Text":"(string)\t_pTopic   : POINTER TO WSTRING(SPStack.GC_Sparkplug.supported_string_lengths);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2575","Tag":null,"Text":"(string)\t_xCMDBlob : ARRAY [0..MQTT.MQTTParam.g_udiMaxPayloadSize] OF BYTE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2576","Tag":null,"Text":"(string)\t_xCMDSize : DINT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2577","Tag":null,"Text":"(string)\t_xCMDEncDone  : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2578","Tag":null,"Text":"(string)\t_xCMDEncxErr  : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2579","Tag":null,"Text":"(string)\t_xCMDEncError : SPStack.ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2580","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2581","Tag":null,"Text":"(string)    {attribute 'instance-path'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2582","Tag":null,"Text":"(string)    {attribute 'noinit'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2583","Tag":null,"Text":"(string)    _POU : STRING;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)107","Tag":null,"Text":"(string)END_VAR"}}]}}}}},"UniqueIdGenerator":"(string)2586","POULevel":{"@Type":"8e575c5b:Enum","@Value":"Standard"},"ChildObjectGuids":{"@Type":"ArrayList:IList","@Value":[]},"AddAttributeSubsequent":"(bool)False"}},"TypeInfos":{"0db3d7bb":"{0db3d7bb-cde0-4416-9a7b-ce49a0124323}","3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","6f9dac99":"{6f9dac99-8de1-4efc-8465-68ac443b7d08}","8e575c5b":"{8e575c5b-1d37-49c6-941b-5c0ec7874787}","a5de0b0b":"{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","ArrayList":"System.Collections.ArrayList","bool":"System.Boolean","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","long":"System.Int64","string":"System.String"}}},"FormatVersion":"1.0"}
\ No newline at end of file