Diff of /branches/FeatureBranches/PrimaryHost/SparkplugB/Function Blocks/FB_RemoteDevice/FB_RemoteDevice/ProcessDBIRTH/svnobj [000000] .. [r808]  Maximize  Restore

Switch to unified view

a b/branches/FeatureBranches/PrimaryHost/SparkplugB/Function Blocks/FB_RemoteDevice/FB_RemoteDevice/ProcessDBIRTH/svnobj
1
Gx_l9:!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
2
longTagText
B// 1. pMessage is already decoded¦// 2. For each metric already in the edge try to find it in the xBIRTH.MetricList, ^      // Not Found? => set to Status.NotBirthed.      // Found? => nothingj_Metrics.ItterateRestart(HasNext => existingHasNext);0WHILE existingHasNext DOª  _Metrics.ItterateNext(itfElement => itfExistingElement, HasNext => existingHasNext);< MetricFoundInxBIRTH := FALSE;€  IF __QUERYINTERFACE(itfExistingElement, itfExistingMetric) THENV      pMessage.GetFirstMetric( name => newName,N                         MetricValid => newMetricValid,@                         HasNext => newHasNext);ž       MetricFoundInxBIRTH := newMetricValid AND (newName = itfExistingMetric.Name);      b    WHILE newHasNext AND NOT MetricFoundInxBIRTH DOX         pMessage.GetNextMetric(  name => newName,P                            MetricValid => newMetricValid,B                            HasNext => newHasNext);            MetricFoundInxBIRTH := newMetricValid AND (newName = itfExistingMetric.Name);!      END_WHILE"   END_IF#@ IF NOT MetricFoundInxBIRTH THEN$l      itfExistingMetric.Status := MetricStatus.NotBirthed;%END_WHILE&~// 3. For each metric in the xBIRTH, try to find it in the edge'H  // Found? ==> metric.ProcessxBIRTH(n  // NotFound ==> getblank Metric, metric.ProcessxBIRTH)RpMessage.GetFirstMetric( name => newName,*\                        datatype => newdatatype,+B                   timestamp => newtimestamp,,@                   valueString => newString,-<                 valueLreal => newLreal,.8                 valueReal => newreal,/@                 valueVarInt => newVarInt,0J                 MetricValid => newMetricValid,1<                   HasNext => newHasNext);22                         3ZTHIS^.GetMetricbyName( MetricName:= newName, 4f                       Metric=> itfExistingMetric, 5N                       GetTimestamp=> ,6f                       xError=> MetricNotExisting, 7D                       eError=> );8.                       92IF MetricNotExisting THEN:2   // get one and update it;j IF __QUERYPOINTER(itfPrimaryHost, pPrimaryHost) THEN<Ò       AllocdMetric REF= pPrimaryHost^.allocMetric(itfMetricOwner := THIS^.itfRemoteDevice, eError => eError);=B      IF eError = ERROR.NO_ERROR THEN>X            itfAllocdMetric := AllocdMetric;?\            Update( Metric := itfAllocdMetric,@H                    Name := newName,AX                    DataType := newdatatype,Bj                    Status := MetricStatus.ONLINE_OK,C\                    Timestamp := newtimestamp,DR                    String_ := newString,EP                    LReal_ :=  newLreal,FJ                    Real_ := newreal,GV                    VarInt :=  newVarInt );H(                    I    END_IFJELSEKJ   // update one as it allready excistsLP    Update( Metric := itfExistingMetric,M8            Name := newName,NH            DataType := newdatatype,OZ            Status := MetricStatus.ONLINE_OK,PL            Timestamp := newtimestamp,QB            String_ := newString,R@            LReal_ :=  newLreal,S:            Real_ := newreal,TF            VarInt :=  newVarInt );UEND_IFV^WHILE newHasNext AND NOT MetricFoundInxBIRTH DOWR pMessage.GetNextMetric( name => newName,Xh                            datatype => newdatatype,Yl                            timestamp => newtimestamp,Zj                            valueString => newString,[f                            valueLreal => newLreal,\b                            valueReal => newreal,]j                            valueVarInt => newVarInt,^t                            MetricValid => newMetricValid,_f                            HasNext => newHasNext);`8                            a^ THIS^.GetMetricbyName( MetricName := newName, bp                           Metric => itfExistingMetric, cV                           GetTimestamp=> ,d`                     xError=> MetricNotExisting, eError=> );e6                           f4 IF MetricNotExisting THENg4      // get one and update ithl    IF __QUERYPOINTER(itfPrimaryHost, pPrimaryHost) THENiÔ          AllocdMetric REF= pPrimaryHost^.allocMetric(itfMetricOwner := THIS^.itfRemoteDevice, eError => eError);jD         IF eError = ERROR.NO_ERROR THENk         END_IFl
3
    ELSEm    //update onenX        Update( Metric := itfExistingMetric,o@                Name := newName,pP                DataType := newdatatype,qb                Status := MetricStatus.ONLINE_OK,rT                Timestamp := newtimestamp,sJ                String_ := newString,tH                LReal_ :=  newLreal,uB                Real_ := newreal,vN                VarInt :=  newVarInt );w                 xInterfaceyL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}z(METHOD ProcessDBIRTH{VAR_INPUT|D    itfPrimaryHost : IPrimaryHost;}END_VAR~VAR_IN_OUT‚    pMessage : FB_PayloadSimpleDecoder; // already decoded please€VAR_OUTPUT$    xError : BOOL;‚&    eError : Error;ƒVAR„8   existingHasNext     : BOOL;…@  itfExistingElement  : IElement;†J  itfExistingMetric   : IRemoteMetric;‡8    MetricNotExisting   : BOOL;ˆ  ‰8    newHasNext          : BOOL;Š8  newMetricValid      : BOOL;‹8  MetricFoundInxBIRTH : BOOL;Œ>  newName             : WSTRING;L    newdatatype         : MetricDataType;ŽD  newtimestamp        : T_DateTime;Œ newString           : WSTRING(gc_sparkplug.supported_string_lengths);:  newLreal            : LREAL;‘8    newreal             : REAL;’J  newVarInt           : DecodedVarInt;“b    pPrimaryHost        : POINTER TO FB_PrimaryHost;”h    AllocdMetric        : REFERENCE TO FB_RemoteMetric;•d  pExistingMetric     : POINTER TO FB_RemoteMetric;–    —P    itfAllocdMetric     : IRemoteMetric;ÐÐÐE~ÐÐ  
4
­YÚÐ-
ÐÐ  
5
­ZÚÐ-ÐÐ  
6
­[ÚÐ-ÐÐ  
7
­\ÚÐ-ÐÐ  
8
­]ÚÐ-ÐÐ  
9
­^ÚÐ-ÐÐ  
10
­_ÚÐ-ÐÐ  
11
­`ÚÐ-ÐÐ  
12
­aÚÐ-ÐÐ  
13
­bÚÐ-ÐÐ  
14
­cÚÐ-ÐÐ  
15
­dÚÐ-ÐÐ  
16
­eÚÐ-ÐÐ  
17
­fÚÐ-ÐÐ  
18
­gÚÐ-ÐÐ  
19
­hÚÐ-ÐÐ  
20
­iÚÐ-ÐÐ  
21
­jÚÐ-ÐÐ  
22
­kÚÐ-ÐÐ  
23
­lÚÐ- ÐÐ  
24
­mÚÐ-!ÐÐ  
25
­nÚÐ-"ÐÐ  
26
­oÚÐ-#ÐÐ  
27
­pÚÐ-$ÐÐ  
28
­qÚÐ-"ÐÐ  
29
­rÚÐ-%ÐÐ  
30
­sÚÐ-ÐÐ  
31
­tÚÐ-&ÐÐ  
32
­uÚÐ-'ÐÐ  
33
­vÚÐ-(ÐÐ  
34
­xÚÐ-)ÐÐ  
35
­yÚÐ-*ÐÐ  
36
­zÚÐ-+ÐÐ  
37
­{ÚÐ-,ÐÐ  
38
­|ÚÐ--ÐÐ  
39
­}ÚÐ-.ÐÐ  
40
­~ÚÐ-/ÐÐ  
41
­ÚÐ-0ÐÐ  
42
­€ÚÐ-1ÐÐ  
43
­ÚÐ-2ÐÐ  
44
­‚ÚÐ-3ÐÐ  
45
­`ÚÐ-4ÐÐ  
46
­aÚÐ-5ÐÐ  
47
­ƒÚÐ-6ÐÐ  
48
­bÚÐ-7ÐÐ  
49
­„ÚÐ-8ÐÐ  
50
­…ÚÐ-9ÐÐ  
51
­—ÚÐ-:ÐÐ  
52
­˜ÚÐ-;ÐÐ  
53
­™ÚÐ-<ÐÐ  
54
­šÚÐ-=ÐÐ  
55
­XÚÐ->ÐÐ  
56
­%ÚÐ-?ÐÐ  
57
­-ÚÐ-@ÐÐ  
58
­.ÚÐ-AÐÐ  
59
­/ÚÐ-BÐÐ  
60
­0ÚÐ-CÐÐ  
61
­1ÚÐ-DÐÐ  
62
­2ÚÐ-EÐÐ  
63
­3ÚÐ-FÐÐ  
64
­,ÚÐ-GÐÐ  
65
­gÚÐ-HÐÐ  
66
­¶ÚÐ-IÐÐ  
67
­·ÚÐ-"ÐÐ  
68
­¸ÚÐ-JÐÐ  
69
­¹ÚÐ-KÐÐ  
70
­8ÚÐ-LÐÐ  
71
­9ÚÐ-MÐÐ  
72
­:ÚÐ-NÐÐ  
73
­;ÚÐ-OÐÐ  
74
­<ÚÐ-PÐÐ  
75
­=ÚÐ-QÐÐ  
76
­>ÚÐ-RÐÐ  
77
­?ÚÐ-SÐÐ  
78
­7ÚÐ-TÐÐ  
79
­ÕÚÐ-UÐÐ  
80
­ÖÚÐ-ÐÐ  
81
­×ÚÐ-VÐÐ  
82
­ØÚÐ-WÐÐ  
83
­ÙÚÐ-XÐÐ  
84
­ÚÚÐ-YÐÐ  
85
­ÛÚÐ-ZÐÐ  
86
­ÜÚÐ-[ÐÐ  
87
­ÝÚÐ-\ÐÐ  
88
­ÞÚÐ-]ÐÐ  
89
­ßÚÐ-^ÐÐ  
90
­àÚÐ-_ÐÐ  
91
­dÚÐ-`ÐÐ  
92
­áÚÐ-aÐÐ  
93
­]ÚÐ-bÐÐ  
94
­^ÚÐ-cÐÐ  
95
­âÚÐ-dÐÐ  
96
­cÚÐ-eÐÐ  
97
­ãÚÐ-fÐÐ  
98
­äÚÐ-gÐÐ  
99
­åÚÐ-hÐÐ  
100
­æÚÐ-iÐÐ  
101
­çÚÐ-jÐÐ  
102
­[ÚÐ->ÐÐ  
103
­DÚÐ-?ÐÐ  
104
­EÚÐ-@ÐÐ  
105
­FÚÐ-AÐÐ  
106
­GÚÐ-BÐÐ  
107
­HÚÐ-CÐÐ  
108
­IÚÐ-DÐÐ  
109
­JÚÐ-EÐÐ  
110
­KÚÐ-FÐÐ  
111
­ÚÐ-GÐÐ  
112
­eÚÐ-HÐÐ  
113
­ÚÐ-kÐÐ  
114
­ÚÐ-IÐÐ  
115
­ÚÐ-lÐÐ  
116
­ÚÐ-mÐÐ  
117
­PÚÐ-nÐÐ  
118
­QÚÐ-oÐÐ  
119
­RÚÐ-pÐÐ  
120
­SÚÐ-qÐÐ  
121
­TÚÐ-rÐÐ  
122
­UÚÐ-sÐÐ  
123
­VÚÐ-tÐÐ  
124
­WÚÐ-uÐÐ  
125
­MÚÐ-vÐÐ  
126
­fÚÐ-wÐÐ  
127
­"ÚÐ-"ÐÐ  
128
­#ÚÐ-%ÐÐ  
129
­ÚÐ-ÐxyÐE"ÐÐ    
130
­hÚÐ-zÐÐ  
131
­iÚÐ-{ÐÐ  
132
­jÚÐ-|ÐÐ  
133
­kÚÐ-}ÐÐ  
134
­lÚÐ-~ÐÐ  
135
­mÚÐ-ÐÐ  
136
­nÚÐ-}ÐÐ  
137
­oÚÐ-€ÐÐ 
138
­pÚÐ-ÐÐ 
139
­qÚÐ-‚ÐÐ 
140
­rÚÐ-}ÐÐ  
141
­sÚÐ-ƒÐÐ 
142
­tÚÐ-„ÐÐ 
143
­uÚÐ-…ÐÐ 
144
­vÚÐ-†ÐÐ 
145
­wÚÐ-‡ÐÐ 
146
­xÚÐ-ˆÐÐ 
147
­yÚÐ-‰ÐÐ 
148
­zÚÐ-ŠÐÐ 
149
­{ÚÐ-‹ÐÐ 
150
­|ÚÐ-ŒÐÐ 
151
­}ÚÐ-ÐÐ 
152
­~ÚÐ-ŽÐÐ 
153
­ÚÐ-ÐÐ 
154
­€ÚÐ-ÐÐ 
155
­ÚÐ-‘ÐÐ 
156
­‚ÚÐ-’ÐÐ 
157
­ƒÚÐ-ˆÐÐ 
158
­„ÚÐ-“ÐÐ 
159
­…ÚÐ-”ÐÐ 
160
­†ÚÐ-•ÐÐ 
161
­‡ÚÐ-–ÐÐ 
162
­ˆÚÐ-—ÐÐ 
163
­ÚÐ-}