libiec61850  1.5.3
iec61850_model.h
Go to the documentation of this file.
1 /*
2  * model.h
3  *
4  * Copyright 2013-2016 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 
46 typedef struct sModelNode ModelNode;
47 
51 typedef struct sDataAttribute DataAttribute;
52 
56 typedef struct sDataObject DataObject;
57 
61 typedef struct sLogicalNode LogicalNode;
62 
66 typedef struct sLogicalDevice LogicalDevice;
67 
71 typedef struct sIedModel IedModel;
72 
73 typedef struct sDataSet DataSet;
74 typedef struct sReportControlBlock ReportControlBlock;
75 
79 typedef struct sSettingGroupControlBlock SettingGroupControlBlock;
80 
81 typedef struct sGSEControlBlock GSEControlBlock;
82 
83 typedef struct sSVControlBlock SVControlBlock;
84 
85 typedef struct sLogControlBlock LogControlBlock;
86 
87 typedef struct sLog Log;
88 
89 typedef enum {
91  IEC61850_BOOLEAN = 0,/* int */
92  IEC61850_INT8 = 1, /* int8_t */
93  IEC61850_INT16 = 2, /* int16_t */
94  IEC61850_INT32 = 3, /* int32_t */
95  IEC61850_INT64 = 4, /* int64_t */
96  IEC61850_INT128 = 5, /* no native mapping! */
97  IEC61850_INT8U = 6, /* uint8_t */
98  IEC61850_INT16U = 7, /* uint16_t */
99  IEC61850_INT24U = 8, /* uint32_t */
100  IEC61850_INT32U = 9, /* uint32_t */
101  IEC61850_FLOAT32 = 10, /* float */
102  IEC61850_FLOAT64 = 11, /* double */
122  IEC61850_OPTFLDS = 31, /* bit-string(10) */
123  IEC61850_TRGOPS = 32 /* bit-string(6) */
124 
125 
126 #if (CONFIG_IEC61850_USE_COMPAT_TYPE_DECLARATIONS == 1)
127  ,
128  BOOLEAN = 0,/* int */
129  INT8 = 1, /* int8_t */
130  INT16 = 2, /* int16_t */
131  INT32 = 3, /* int32_t */
132  INT64 = 4, /* int64_t */
133  INT128 = 5, /* no native mapping! */
134  INT8U = 6, /* uint8_t */
135  INT16U = 7, /* uint16_t */
136  INT24U = 8, /* uint32_t */
137  INT32U = 9, /* uint32_t */
138  FLOAT32 = 10, /* float */
139  FLOAT64 = 11, /* double */
140  ENUMERATED = 12,
141  OCTET_STRING_64 = 13,
142  OCTET_STRING_6 = 14,
143  OCTET_STRING_8 = 15,
144  VISIBLE_STRING_32 = 16,
145  VISIBLE_STRING_64 = 17,
146  VISIBLE_STRING_65 = 18,
147  VISIBLE_STRING_129 = 19,
148  VISIBLE_STRING_255 = 20,
149  UNICODE_STRING_255 = 21,
150  TIMESTAMP = 22,
151  QUALITY = 23,
152  CHECK = 24,
153  CODEDENUM = 25,
154  GENERIC_BITSTRING = 26,
155  CONSTRUCTED = 27,
156  ENTRY_TIME = 28,
157  PHYCOMADDR = 29,
158  CURRENCY = 30
159  OPTFLDS = 31,
160  TRGOPS = 32
161 #endif
163 
164 typedef enum {
170 
171 struct sIedModel {
172  char* name;
173  LogicalDevice* firstChild;
174  DataSet* dataSets;
175  ReportControlBlock* rcbs;
176  GSEControlBlock* gseCBs;
177  SVControlBlock* svCBs;
178  SettingGroupControlBlock* sgcbs;
179  LogControlBlock* lcbs;
180  Log* logs;
181  void (*initializer) (void);
182 };
183 
186  char* name;
187  ModelNode* parent;
188  ModelNode* sibling;
189  ModelNode* firstChild;
190 };
191 
192 struct sModelNode {
194  char* name;
195  ModelNode* parent;
196  ModelNode* sibling;
197  ModelNode* firstChild;
198 };
199 
200 struct sLogicalNode {
202  char* name;
203  ModelNode* parent;
204  ModelNode* sibling;
205  ModelNode* firstChild;
206 };
207 
208 struct sDataObject {
210  char* name;
211  ModelNode* parent;
212  ModelNode* sibling;
213  ModelNode* firstChild;
214 
215  int elementCount; /* > 0 if this is an array */
216 };
217 
220  char* name;
221  ModelNode* parent;
222  ModelNode* sibling;
223  ModelNode* firstChild;
224 
225  int elementCount; /* > 0 if this is an array */
226 
229 
230  uint8_t triggerOptions; /* TRG_OPT_DATA_CHANGED | TRG_OPT_QUALITY_CHANGED | TRG_OPT_DATA_UPDATE */
231 
233 
234  uint32_t sAddr;
235 };
236 
237 typedef struct sDataSetEntry {
241  int index;
244  struct sDataSetEntry* sibling;
245 } DataSetEntry;
246 
247 struct sDataSet {
249  char* name; /* eg. MMXU1$dataset1 */
252  DataSet* sibling;
253 };
254 
256  LogicalNode* parent;
257  char* name;
258  char* rptId;
259  bool buffered;
260  char* dataSetName; /* pre loaded with relative name in logical node */
261 
262  uint32_t confRef; /* ConfRef - configuration revision */
263  uint8_t trgOps; /* TrgOps - trigger conditions */
264  uint8_t options; /* OptFlds */
265  uint32_t bufferTime; /* BufTm - time to buffer events until a report is generated */
266  uint32_t intPeriod; /* IntgPd - integrity period */
267 
268  /* type (first byte) and address of the pre-configured client
269  type can be one of (0 - no reservation, 4 - IPv4 client, 6 - IPv6 client) */
270  uint8_t clientReservation[17];
271 
272  ReportControlBlock* sibling; /* next control block in list or NULL if this is the last entry
273  * at runtime reuse as pointer to ReportControl instance!
274  **/
275 };
276 
278  LogicalNode* parent;
279 
280  char* name;
281 
282  char* dataSetName;
283  char* logRef; /* object reference to the journal */
284 
285  uint8_t trgOps; /* TrgOps - trigger conditions */
286  uint32_t intPeriod; /* IntgPd - integrity period */
287 
288  bool logEna; /* enable log by default */
289  bool reasonCode; /* include reason code in log */
290 
291  LogControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
292 };
293 
294 struct sLog {
295  LogicalNode* parent;
296 
297  char* name;
298 
299  Log* sibling; /* next log instance in list or NULL if this is the last entry */
300 };
301 
303  LogicalNode* parent;
304 
305  uint8_t actSG; /* value from SCL file */
306  uint8_t numOfSGs; /* value from SCL file */
307 
308  uint8_t editSG; /* 0 at power-up */
309  bool cnfEdit; /* false at power-up */
310  uint64_t timestamp;
311  uint16_t resvTms;
312 
313  SettingGroupControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
314 };
315 
317  LogicalNode* parent;
318  char* name;
319  char* appId;
320  char* dataSetName; /* pre loaded with relative name in logical node */
321  uint32_t confRev; /* ConfRev - configuration revision */
322  bool fixedOffs; /* fixed offsets */
323  PhyComAddress* address; /* GSE communication parameters */
324  int minTime; /* optional minTime parameter --> -1 if not present */
325  int maxTime; /* optional maxTime parameter --> -1 if not present */
326  GSEControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
327 };
328 
330  LogicalNode* parent;
331  char* name;
332 
333  char* svId; /* MsvUD/UsvID */
334  char* dataSetName; /* pre loaded with relative name in logical node */
335 
336  uint8_t optFlds;
337 
338  uint8_t smpMod;
339  uint16_t smpRate;
340 
341  uint32_t confRev; /* ConfRev - configuration revision */
342 
343  PhyComAddress* dstAddress; /* SV communication parameters */
344 
345  bool isUnicast;
346 
347  int noASDU;
348 
349  SVControlBlock* sibling; /* next control block in list or NULL if this is the last entry */
350 };
351 
360 LIB61850_API int
361 ModelNode_getChildCount(ModelNode* self);
362 
371 LIB61850_API ModelNode*
372 ModelNode_getChild(ModelNode* self, const char* name);
373 
387 LIB61850_API ModelNode*
388 ModelNode_getChildWithFc(ModelNode* self, const char* name, FunctionalConstraint fc);
389 
399 LIB61850_API char*
400 ModelNode_getObjectReference(ModelNode* self, char* objectReference);
401 
412 LIB61850_API char*
413 ModelNode_getObjectReferenceEx(ModelNode* node, char* objectReference, bool withoutIedName);
414 
422 LIB61850_API ModelNodeType
423 ModelNode_getType(ModelNode* self);
424 
432 LIB61850_API const char*
433 ModelNode_getName(ModelNode* self);
434 
442 LIB61850_API ModelNode*
443 ModelNode_getParent(ModelNode* self);
444 
452 LIB61850_API LinkedList
453 ModelNode_getChildren(ModelNode* self);
454 
464 LIB61850_API void
465 IedModel_setIedName(IedModel* self, const char* iedName);
466 
479 LIB61850_API ModelNode*
480 IedModel_getModelNodeByObjectReference(IedModel* self, const char* objectReference);
481 
482 LIB61850_API SVControlBlock*
483 IedModel_getSVControlBlock(IedModel* self, LogicalNode* parentLN, const char* svcbName);
484 
497 LIB61850_API ModelNode*
498 IedModel_getModelNodeByShortObjectReference(IedModel* self, const char* objectReference);
499 
511 LIB61850_API ModelNode*
512 IedModel_getModelNodeByShortAddress(IedModel* self, uint32_t shortAddress);
513 
522 LIB61850_API LogicalDevice*
523 IedModel_getDeviceByInst(IedModel* self, const char* ldInst);
524 
533 LIB61850_API LogicalDevice*
534 IedModel_getDeviceByIndex(IedModel* self, int index);
535 
536 
545 LIB61850_API LogicalNode*
546 LogicalDevice_getLogicalNode(LogicalDevice* self, const char* lnName);
547 
555 LIB61850_API SettingGroupControlBlock*
557 
568 LIB61850_API void
570 
579 LIB61850_API LogicalDevice*
580 IedModel_getDevice(IedModel* self, const char* ldName);
581 
590 LIB61850_API DataSet*
591 IedModel_lookupDataSet(IedModel* self, const char* dataSetReference);
592 
601 LIB61850_API DataAttribute*
603 
604 
612 LIB61850_API int
614 
615 LIB61850_API int
617 
618 LIB61850_API ModelNode*
619 LogicalDevice_getChildByMmsVariableName(LogicalDevice* self, const char* mmsVariableName);
620 
621 LIB61850_API bool
623 
624 LIB61850_API bool
626 
627 LIB61850_API bool
629 
638 LIB61850_API DataSet*
639 LogicalNode_getDataSet(LogicalNode* self, const char* dataSetName);
640 
641 LIB61850_API bool
643 
644 
645 #ifdef __cplusplus
646 }
647 #endif
648 
649 
650 #endif /* MODEL_H_ */
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:164
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:89
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:168
@ DataObjectModelType
Definition: iec61850_model.h:167
@ LogicalNodeModelType
Definition: iec61850_model.h:166
@ LogicalDeviceModelType
Definition: iec61850_model.h:165
@ IEC61850_VISIBLE_STRING_255
Definition: iec61850_model.h:111
@ IEC61850_OPTFLDS
Definition: iec61850_model.h:122
@ IEC61850_TIMESTAMP
Definition: iec61850_model.h:113
@ IEC61850_CURRENCY
Definition: iec61850_model.h:121
@ IEC61850_INT128
Definition: iec61850_model.h:96
@ IEC61850_UNICODE_STRING_255
Definition: iec61850_model.h:112
@ IEC61850_OCTET_STRING_8
Definition: iec61850_model.h:106
@ IEC61850_VISIBLE_STRING_129
Definition: iec61850_model.h:110
@ IEC61850_CHECK
Definition: iec61850_model.h:115
@ IEC61850_PHYCOMADDR
Definition: iec61850_model.h:120
@ IEC61850_INT8U
Definition: iec61850_model.h:97
@ IEC61850_CODEDENUM
Definition: iec61850_model.h:116
@ IEC61850_BOOLEAN
Definition: iec61850_model.h:91
@ IEC61850_OCTET_STRING_64
Definition: iec61850_model.h:104
@ IEC61850_GENERIC_BITSTRING
Definition: iec61850_model.h:117
@ IEC61850_INT16U
Definition: iec61850_model.h:98
@ IEC61850_VISIBLE_STRING_32
Definition: iec61850_model.h:107
@ IEC61850_ENTRY_TIME
Definition: iec61850_model.h:119
@ IEC61850_INT32
Definition: iec61850_model.h:94
@ IEC61850_INT24U
Definition: iec61850_model.h:99
@ IEC61850_UNKNOWN_TYPE
Definition: iec61850_model.h:90
@ IEC61850_INT16
Definition: iec61850_model.h:93
@ IEC61850_CONSTRUCTED
Definition: iec61850_model.h:118
@ IEC61850_FLOAT64
Definition: iec61850_model.h:102
@ IEC61850_TRGOPS
Definition: iec61850_model.h:123
@ IEC61850_QUALITY
Definition: iec61850_model.h:114
@ IEC61850_INT64
Definition: iec61850_model.h:95
@ IEC61850_VISIBLE_STRING_65
Definition: iec61850_model.h:109
@ IEC61850_FLOAT32
Definition: iec61850_model.h:101
@ IEC61850_INT32U
Definition: iec61850_model.h:100
@ IEC61850_ENUMERATED
Definition: iec61850_model.h:103
@ IEC61850_INT8
Definition: iec61850_model.h:92
@ IEC61850_OCTET_STRING_6
Definition: iec61850_model.h:105
@ IEC61850_VISIBLE_STRING_64
Definition: iec61850_model.h:108
FunctionalConstraint
Definition: iec61850_common.h:264
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:237
bool isLDNameDynamicallyAllocated
Definition: iec61850_model.h:239
int index
Definition: iec61850_model.h:241
MmsValue * value
Definition: iec61850_model.h:243
char * logicalDeviceName
Definition: iec61850_model.h:238
char * variableName
Definition: iec61850_model.h:240
char * componentName
Definition: iec61850_model.h:242
struct sDataSetEntry * sibling
Definition: iec61850_model.h:244
Definition: iec61850_common.h:51
IEC 61850 data model element of type data attribute.
Definition: iec61850_model.h:218
ModelNode * parent
Definition: iec61850_model.h:221
uint8_t triggerOptions
Definition: iec61850_model.h:230
char * name
Definition: iec61850_model.h:220
ModelNode * sibling
Definition: iec61850_model.h:222
ModelNode * firstChild
Definition: iec61850_model.h:223
int elementCount
Definition: iec61850_model.h:225
ModelNodeType modelType
Definition: iec61850_model.h:219
FunctionalConstraint fc
Definition: iec61850_model.h:227
MmsValue * mmsValue
Definition: iec61850_model.h:232
uint32_t sAddr
Definition: iec61850_model.h:234
DataAttributeType type
Definition: iec61850_model.h:228
IEC 61850 data model element of type data object.
Definition: iec61850_model.h:208
ModelNode * firstChild
Definition: iec61850_model.h:213
char * name
Definition: iec61850_model.h:210
ModelNode * sibling
Definition: iec61850_model.h:212
ModelNodeType modelType
Definition: iec61850_model.h:209
ModelNode * parent
Definition: iec61850_model.h:211
int elementCount
Definition: iec61850_model.h:215
Definition: iec61850_model.h:247
char * name
Definition: iec61850_model.h:249
char * logicalDeviceName
Definition: iec61850_model.h:248
DataSetEntry * fcdas
Definition: iec61850_model.h:251
int elementCount
Definition: iec61850_model.h:250
DataSet * sibling
Definition: iec61850_model.h:252
Definition: iec61850_model.h:316
bool fixedOffs
Definition: iec61850_model.h:322
char * dataSetName
Definition: iec61850_model.h:320
char * appId
Definition: iec61850_model.h:319
int minTime
Definition: iec61850_model.h:324
int maxTime
Definition: iec61850_model.h:325
GSEControlBlock * sibling
Definition: iec61850_model.h:326
PhyComAddress * address
Definition: iec61850_model.h:323
uint32_t confRev
Definition: iec61850_model.h:321
LogicalNode * parent
Definition: iec61850_model.h:317
char * name
Definition: iec61850_model.h:318
Root node of the IEC 61850 data model. This is usually created by the model generator tool (genmodel....
Definition: iec61850_model.h:171
LogControlBlock * lcbs
Definition: iec61850_model.h:179
SVControlBlock * svCBs
Definition: iec61850_model.h:177
LogicalDevice * firstChild
Definition: iec61850_model.h:173
DataSet * dataSets
Definition: iec61850_model.h:174
SettingGroupControlBlock * sgcbs
Definition: iec61850_model.h:178
char * name
Definition: iec61850_model.h:172
GSEControlBlock * gseCBs
Definition: iec61850_model.h:176
Log * logs
Definition: iec61850_model.h:180
ReportControlBlock * rcbs
Definition: iec61850_model.h:175
void(* initializer)(void)
Definition: iec61850_model.h:181
Definition: iec61850_model.h:277
char * dataSetName
Definition: iec61850_model.h:282
uint32_t intPeriod
Definition: iec61850_model.h:286
char * name
Definition: iec61850_model.h:280
bool logEna
Definition: iec61850_model.h:288
LogControlBlock * sibling
Definition: iec61850_model.h:291
bool reasonCode
Definition: iec61850_model.h:289
uint8_t trgOps
Definition: iec61850_model.h:285
LogicalNode * parent
Definition: iec61850_model.h:278
char * logRef
Definition: iec61850_model.h:283
Definition: iec61850_model.h:294
LogicalNode * parent
Definition: iec61850_model.h:295
Log * sibling
Definition: iec61850_model.h:299
char * name
Definition: iec61850_model.h:297
IEC 61850 data model element of type logical device.
Definition: iec61850_model.h:184
ModelNode * firstChild
Definition: iec61850_model.h:189
ModelNodeType modelType
Definition: iec61850_model.h:185
ModelNode * parent
Definition: iec61850_model.h:187
ModelNode * sibling
Definition: iec61850_model.h:188
char * name
Definition: iec61850_model.h:186
IEC 61850 data model element of type logical node.
Definition: iec61850_model.h:200
ModelNodeType modelType
Definition: iec61850_model.h:201
ModelNode * firstChild
Definition: iec61850_model.h:205
ModelNode * sibling
Definition: iec61850_model.h:204
char * name
Definition: iec61850_model.h:202
ModelNode * parent
Definition: iec61850_model.h:203
abstract base type for IEC 61850 data model nodes
Definition: iec61850_model.h:192
ModelNode * sibling
Definition: iec61850_model.h:196
ModelNode * firstChild
Definition: iec61850_model.h:197
char * name
Definition: iec61850_model.h:194
ModelNode * parent
Definition: iec61850_model.h:195
ModelNodeType modelType
Definition: iec61850_model.h:193
Definition: iec61850_model.h:255
ReportControlBlock * sibling
Definition: iec61850_model.h:272
uint8_t options
Definition: iec61850_model.h:264
bool buffered
Definition: iec61850_model.h:259
uint8_t trgOps
Definition: iec61850_model.h:263
LogicalNode * parent
Definition: iec61850_model.h:256
uint32_t intPeriod
Definition: iec61850_model.h:266
uint32_t confRef
Definition: iec61850_model.h:262
uint32_t bufferTime
Definition: iec61850_model.h:265
char * rptId
Definition: iec61850_model.h:258
char * dataSetName
Definition: iec61850_model.h:260
char * name
Definition: iec61850_model.h:257
uint8_t clientReservation[17]
Definition: iec61850_model.h:270
Definition: iec61850_model.h:329
PhyComAddress * dstAddress
Definition: iec61850_model.h:343
char * svId
Definition: iec61850_model.h:333
uint8_t smpMod
Definition: iec61850_model.h:338
int noASDU
Definition: iec61850_model.h:347
SVControlBlock * sibling
Definition: iec61850_model.h:349
uint8_t optFlds
Definition: iec61850_model.h:336
char * name
Definition: iec61850_model.h:331
uint32_t confRev
Definition: iec61850_model.h:341
char * dataSetName
Definition: iec61850_model.h:334
bool isUnicast
Definition: iec61850_model.h:345
uint16_t smpRate
Definition: iec61850_model.h:339
LogicalNode * parent
Definition: iec61850_model.h:330
IEC 61850 data model of setting group control block (SGCB)
Definition: iec61850_model.h:302
uint64_t timestamp
Definition: iec61850_model.h:310
LogicalNode * parent
Definition: iec61850_model.h:303
uint8_t editSG
Definition: iec61850_model.h:308
SettingGroupControlBlock * sibling
Definition: iec61850_model.h:313
bool cnfEdit
Definition: iec61850_model.h:309
uint8_t actSG
Definition: iec61850_model.h:305
uint8_t numOfSGs
Definition: iec61850_model.h:306
uint16_t resvTms
Definition: iec61850_model.h:311