libiec61850  1.6.0
iec61850_model.h
Go to the documentation of this file.
1 /*
2  * model.h
3  *
4  * Copyright 2013-2024 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef MODEL_H_
25 #define MODEL_H_
26 
27 #include "iec61850_common.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
48 typedef struct sModelNode ModelNode;
49 
53 typedef struct sDataAttribute DataAttribute;
54 
58 typedef struct sDataObject DataObject;
59 
63 typedef struct sLogicalNode LogicalNode;
64 
68 typedef struct sLogicalDevice LogicalDevice;
69 
73 typedef struct sIedModel IedModel;
74 
75 typedef struct sDataSet DataSet;
76 typedef struct sReportControlBlock ReportControlBlock;
77 
81 typedef struct sSettingGroupControlBlock SettingGroupControlBlock;
82 
83 typedef struct sGSEControlBlock GSEControlBlock;
84 
85 typedef struct sSVControlBlock SVControlBlock;
86 
87 typedef struct sLogControlBlock LogControlBlock;
88 
89 typedef struct sLog Log;
90 
91 typedef enum {
93  IEC61850_BOOLEAN = 0,/* int */
94  IEC61850_INT8 = 1, /* int8_t */
95  IEC61850_INT16 = 2, /* int16_t */
96  IEC61850_INT32 = 3, /* int32_t */
97  IEC61850_INT64 = 4, /* int64_t */
98  IEC61850_INT128 = 5, /* no native mapping! */
99  IEC61850_INT8U = 6, /* uint8_t */
100  IEC61850_INT16U = 7, /* uint16_t */
101  IEC61850_INT24U = 8, /* uint32_t */
102  IEC61850_INT32U = 9, /* uint32_t */
103  IEC61850_FLOAT32 = 10, /* float */
104  IEC61850_FLOAT64 = 11, /* double */
124  IEC61850_OPTFLDS = 31, /* bit-string(10) */
125  IEC61850_TRGOPS = 32 /* bit-string(6) */
127 
128 typedef enum {
134 
135 struct sIedModel {
136  char* name;
137  LogicalDevice* firstChild;
138  DataSet* dataSets;
139  ReportControlBlock* rcbs;
140  GSEControlBlock* gseCBs;
141  SVControlBlock* svCBs;
142  SettingGroupControlBlock* sgcbs;
143  LogControlBlock* lcbs;
144  Log* logs;
145  void (*initializer) (void);
146 };
147 
150  char* name; /* LD instance */
151  ModelNode* parent;
152  ModelNode* sibling;
153  ModelNode* firstChild;
154  char* ldName; /* ldName (when using functional naming) */
155 };
156 
157 struct sModelNode {
159  char* name;
160  ModelNode* parent;
161  ModelNode* sibling;
162  ModelNode* firstChild;
163 };
164 
165 struct sLogicalNode {
167  char* name;
168  ModelNode* parent;
169  ModelNode* sibling;
170  ModelNode* firstChild;
171 };
172 
173 struct sDataObject {
175  char* name;
176  ModelNode* parent;
177  ModelNode* sibling;
178  ModelNode* firstChild;
179 
180  int elementCount; /* value > 0 if this is an array */
181  int arrayIndex; /* value > -1 when this is an array element */
182 };
183 
186  char* name;
187  ModelNode* parent;
188  ModelNode* sibling;
189  ModelNode* firstChild;
190 
191  int elementCount; /* value > 0 if this is an array */
192  int arrayIndex; /* value > -1 when this is an array element */
193 
196 
197  uint8_t triggerOptions; /* TRG_OPT_DATA_CHANGED | TRG_OPT_QUALITY_CHANGED | TRG_OPT_DATA_UPDATE */
198 
200 
201  uint32_t sAddr; /* TODO remove in version 2.0 */
202 };
203 
204 typedef struct sDataSetEntry {
205  char* logicalDeviceName; /* logical device instance name */
208  int index;
211  struct sDataSetEntry* sibling;
212 } DataSetEntry;
213 
214 struct sDataSet {
215  char* logicalDeviceName; /* logical device instance name */
216  char* name; /* eg. MMXU1$dataset1 */
219  DataSet* sibling;
220 };
221 
223  LogicalNode* parent;
224  char* name;
225  char* rptId;
226  bool buffered;
227  char* dataSetName; /* pre loaded with relative name in logical node */
228 
229  uint32_t confRef; /* ConfRef - configuration revision */
230  uint8_t trgOps; /* TrgOps - trigger conditions */
231  uint8_t options; /* OptFlds */
232  uint32_t bufferTime; /* BufTm - time to buffer events until a report is generated */
233  uint32_t intPeriod; /* IntgPd - integrity period */
234 
235  /* type (first byte) and address of the pre-configured client
236  type can be one of (0 - no reservation, 4 - IPv4 client, 6 - IPv6 client) */
237  uint8_t clientReservation[17];
238 
239  ReportControlBlock* sibling; /* next control block in list or NULL if this is the last entry
240  * at runtime reuse as pointer to ReportControl instance!
241  **/
242 };
243 
245  LogicalNode* parent;
246 
247  char* name;
248 
249  char* dataSetName;
250  char* logRef; /* object reference to the journal */
251 
252  uint8_t trgOps; /* TrgOps - trigger conditions */
253  uint32_t intPeriod; /* IntgPd - integrity period */
254 
255  bool logEna; /* enable log by default */
256  bool reasonCode; /* include reason code in log */
257 
258  LogControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
259 };
260 
261 struct sLog {
262  LogicalNode* parent;
263 
264  char* name;
265 
266  Log* sibling; /* next log instance in list or NULL if this is the last entry */
267 };
268 
270  LogicalNode* parent;
271 
272  uint8_t actSG; /* value from SCL file */
273  uint8_t numOfSGs; /* value from SCL file */
274 
275  uint8_t editSG; /* 0 at power-up */
276  bool cnfEdit; /* false at power-up */
277  uint64_t timestamp;
278  uint16_t resvTms;
279 
280  SettingGroupControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
281 };
282 
284  LogicalNode* parent;
285  char* name;
286  char* appId;
287  char* dataSetName; /* pre loaded with relative name in logical node */
288  uint32_t confRev; /* ConfRev - configuration revision */
289  bool fixedOffs; /* fixed offsets */
290  PhyComAddress* address; /* GSE communication parameters */
291  int minTime; /* optional minTime parameter --> -1 if not present */
292  int maxTime; /* optional maxTime parameter --> -1 if not present */
293  GSEControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
294 };
295 
297  LogicalNode* parent;
298  char* name;
299 
300  char* svId; /* MsvUD/UsvID */
301  char* dataSetName; /* pre loaded with relative name in logical node */
302 
303  uint8_t optFlds;
304 
305  uint8_t smpMod;
306  uint16_t smpRate;
307 
308  uint32_t confRev; /* ConfRev - configuration revision */
309 
310  PhyComAddress* dstAddress; /* SV communication parameters */
311 
312  bool isUnicast;
313 
314  int noASDU;
315 
316  SVControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
317 };
318 
327 LIB61850_API int
328 ModelNode_getChildCount(ModelNode* self);
329 
338 LIB61850_API ModelNode*
339 ModelNode_getChild(ModelNode* self, const char* name);
340 
349 LIB61850_API ModelNode*
350 ModelNode_getChildWithIdx(ModelNode* self, int idx);
351 
365 LIB61850_API ModelNode*
366 ModelNode_getChildWithFc(ModelNode* self, const char* name, FunctionalConstraint fc);
367 
377 LIB61850_API char*
378 ModelNode_getObjectReference(ModelNode* self, char* objectReference);
379 
390 LIB61850_API char*
391 ModelNode_getObjectReferenceEx(ModelNode* node, char* objectReference, bool withoutIedName);
392 
400 LIB61850_API ModelNodeType
401 ModelNode_getType(ModelNode* self);
402 
410 LIB61850_API const char*
411 ModelNode_getName(ModelNode* self);
412 
420 LIB61850_API ModelNode*
421 ModelNode_getParent(ModelNode* self);
422 
430 LIB61850_API LinkedList
431 ModelNode_getChildren(ModelNode* self);
432 
442 LIB61850_API void
443 IedModel_setIedName(IedModel* self, const char* iedName);
444 
459 LIB61850_API ModelNode*
460 IedModel_getModelNodeByObjectReference(IedModel* self, const char* objectReference);
461 
462 LIB61850_API SVControlBlock*
463 IedModel_getSVControlBlock(IedModel* self, LogicalNode* parentLN, const char* svcbName);
464 
479 LIB61850_API ModelNode*
480 IedModel_getModelNodeByShortObjectReference(IedModel* self, const char* objectReference);
481 
493 LIB61850_API ModelNode*
494 IedModel_getModelNodeByShortAddress(IedModel* self, uint32_t shortAddress);
495 
504 LIB61850_API LogicalDevice*
505 IedModel_getDeviceByInst(IedModel* self, const char* ldInst);
506 
515 LIB61850_API LogicalDevice*
516 IedModel_getDeviceByIndex(IedModel* self, int index);
517 
518 
527 LIB61850_API LogicalNode*
528 LogicalDevice_getLogicalNode(LogicalDevice* self, const char* lnName);
529 
537 LIB61850_API SettingGroupControlBlock*
539 
550 LIB61850_API void
552 
561 LIB61850_API LogicalDevice*
562 IedModel_getDevice(IedModel* self, const char* ldName);
563 
572 LIB61850_API DataSet*
573 IedModel_lookupDataSet(IedModel* self, const char* dataSetReference);
574 
583 LIB61850_API DataAttribute*
585 
586 
594 LIB61850_API int
596 
597 LIB61850_API int
599 
600 LIB61850_API ModelNode*
601 LogicalDevice_getChildByMmsVariableName(LogicalDevice* self, const char* mmsVariableName);
602 
603 LIB61850_API bool
605 
606 LIB61850_API bool
608 
609 LIB61850_API bool
611 
620 LIB61850_API DataSet*
621 LogicalNode_getDataSet(LogicalNode* self, const char* dataSetName);
622 
623 LIB61850_API bool
625 
626 
627 #ifdef __cplusplus
628 }
629 #endif
630 
631 
632 #endif /* MODEL_H_ */
LIB61850_API ModelNode * ModelNode_getChildWithIdx(ModelNode *self, int idx)
return the child node of an array or other structure
LIB61850_API int ModelNode_getChildCount(ModelNode *self)
get the number of direct children of a model node
LIB61850_API LogicalDevice * IedModel_getDeviceByInst(IedModel *self, const char *ldInst)
Lookup logical device (LD) by device instance name (SCL attribute "inst")
LIB61850_API ModelNode * IedModel_getModelNodeByShortObjectReference(IedModel *self, const char *objectReference)
Lookup a model node by its short (normalized) reference.
ModelNodeType
Definition: iec61850_model.h:128
LIB61850_API const char * ModelNode_getName(ModelNode *self)
Get the name of the ModelNode.
LIB61850_API LogicalDevice * IedModel_getDeviceByIndex(IedModel *self, int index)
Lookup logical device (LD) instance by index.
LIB61850_API SVControlBlock * IedModel_getSVControlBlock(IedModel *self, LogicalNode *parentLN, const char *svcbName)
LIB61850_API ModelNode * ModelNode_getChildWithFc(ModelNode *self, const char *name, FunctionalConstraint fc)
return a child model node with a given functional constraint
LIB61850_API char * ModelNode_getObjectReference(ModelNode *self, char *objectReference)
Return the IEC 61850 object reference of a model node.
LIB61850_API SettingGroupControlBlock * LogicalDevice_getSettingGroupControlBlock(LogicalDevice *self)
Get the setting group control block (SGCB) of the logical device.
LIB61850_API LinkedList ModelNode_getChildren(ModelNode *self)
Get the list of direct child nodes.
LIB61850_API ModelNode * ModelNode_getParent(ModelNode *self)
Get the parent ModelNode of this ModelNode instance.
LIB61850_API char * ModelNode_getObjectReferenceEx(ModelNode *node, char *objectReference, bool withoutIedName)
Return the IEC 61850 object reference of a model node.
DataAttributeType
Definition: iec61850_model.h:91
LIB61850_API void IedModel_setIedName(IedModel *self, const char *iedName)
Set the name of the IED.
LIB61850_API ModelNode * IedModel_getModelNodeByObjectReference(IedModel *self, const char *objectReference)
Lookup a model node by its object reference.
LIB61850_API LogicalNode * LogicalDevice_getLogicalNode(LogicalDevice *self, const char *lnName)
Lookup a logical node by name that is part of the given logical device.
LIB61850_API ModelNode * IedModel_getModelNodeByShortAddress(IedModel *self, uint32_t shortAddress)
Lookup a model node by its short address.
LIB61850_API ModelNodeType ModelNode_getType(ModelNode *self)
Get the type of the ModelNode.
LIB61850_API ModelNode * ModelNode_getChild(ModelNode *self, const char *name)
return a child model node
@ DataAttributeModelType
Definition: iec61850_model.h:132
@ DataObjectModelType
Definition: iec61850_model.h:131
@ LogicalNodeModelType
Definition: iec61850_model.h:130
@ LogicalDeviceModelType
Definition: iec61850_model.h:129
@ IEC61850_VISIBLE_STRING_255
Definition: iec61850_model.h:113
@ IEC61850_OPTFLDS
Definition: iec61850_model.h:124
@ IEC61850_TIMESTAMP
Definition: iec61850_model.h:115
@ IEC61850_CURRENCY
Definition: iec61850_model.h:123
@ IEC61850_INT128
Definition: iec61850_model.h:98
@ IEC61850_UNICODE_STRING_255
Definition: iec61850_model.h:114
@ IEC61850_OCTET_STRING_8
Definition: iec61850_model.h:108
@ IEC61850_VISIBLE_STRING_129
Definition: iec61850_model.h:112
@ IEC61850_CHECK
Definition: iec61850_model.h:117
@ IEC61850_PHYCOMADDR
Definition: iec61850_model.h:122
@ IEC61850_INT8U
Definition: iec61850_model.h:99
@ IEC61850_CODEDENUM
Definition: iec61850_model.h:118
@ IEC61850_BOOLEAN
Definition: iec61850_model.h:93
@ IEC61850_OCTET_STRING_64
Definition: iec61850_model.h:106
@ IEC61850_GENERIC_BITSTRING
Definition: iec61850_model.h:119
@ IEC61850_INT16U
Definition: iec61850_model.h:100
@ IEC61850_VISIBLE_STRING_32
Definition: iec61850_model.h:109
@ IEC61850_ENTRY_TIME
Definition: iec61850_model.h:121
@ IEC61850_INT32
Definition: iec61850_model.h:96
@ IEC61850_INT24U
Definition: iec61850_model.h:101
@ IEC61850_UNKNOWN_TYPE
Definition: iec61850_model.h:92
@ IEC61850_INT16
Definition: iec61850_model.h:95
@ IEC61850_CONSTRUCTED
Definition: iec61850_model.h:120
@ IEC61850_FLOAT64
Definition: iec61850_model.h:104
@ IEC61850_TRGOPS
Definition: iec61850_model.h:125
@ IEC61850_QUALITY
Definition: iec61850_model.h:116
@ IEC61850_INT64
Definition: iec61850_model.h:97
@ IEC61850_VISIBLE_STRING_65
Definition: iec61850_model.h:111
@ IEC61850_FLOAT32
Definition: iec61850_model.h:103
@ IEC61850_INT32U
Definition: iec61850_model.h:102
@ IEC61850_ENUMERATED
Definition: iec61850_model.h:105
@ IEC61850_INT8
Definition: iec61850_model.h:94
@ IEC61850_OCTET_STRING_6
Definition: iec61850_model.h:107
@ IEC61850_VISIBLE_STRING_64
Definition: iec61850_model.h:110
FunctionalConstraint
Definition: iec61850_common.h:260
struct sMmsValue MmsValue
Definition: mms_value.h:68
LIB61850_API bool LogicalNode_hasUnbufferedReports(LogicalNode *self)
LIB61850_API bool DataObject_hasFCData(DataObject *self, FunctionalConstraint fc)
LIB61850_API LogicalDevice * IedModel_getDevice(IedModel *self, const char *ldName)
Lookup logical device (LD) by device name.
LIB61850_API void IedModel_setAttributeValuesToNull(IedModel *self)
unset all MmsValue references in the data model
LIB61850_API bool LogicalNode_hasBufferedReports(LogicalNode *self)
LIB61850_API bool LogicalNode_hasFCData(LogicalNode *self, FunctionalConstraint fc)
LIB61850_API ModelNode * LogicalDevice_getChildByMmsVariableName(LogicalDevice *self, const char *mmsVariableName)
LIB61850_API DataAttribute * IedModel_lookupDataAttributeByMmsValue(IedModel *self, MmsValue *value)
Lookup a DataAttribute instance with the corresponding MmsValue instance.
LIB61850_API DataSet * LogicalNode_getDataSet(LogicalNode *self, const char *dataSetName)
get a data set instance
LIB61850_API DataSet * IedModel_lookupDataSet(IedModel *self, const char *dataSetReference)
Lookup a data set in the IED model.
LIB61850_API int IedModel_getLogicalDeviceCount(IedModel *self)
Get the number of logical devices.
LIB61850_API int LogicalDevice_getLogicalNodeCount(LogicalDevice *self)
Definition: iec61850_model.h:204
bool isLDNameDynamicallyAllocated
Definition: iec61850_model.h:206
int index
Definition: iec61850_model.h:208
MmsValue * value
Definition: iec61850_model.h:210
char * logicalDeviceName
Definition: iec61850_model.h:205
char * variableName
Definition: iec61850_model.h:207
char * componentName
Definition: iec61850_model.h:209
struct sDataSetEntry * sibling
Definition: iec61850_model.h:211
Definition: iec61850_common.h:51
IEC 61850 data model element of type data attribute.
Definition: iec61850_model.h:184
ModelNode * parent
Definition: iec61850_model.h:187
uint8_t triggerOptions
Definition: iec61850_model.h:197
char * name
Definition: iec61850_model.h:186
int arrayIndex
Definition: iec61850_model.h:192
ModelNode * sibling
Definition: iec61850_model.h:188
ModelNode * firstChild
Definition: iec61850_model.h:189
int elementCount
Definition: iec61850_model.h:191
ModelNodeType modelType
Definition: iec61850_model.h:185
FunctionalConstraint fc
Definition: iec61850_model.h:194
MmsValue * mmsValue
Definition: iec61850_model.h:199
uint32_t sAddr
Definition: iec61850_model.h:201
DataAttributeType type
Definition: iec61850_model.h:195
IEC 61850 data model element of type data object.
Definition: iec61850_model.h:173
ModelNode * firstChild
Definition: iec61850_model.h:178
int arrayIndex
Definition: iec61850_model.h:181
char * name
Definition: iec61850_model.h:175
ModelNode * sibling
Definition: iec61850_model.h:177
ModelNodeType modelType
Definition: iec61850_model.h:174
ModelNode * parent
Definition: iec61850_model.h:176
int elementCount
Definition: iec61850_model.h:180
Definition: iec61850_model.h:214
char * name
Definition: iec61850_model.h:216
char * logicalDeviceName
Definition: iec61850_model.h:215
DataSetEntry * fcdas
Definition: iec61850_model.h:218
int elementCount
Definition: iec61850_model.h:217
DataSet * sibling
Definition: iec61850_model.h:219
Definition: iec61850_model.h:283
bool fixedOffs
Definition: iec61850_model.h:289
char * dataSetName
Definition: iec61850_model.h:287
char * appId
Definition: iec61850_model.h:286
int minTime
Definition: iec61850_model.h:291
int maxTime
Definition: iec61850_model.h:292
GSEControlBlock * sibling
Definition: iec61850_model.h:293
PhyComAddress * address
Definition: iec61850_model.h:290
uint32_t confRev
Definition: iec61850_model.h:288
LogicalNode * parent
Definition: iec61850_model.h:284
char * name
Definition: iec61850_model.h:285
Root node of the IEC 61850 data model. This is usually created by the model generator tool (genmodel....
Definition: iec61850_model.h:135
LogControlBlock * lcbs
Definition: iec61850_model.h:143
SVControlBlock * svCBs
Definition: iec61850_model.h:141
LogicalDevice * firstChild
Definition: iec61850_model.h:137
DataSet * dataSets
Definition: iec61850_model.h:138
SettingGroupControlBlock * sgcbs
Definition: iec61850_model.h:142
char * name
Definition: iec61850_model.h:136
GSEControlBlock * gseCBs
Definition: iec61850_model.h:140
Log * logs
Definition: iec61850_model.h:144
ReportControlBlock * rcbs
Definition: iec61850_model.h:139
void(* initializer)(void)
Definition: iec61850_model.h:145
Definition: iec61850_model.h:244
char * dataSetName
Definition: iec61850_model.h:249
uint32_t intPeriod
Definition: iec61850_model.h:253
char * name
Definition: iec61850_model.h:247
bool logEna
Definition: iec61850_model.h:255
LogControlBlock * sibling
Definition: iec61850_model.h:258
bool reasonCode
Definition: iec61850_model.h:256
uint8_t trgOps
Definition: iec61850_model.h:252
LogicalNode * parent
Definition: iec61850_model.h:245
char * logRef
Definition: iec61850_model.h:250
Definition: iec61850_model.h:261
LogicalNode * parent
Definition: iec61850_model.h:262
Log * sibling
Definition: iec61850_model.h:266
char * name
Definition: iec61850_model.h:264
IEC 61850 data model element of type logical device.
Definition: iec61850_model.h:148
ModelNode * firstChild
Definition: iec61850_model.h:153
ModelNodeType modelType
Definition: iec61850_model.h:149
char * ldName
Definition: iec61850_model.h:154
ModelNode * parent
Definition: iec61850_model.h:151
ModelNode * sibling
Definition: iec61850_model.h:152
char * name
Definition: iec61850_model.h:150
IEC 61850 data model element of type logical node.
Definition: iec61850_model.h:165
ModelNodeType modelType
Definition: iec61850_model.h:166
ModelNode * firstChild
Definition: iec61850_model.h:170
ModelNode * sibling
Definition: iec61850_model.h:169
char * name
Definition: iec61850_model.h:167
ModelNode * parent
Definition: iec61850_model.h:168
abstract base type for IEC 61850 data model nodes
Definition: iec61850_model.h:157
ModelNode * sibling
Definition: iec61850_model.h:161
ModelNode * firstChild
Definition: iec61850_model.h:162
char * name
Definition: iec61850_model.h:159
ModelNode * parent
Definition: iec61850_model.h:160
ModelNodeType modelType
Definition: iec61850_model.h:158
Definition: iec61850_model.h:222
ReportControlBlock * sibling
Definition: iec61850_model.h:239
uint8_t options
Definition: iec61850_model.h:231
bool buffered
Definition: iec61850_model.h:226
uint8_t trgOps
Definition: iec61850_model.h:230
LogicalNode * parent
Definition: iec61850_model.h:223
uint32_t intPeriod
Definition: iec61850_model.h:233
uint32_t confRef
Definition: iec61850_model.h:229
uint32_t bufferTime
Definition: iec61850_model.h:232
char * rptId
Definition: iec61850_model.h:225
char * dataSetName
Definition: iec61850_model.h:227
char * name
Definition: iec61850_model.h:224
uint8_t clientReservation[17]
Definition: iec61850_model.h:237
Definition: iec61850_model.h:296
PhyComAddress * dstAddress
Definition: iec61850_model.h:310
char * svId
Definition: iec61850_model.h:300
uint8_t smpMod
Definition: iec61850_model.h:305
int noASDU
Definition: iec61850_model.h:314
SVControlBlock * sibling
Definition: iec61850_model.h:316
uint8_t optFlds
Definition: iec61850_model.h:303
char * name
Definition: iec61850_model.h:298
uint32_t confRev
Definition: iec61850_model.h:308
char * dataSetName
Definition: iec61850_model.h:301
bool isUnicast
Definition: iec61850_model.h:312
uint16_t smpRate
Definition: iec61850_model.h:306
LogicalNode * parent
Definition: iec61850_model.h:297
IEC 61850 data model of setting group control block (SGCB)
Definition: iec61850_model.h:269
uint64_t timestamp
Definition: iec61850_model.h:277
LogicalNode * parent
Definition: iec61850_model.h:270
uint8_t editSG
Definition: iec61850_model.h:275
SettingGroupControlBlock * sibling
Definition: iec61850_model.h:280
bool cnfEdit
Definition: iec61850_model.h:276
uint8_t actSG
Definition: iec61850_model.h:272
uint8_t numOfSGs
Definition: iec61850_model.h:273
uint16_t resvTms
Definition: iec61850_model.h:278