[r815]: / branches / FeatureBranches / refactorpayload / SparkplugB / Functions / FindChanges / svnobj  Maximize  Restore  History

Download this file

36 lines (34 with data), 6.2 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
(*
    When the Element has been processed, the notifier gets acknowledged. 
    Be sure to run this code continously!
*)
{attribute 'hide'}
FUNCTION FindChanges : ERROR
VAR_IN_OUT
    ChangeDetected  : BOOL;  // At least one Signal change has been detected;
    ErrorDetected   : BOOL;  // Some Error Occured
FindChanges     := ERROR.NO_ERROR;
ErrorDetected   := FALSE;
ChangeDetected  := FALSE;
NumberOfChanges := 0;
SysTimeRtc.SysTimeRtcHighResGet( pTimestamp := Timestamp );
//Loop through the metrics
AllMetricsList.ItterateRestart( HasNext => HasNext );
WHILE HasNext DO
	AllMetricsList.ItterateNext( itfElement => itfElement,
						   HasNext => HasNext );
	IF __QUERYINTERFACE( itfElement,
						 _Metric ) THEN
		// Loop is called for every metric
		IF _Metric.Notify THEN
															   AllMetricsWhichWillEverReport := AllMetricsList );
	
			IF AddMetricError <> ERROR.NO_ERROR THEN
				FindChanges   := AddMetricError;
				ErrorDetected := TRUE;
			END_IF
			NumberOfChanges := NumberOfChanges + 1;
			_Metric.AcknowledgeNotify();
		END_IF
	END_IF
END_WHILE
ChangeDetected := (NumberOfChanges <> 0);