Diff of /project/sparkplug™_mqtt_edge_and_host-stack_b9741afd/function_blocks_8ad6e219/fb_sparkplugbsimple_c978db11/fb_sparkplugbsimple_b276ae31/nbirth_f76fdf4d/geteonnodebirthcertificate_708f3e62/708f3e6296604707b015c1ad9553d44a.object [9a5d66] .. [05c878]  Maximize  Restore

Switch to side-by-side view

--- a/project/sparkplug™_mqtt_edge_and_host-stack_b9741afd/function_blocks_8ad6e219/fb_sparkplugbsimple_c978db11/fb_sparkplugbsimple_b276ae31/nbirth_f76fdf4d/geteonnodebirthcertificate_708f3e62/708f3e6296604707b015c1ad9553d44a.object
+++ b/project/sparkplug™_mqtt_edge_and_host-stack_b9741afd/function_blocks_8ad6e219/fb_sparkplugbsimple_c978db11/fb_sparkplugbsimple_b276ae31/nbirth_f76fdf4d/geteonnodebirthcertificate_708f3e62/708f3e6296604707b015c1ad9553d44a.object
@@ -1 +1 @@
-{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)708f3e62-9660-4707-b015-c1ad9553d44a","ParentGuid":"(Guid)b276ae31-a54c-4d6f-8b78-cab400d0ac12","Name":"(string)GetEoNNodeBirthCertificate","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)24568a24-c491-472c-a21f-ee5d33859fab","@Value":{"@Type":"24568a24","@Value":{"MemoryReserveForOnlineChange":"(int)0","ExcludeFromBuild":"(bool)False","External":"(bool)False","EnableSystemCall":"(bool)False","CompilerDefines":"(string)","LinkAlways":"(bool)False","Undefines":{"@Type":"[string]","@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)f76fdf4d-010a-44b7-866a-82d474fcc977"}]}}}}]},"TypeGuid":"(Guid)f8a58466-d7f6-439f-bbb8-d4600e41d099","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"24568a24":"{24568a24-c491-472c-a21f-ee5d33859fab}","2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","bool":"System.Boolean","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","int":"System.Int32","string":"System.String"}},"object":{"Graph":{"@Type":"f8a58466","@Value":{"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)1045","Tag":null,"Text":"(string)SysTimeRtc.SysTimeRtcHighResGet( pTimestamp := _Timestamp );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1046","Tag":null,"Text":"(string)// incase you forgot to add bdSeq to AllMetricsList, I will add it for you"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1047","Tag":null,"Text":"(string)AllMetricsList.InsertElem( itfElement := NBIRTH,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1048","Tag":null,"Text":"(string)                           itfPrecursor := 0 );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1049","Tag":null,"Text":"(string)(* NBirth Sequence Metric => name \"bdSeq\", "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1050","Tag":null,"Text":"(string)\tMetricDataType.Int64 => value BdSeq *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1051","Tag":null,"Text":"(string)NBirth.Name     := \"bdSeq\";"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1052","Tag":null,"Text":"(string)NBirth.DataType := MetricDataType.UInt64;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1053","Tag":null,"Text":"(string)NBirth.UInt64   := LWT_BDSeq; // mandatory"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1054","Tag":null,"Text":"(string)InitEncoderErr  := _Encoder.InitializePayloadBeforeAddingMetrics( timestamp := _Timestamp );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1055","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1056","Tag":null,"Text":"(string)(* Reset the internal _seqNum to one(!), and leave the call above as is *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1057","Tag":null,"Text":"(string)_NextSeqNum := 1;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1058","Tag":null,"Text":"(string)IF InitEncoderErr = ERROR.NO_ERROR THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1059","Tag":null,"Text":"(string)    (* Now all metrics which this node will ever report on, including BdSeq"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1060","Tag":null,"Text":"(string)\t   this list should already be prepared in the main application *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1061","Tag":null,"Text":"(string)    AddAllMetricsListErr := AddAllMetrics( TimeStamp := _Timestamp,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1062","Tag":null,"Text":"(string)                                           SendList := AllMetricsList );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1064","Tag":null,"Text":"(string)    GetEoNNodeBirthCertificate := AddAllMetricsListErr;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1065","Tag":null,"Text":"(string)    IF GetEoNNodeBirthCertificate = ERROR.NO_ERROR THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1066","Tag":null,"Text":"(string)        WriteDeviceLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1067","Tag":null,"Text":"(string)                        CmpLog.LogClass.LOG_DEBUG,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1068","Tag":null,"Text":"(string)                        'SparkplugBSimple GetNBIRTHCertificate Succes',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1069","Tag":null,"Text":"(string)                        '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1070","Tag":null,"Text":"(string)    ELSE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1071","Tag":null,"Text":"(string)        WriteDeviceLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1072","Tag":null,"Text":"(string)                        CmpLog.LogClass.LOG_DEBUG,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1073","Tag":null,"Text":"(string)                        'SparkplugBSimple GetNBIRTHCertificate Failed',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1074","Tag":null,"Text":"(string)                        '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1075","Tag":null,"Text":"(string)    END_IF"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1076","Tag":null,"Text":"(string)ELSE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1077","Tag":null,"Text":"(string)    GetEoNNodeBirthCertificate := InitEncoderErr;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1078","Tag":null,"Text":"(string)    WriteDeviceLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1079","Tag":null,"Text":"(string)                    CmpLog.LogClass.LOG_ERROR,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1080","Tag":null,"Text":"(string)                    'SparkplugBSimple GetNBIRTHCertificate Failed to init',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1081","Tag":null,"Text":"(string)                    '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)342","Tag":null,"Text":"(string)END_IF"}}]}}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)914","Tag":null,"Text":"(string)(*"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)915","Tag":null,"Text":"(string)\tNBIRTH"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)916","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)917","Tag":null,"Text":"(string)\tThe NBIRTH message requires the following payload components."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)918","Tag":null,"Text":"(string)\t• The NBIRTH must include the a seq number in the payload and it must have a value of 0."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)919","Tag":null,"Text":"(string)\t• The NBIRTH must include a timestamp denoting the DateTime the message was sent from the EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)920","Tag":null,"Text":"(string)\t• The NBIRTH must include every metric the EoN node will ever report on. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)921","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)922","Tag":null,"Text":"(string)\tAt a minimum these metrics must include:"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)923","Tag":null,"Text":"(string)\t\to The metric name"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)924","Tag":null,"Text":"(string)\t\to The metric datatype"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)925","Tag":null,"Text":"(string)\t\to The current value"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)926","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)927","Tag":null,"Text":"(string)\t• If Template instances will be published by this EoN or any devices, all Template definitions must be"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)928","Tag":null,"Text":"(string)\tpublished in the NBIRTH."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)929","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)930","Tag":null,"Text":"(string)\t• A bdSeq number as a metric should be included in the payload. This should match the bdSeq number "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)931","Tag":null,"Text":"(string)    provided in the MQTT CONNECT packet’s LW&T payload (NDEATH). This allows backend applications to correlate "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)932","Tag":null,"Text":"(string)    NBIRTHs to NDEATHs. The bdSeq number should start at zero and increment by one on every new MQTT CONNECT."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)933","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)934","Tag":null,"Text":"(string)OPTIONAL: "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)935","Tag":null,"Text":"(string)\tThe NBIRTH message can also include optional ‘Node Control’ payload components. These are used by a backend"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)936","Tag":null,"Text":"(string)\tapplication to control aspects of the EoN node. The following are examples of Node Control metrics."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)937","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Reboot’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)938","Tag":null,"Text":"(string)\t\to Used by backend application(s) to reboot an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)939","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Rebirth’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)940","Tag":null,"Text":"(string)\t\to Used by backend application(s) to request a new NBIRTH and DBIRTH(s) from an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)941","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Next Server’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)942","Tag":null,"Text":"(string)\t\to Used by backend application(s) to request an EoN node to walk to the next MQTT Server in its list "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)943","Tag":null,"Text":"(string)\t\tin multi-MQTT Server environments."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)944","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Scan rate’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)945","Tag":null,"Text":"(string)\t\to Used by backed application(s) to modify a poll rate on an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)946","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)947","Tag":null,"Text":"(string)\tThe NBIRTH message can also include optional ‘Properties’ of an EoN node. The following are examples of "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)948","Tag":null,"Text":"(string)\tProperty metrics."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)949","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/Hardware Make’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)950","Tag":null,"Text":"(string)\t\to Used to transmit the hardware manufacturer of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)951","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/Hardware Model’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)952","Tag":null,"Text":"(string)\t\to Used to transmit the hardware model of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)953","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/OS’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)954","Tag":null,"Text":"(string)\t\to Used to transmit the operating system of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)955","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/OS Version’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)956","Tag":null,"Text":"(string)\t\to Used to transmit the OS version of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)957","Tag":null,"Text":"(string)*)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)958","Tag":null,"Text":"(string)METHOD GetEoNNodeBirthCertificate : ERROR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)959","Tag":null,"Text":"(string)VAR_INPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)960","Tag":null,"Text":"(string)    LWT_BDSeq : ULINT; // BDSeq of previous LWT NDEATH"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)961","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)962","Tag":null,"Text":"(string)VAR_IN_OUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)963","Tag":null,"Text":"(string)    NBIRTH         : FB_Metric; //UInt64"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)964","Tag":null,"Text":"(string)    AllMetricsList : LIST; // Contains a list of all metrics which will ever report on in this node "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)965","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)966","Tag":null,"Text":"(string)VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)967","Tag":null,"Text":"(string)    InitEncoderErr       : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)968","Tag":null,"Text":"(string)    AddSimpleMetricErr   : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)969","Tag":null,"Text":"(string)    AddAllMetricsListErr : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)26","Tag":null,"Text":"(string)END_VAR"}}]}}}}}}},"TypeInfos":{"3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","a5de0b0b":"{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","f8a58466":"{f8a58466-d7f6-439f-bbb8-d4600e41d099}","long":"System.Int64","string":"System.String"}}},"FormatVersion":"1.0"}
\ No newline at end of file
+{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)708f3e62-9660-4707-b015-c1ad9553d44a","ParentGuid":"(Guid)b276ae31-a54c-4d6f-8b78-cab400d0ac12","Name":"(string)GetEoNNodeBirthCertificate","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)24568a24-c491-472c-a21f-ee5d33859fab","@Value":{"@Type":"24568a24","@Value":{"MemoryReserveForOnlineChange":"(int)0","ExcludeFromBuild":"(bool)False","External":"(bool)False","EnableSystemCall":"(bool)False","CompilerDefines":"(string)","LinkAlways":"(bool)False","Undefines":{"@Type":"[string]","@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)f76fdf4d-010a-44b7-866a-82d474fcc977"}]}}}}]},"TypeGuid":"(Guid)f8a58466-d7f6-439f-bbb8-d4600e41d099","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"24568a24":"{24568a24-c491-472c-a21f-ee5d33859fab}","2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","bool":"System.Boolean","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","int":"System.Int32","string":"System.String"}},"object":{"Graph":{"@Type":"f8a58466","@Value":{"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)1045","Tag":null,"Text":"(string)SysTimeRtc.SysTimeRtcHighResGet( pTimestamp := _Timestamp );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1046","Tag":null,"Text":"(string)// incase you forgot to add bdSeq to AllMetricsList, I will add it for you"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1047","Tag":null,"Text":"(string)AllMetricsList.InsertElem( itfElement := NBIRTH,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1048","Tag":null,"Text":"(string)                           itfPrecursor := 0 );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1049","Tag":null,"Text":"(string)(* NBirth Sequence Metric => name \"bdSeq\", "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1050","Tag":null,"Text":"(string)\tMetricDataType.Int64 => value BdSeq *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1051","Tag":null,"Text":"(string)NBirth.Name     := \"bdSeq\";"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1052","Tag":null,"Text":"(string)NBirth.DataType := MetricDataType.UInt64;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1053","Tag":null,"Text":"(string)NBirth.UInt64   := LWT_BDSeq; // mandatory"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1054","Tag":null,"Text":"(string)InitEncoderErr  := _Encoder.InitializePayloadBeforeAddingMetrics( timestamp := _Timestamp );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1055","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1056","Tag":null,"Text":"(string)(* Reset the internal _seqNum to one(!), and leave the call above as is *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1057","Tag":null,"Text":"(string)_NextSeqNum := 1;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1058","Tag":null,"Text":"(string)IF InitEncoderErr = ERROR.NO_ERROR THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1059","Tag":null,"Text":"(string)    (* Now all metrics which this node will ever report on, including BdSeq"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1060","Tag":null,"Text":"(string)\t   this list should already be prepared in the main application *)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1061","Tag":null,"Text":"(string)    AddAllMetricsListErr := AddAllMetrics( TimeStamp := _Timestamp,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1062","Tag":null,"Text":"(string)                                           SendList := AllMetricsList );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1064","Tag":null,"Text":"(string)    GetEoNNodeBirthCertificate := AddAllMetricsListErr;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1065","Tag":null,"Text":"(string)    IF GetEoNNodeBirthCertificate = ERROR.NO_ERROR THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1066","Tag":null,"Text":"(string)        WriteStackLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1067","Tag":null,"Text":"(string)                        CmpLog.LogClass.LOG_DEBUG,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1068","Tag":null,"Text":"(string)                        'SparkplugBSimple GetNBIRTHCertificate Succes',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1069","Tag":null,"Text":"(string)                        '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1070","Tag":null,"Text":"(string)    ELSE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1071","Tag":null,"Text":"(string)        WriteStackLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1072","Tag":null,"Text":"(string)                        CmpLog.LogClass.LOG_DEBUG,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1073","Tag":null,"Text":"(string)                        'SparkplugBSimple GetNBIRTHCertificate Failed',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1074","Tag":null,"Text":"(string)                        '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1075","Tag":null,"Text":"(string)    END_IF"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1076","Tag":null,"Text":"(string)ELSE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1077","Tag":null,"Text":"(string)    GetEoNNodeBirthCertificate := InitEncoderErr;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1078","Tag":null,"Text":"(string)    WriteStackLog( GC_Sparkplug.CMP_CORE,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1079","Tag":null,"Text":"(string)                    CmpLog.LogClass.LOG_ERROR,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1080","Tag":null,"Text":"(string)                    'SparkplugBSimple GetNBIRTHCertificate Failed to init',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1081","Tag":null,"Text":"(string)                    '' );"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)342","Tag":null,"Text":"(string)END_IF"}}]}}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)914","Tag":null,"Text":"(string)(*"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)915","Tag":null,"Text":"(string)\tNBIRTH"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)916","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)917","Tag":null,"Text":"(string)\tThe NBIRTH message requires the following payload components."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)918","Tag":null,"Text":"(string)\t• The NBIRTH must include the a seq number in the payload and it must have a value of 0."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)919","Tag":null,"Text":"(string)\t• The NBIRTH must include a timestamp denoting the DateTime the message was sent from the EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)920","Tag":null,"Text":"(string)\t• The NBIRTH must include every metric the EoN node will ever report on. "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)921","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)922","Tag":null,"Text":"(string)\tAt a minimum these metrics must include:"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)923","Tag":null,"Text":"(string)\t\to The metric name"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)924","Tag":null,"Text":"(string)\t\to The metric datatype"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)925","Tag":null,"Text":"(string)\t\to The current value"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)926","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)927","Tag":null,"Text":"(string)\t• If Template instances will be published by this EoN or any devices, all Template definitions must be"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)928","Tag":null,"Text":"(string)\tpublished in the NBIRTH."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)929","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)930","Tag":null,"Text":"(string)\t• A bdSeq number as a metric should be included in the payload. This should match the bdSeq number "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)931","Tag":null,"Text":"(string)    provided in the MQTT CONNECT packet’s LW&T payload (NDEATH). This allows backend applications to correlate "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)932","Tag":null,"Text":"(string)    NBIRTHs to NDEATHs. The bdSeq number should start at zero and increment by one on every new MQTT CONNECT."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)933","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)934","Tag":null,"Text":"(string)OPTIONAL: "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)935","Tag":null,"Text":"(string)\tThe NBIRTH message can also include optional ‘Node Control’ payload components. These are used by a backend"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)936","Tag":null,"Text":"(string)\tapplication to control aspects of the EoN node. The following are examples of Node Control metrics."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)937","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Reboot’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)938","Tag":null,"Text":"(string)\t\to Used by backend application(s) to reboot an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)939","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Rebirth’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)940","Tag":null,"Text":"(string)\t\to Used by backend application(s) to request a new NBIRTH and DBIRTH(s) from an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)941","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Next Server’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)942","Tag":null,"Text":"(string)\t\to Used by backend application(s) to request an EoN node to walk to the next MQTT Server in its list "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)943","Tag":null,"Text":"(string)\t\tin multi-MQTT Server environments."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)944","Tag":null,"Text":"(string)\t• Metric name: ‘Node Control/Scan rate’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)945","Tag":null,"Text":"(string)\t\to Used by backed application(s) to modify a poll rate on an EoN node."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)946","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)947","Tag":null,"Text":"(string)\tThe NBIRTH message can also include optional ‘Properties’ of an EoN node. The following are examples of "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)948","Tag":null,"Text":"(string)\tProperty metrics."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)949","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/Hardware Make’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)950","Tag":null,"Text":"(string)\t\to Used to transmit the hardware manufacturer of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)951","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/Hardware Model’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)952","Tag":null,"Text":"(string)\t\to Used to transmit the hardware model of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)953","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/OS’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)954","Tag":null,"Text":"(string)\t\to Used to transmit the operating system of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)955","Tag":null,"Text":"(string)\t• Metric name: ‘Properties/OS Version’"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)956","Tag":null,"Text":"(string)\t\to Used to transmit the OS version of the EoN node"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)957","Tag":null,"Text":"(string)*)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)958","Tag":null,"Text":"(string)METHOD GetEoNNodeBirthCertificate : ERROR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)959","Tag":null,"Text":"(string)VAR_INPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)960","Tag":null,"Text":"(string)    LWT_BDSeq : ULINT; // BDSeq of previous LWT NDEATH"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)961","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)962","Tag":null,"Text":"(string)VAR_IN_OUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)963","Tag":null,"Text":"(string)    NBIRTH         : FB_Metric; //UInt64"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)964","Tag":null,"Text":"(string)    AllMetricsList : LIST; // Contains a list of all metrics which will ever report on in this node "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)965","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)966","Tag":null,"Text":"(string)VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)967","Tag":null,"Text":"(string)    InitEncoderErr       : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)968","Tag":null,"Text":"(string)    AddSimpleMetricErr   : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)969","Tag":null,"Text":"(string)    AddAllMetricsListErr : ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)26","Tag":null,"Text":"(string)END_VAR"}}]}}}}}}},"TypeInfos":{"3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","a5de0b0b":"{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","f8a58466":"{f8a58466-d7f6-439f-bbb8-d4600e41d099}","long":"System.Int64","string":"System.String"}}},"FormatVersion":"1.0"}
\ No newline at end of file