--- a/branches/FeatureBranches/refactorpayload/SparkplugB/Function Blocks/FB_SparkplugBSimple/FB_SparkplugBSimple/Encoding/AddAllMetrics/svnobj
+++ b/branches/FeatureBranches/refactorpayload/SparkplugB/Function Blocks/FB_SparkplugBSimple/FB_SparkplugBSimple/Encoding/AddAllMetrics/svnobj
@@ -1,5 +1,5 @@
-Gx_lž(!0…jüo] –¢<ÞÒSystem.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
-longTagText
6// At first we set no errorŠ// If something changes it before end of the method we yield an error@AddAllMetrics := ERROR.NO_ERROR;<IF SendList.ListSize <> 0 THENN    ItfCurElement := SendList.HeadElem;>    WHILE ItfCurElement <> 0 DOh        ElementCounter        := ElementCounter + 1;‚        HasitfSimpleSparkplug := __QUERYINTERFACE( itfCurElement,                                                   itfSimpleSparkplug );J        IF HasitfSimpleSparkplug THEN‚            HasItfSimpleValue := __QUERYINTERFACE( itfCurElement,ˆ                                                   itfSimpleValue );J            IF HasItfSimpleValue THENp                // we can safely 'plug it' in the method˜                AddAllMetrics := _Encoder.AddMetric( Timestamp := Timestamp,®                                                     SparkplugObject := itfSimpleValue,Î                                                     AllMetricsWhichWillEverReport := AllMetricsList );2                // Succes ´                WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_INFO ),!À                                msgFmtStr := 'SparkplugBSimple AddMetricList Element added: %s',"R                                strArg :=#˜                                TO_STRING( WCONCAT( itfSimpleSparkplug.Name,$†                                                    WCONCAT( " : ",%Þ                                                             TO_WSTRING( itfSimpleSparkplug.DataType ) ) ) ) );&             ELSE'v                // SimpleValue Interface is NOT implemented(¶                WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),)X                                msgFmtStr :=*ú                                'SparkplugBSimple AddMetricList Error: element does not implement SimpleValue Interface: %s',+¢                                strArg := TO_STRING( itfSimpleSparkplug.Name ) );,l                AddAllMetrics := ERROR.NotImplemented;-$            END_IF.        ELSE/|            // No SimpleSparkplug Interface is NOT implemented0®            WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),1P                            msgFmtStr :=2ú                            'SparkplugBSimple AddMetricList Error: element does not implement SimpleSparkplug Interface: %s',3Š                            strArg := '>> Some ElementID Here! <<' );4d            AddAllMetrics := ERROR.NotImplemented;5        END_IF6N        HasitfSimpleSparkplug := FALSE;7N        HasItfSimpleValue     := FALSE;8Ô        ItfCurElement         := ItfCurElement.NextElem; // If NextElem = 0 we reached the end of the list9    END_WHILE:ELSE;"    // List empty<ž    WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),=ª                    msgFmtStr := 'SparkplugBSimple AddMetricList Error, List empty.',>F                    strArg := '' );?T    AddAllMetrics := ERROR.NotImplemented;@END_IFAInterfaceBL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}C(*Dº    Add a List of metric value's by spoonfeeding each metric in the list and add it seperatlyE	Fn    Start Encoder and Send Blob immediatly after usage.G    H¤    The Method returns 'No Error' if all metrics have been processed with succes  I€    An error is thrown if at least one metric adding has failed.J˜    Check the SparkPlugLog for details on which Metric has thrown the error.K*)L8METHOD AddAllMetrics : ERRORMVAR_INPUTN6    Timestamp : T_DateTime;OEND_VARPVAR_IN_OUTQ^    // List of metrics we curently wish to sendRR    SendList : List; // OF ISimpleStorageS<    // Global All Metrics ListT^    AllMetricsList : List; // OF ISimpleStorageUVARVJ    ItfCurElement         : IElement;WR    itfSimpleValue        : ISimpleValue;XZ    itfSimpleSparkplug    : ISimpleSparkplug;YB    HasitfSimpleSparkplug : BOOL;ZB    HasItfSimpleValue     : BOOL;[    ElementCounter        : UDINT := 0; // keep track of current elementnumber which is processedÐÐÐE:ÐÐ	
+Gx_l (!0…jüo_ G‘ï¢<ÞÒSystem.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
+longTagText
6// At first we set no errorŠ// If something changes it before end of the method we yield an error@AddAllMetrics := ERROR.NO_ERROR;<IF SendList.ListSize <> 0 THENN    ItfCurElement := SendList.HeadElem;>    WHILE ItfCurElement <> 0 DOh        ElementCounter        := ElementCounter + 1;‚        HasitfSimpleSparkplug := __QUERYINTERFACE( itfCurElement,                                                   itfSimpleSparkplug );J        IF HasitfSimpleSparkplug THEN‚            HasItfSimpleValue := __QUERYINTERFACE( itfCurElement,ˆ                                                   itfSimpleValue );J            IF HasItfSimpleValue THENp                // we can safely 'plug it' in the method˜                AddAllMetrics := _Encoder.AddMetric( Timestamp := Timestamp,®                                                     SparkplugObject := itfSimpleValue,Î                                                     AllMetricsWhichWillEverReport := AllMetricsList );2                // Succes ´                WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_INFO ),!À                                msgFmtStr := 'SparkplugBSimple AddMetricList Element added: %s',"R                                strArg :=#˜                                TO_STRING( WCONCAT( itfSimpleSparkplug.Name,$†                                                    WCONCAT( " : ",%Þ                                                             TO_WSTRING( itfSimpleSparkplug.DataType ) ) ) ) );&             ELSE'v                // SimpleValue Interface is NOT implemented(¶                WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),)X                                msgFmtStr :=*ú                                'SparkplugBSimple AddMetricList Error: element does not implement SimpleValue Interface: %s',+¢                                strArg := TO_STRING( itfSimpleSparkplug.Name ) );,l                AddAllMetrics := ERROR.NotImplemented;-$            END_IF.        ELSE/|            // No SimpleSparkplug Interface is NOT implemented0®            WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),1P                            msgFmtStr :=2ú                            'SparkplugBSimple AddMetricList Error: element does not implement SimpleSparkplug Interface: %s',3Š                            strArg := '>> Some ElementID Here! <<' );4d            AddAllMetrics := ERROR.NotImplemented;5        END_IF6N        HasitfSimpleSparkplug := FALSE;7N        HasItfSimpleValue     := FALSE;8Ô        ItfCurElement         := ItfCurElement.NextElem; // If NextElem = 0 we reached the end of the list9    END_WHILE:ELSE;"    // List empty<ž    WriteDeviceLog( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_ERROR ),=ª                    msgFmtStr := 'SparkplugBSimple AddMetricList Error, List empty.',>F                    strArg := '' );?T    AddAllMetrics := ERROR.NotImplemented;@END_IFAInterfaceBL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}C(*Dº    Add a List of metric value's by spoonfeeding each metric in the list and add it seperatlyE	Fn    Start Encoder and Send Blob immediatly after usage.G    H¤    The Method returns 'No Error' if all metrics have been processed with succes  I€    An error is thrown if at least one metric adding has failed.J˜    Check the SparkPlugLog for details on which Metric has thrown the error.K*)L8METHOD AddAllMetrics : ERRORMVAR_INPUTN6    Timestamp : T_DateTime;OEND_VARPVAR_IN_OUTQ^    // List of metrics we curently wish to sendRR    SendList : List; // OF ISimpleStorageS<    // Global All Metrics ListT^    AllMetricsList : List; // OF ISimpleStorageUVARVJ    ItfCurElement         : IElement;WT    itfSimpleValue        : IRemoteMetric;XZ    itfSimpleSparkplug    : ISimpleSparkplug;YB    HasitfSimpleSparkplug : BOOL;ZB    HasItfSimpleValue     : BOOL;[    ElementCounter        : UDINT := 0; // keep track of current elementnumber which is processedÐÐÐE:ÐÐ	
 ­%ÚÐ-
ÐÐ	
 ­&ÚÐ-ÐÐ	
 ­'ÚÐ-ÐÐ