87 typedef struct sLog Log;
125 #if (CONFIG_IEC61850_USE_COMPAT_TYPE_DECLARATIONS == 1) 140 OCTET_STRING_64 = 13,
143 VISIBLE_STRING_32 = 16,
144 VISIBLE_STRING_64 = 17,
145 VISIBLE_STRING_65 = 18,
146 VISIBLE_STRING_129 = 19,
147 VISIBLE_STRING_255 = 20,
148 UNICODE_STRING_255 = 21,
153 GENERIC_BITSTRING = 26,
236 typedef struct sDataSetEntry {
505 SettingGroupControlBlock*
Definition: iec61850_model.h:92
LogicalNode * parent
Definition: iec61850_model.h:255
Definition: iec61850_model.h:90
int elementCount
Definition: iec61850_model.h:249
int index
Definition: iec61850_model.h:240
ModelNodeType modelType
Definition: iec61850_model.h:184
LogicalNode * parent
Definition: iec61850_model.h:310
bool LogicalNode_hasBufferedReports(LogicalNode *self)
char * name
Definition: iec61850_model.h:311
Definition: iec61850_model.h:112
char * name
Definition: iec61850_model.h:185
uint16_t smpRate
Definition: iec61850_model.h:332
Definition: iec61850_model.h:270
Definition: iec61850_common.h:41
Definition: iec61850_model.h:115
char * name
Definition: iec61850_model.h:193
char * dataSetName
Definition: iec61850_model.h:259
Definition: iec61850_model.h:100
Definition: iec61850_model.h:96
bool logEna
Definition: iec61850_model.h:281
bool DataObject_hasFCData(DataObject *self, FunctionalConstraint fc)
int minTime
Definition: iec61850_model.h:317
Definition: iec61850_model.h:118
ReportControlBlock * rcbs
Definition: iec61850_model.h:174
uint8_t actSG
Definition: iec61850_model.h:298
ModelNode * firstChild
Definition: iec61850_model.h:196
uint32_t intPeriod
Definition: iec61850_model.h:265
char * logicalDeviceName
Definition: iec61850_model.h:237
Definition: iec61850_model.h:99
Definition: iec61850_model.h:95
PhyComAddress * address
Definition: iec61850_model.h:316
ModelNode * IedModel_getModelNodeByShortAddress(IedModel *self, uint32_t shortAddress)
Lookup a model node by its short address.
int maxTime
Definition: iec61850_model.h:318
char * ModelNode_getObjectReference(ModelNode *self, char *objectReference)
Return the IEC 61850 object reference of a model node.
uint8_t optFlds
Definition: iec61850_model.h:329
LogicalDevice * IedModel_getDeviceByIndex(IedModel *self, int index)
Lookup logical device (LD) instance by index.
ModelNodeType modelType
Definition: iec61850_model.h:218
Definition: iec61850_model.h:164
uint32_t confRev
Definition: iec61850_model.h:314
int IedModel_getLogicalDeviceCount(IedModel *self)
Get the number of logical devices.
SettingGroupControlBlock * LogicalDevice_getSettingGroupControlBlock(LogicalDevice *self)
Get the setting group control block (SGCB) of the logical device.
DataAttribute * IedModel_lookupDataAttributeByMmsValue(IedModel *self, MmsValue *value)
Lookup a DataAttribute instance with the corresponding MmsValue instance.
char * name
Definition: iec61850_model.h:256
uint32_t bufferTime
Definition: iec61850_model.h:264
IEC 61850 data model of setting group control block (SGCB)
Definition: iec61850_model.h:295
SVControlBlock * sibling
Definition: iec61850_model.h:342
DataSet * IedModel_lookupDataSet(IedModel *self, const char *dataSetReference)
Lookup a data set in the IED model.
ModelNodeType
Definition: iec61850_model.h:163
Definition: iec61850_model.h:109
GSEControlBlock * sibling
Definition: iec61850_model.h:319
IEC 61850 data model element of type logical device.
Definition: iec61850_model.h:183
GSEControlBlock * gseCBs
Definition: iec61850_model.h:175
Definition: iec61850_model.h:167
SettingGroupControlBlock * sgcbs
Definition: iec61850_model.h:177
bool buffered
Definition: iec61850_model.h:258
ModelNode * firstChild
Definition: iec61850_model.h:212
uint8_t smpMod
Definition: iec61850_model.h:331
ModelNode * firstChild
Definition: iec61850_model.h:222
char * dataSetName
Definition: iec61850_model.h:327
void(* initializer)(void)
Definition: iec61850_model.h:180
ModelNodeType ModelNode_getType(ModelNode *self)
Get the type of the ModelNode.
Definition: iec61850_model.h:107
bool isUnicast
Definition: iec61850_model.h:338
uint8_t numOfSGs
Definition: iec61850_model.h:299
MmsValue * value
Definition: iec61850_model.h:242
Definition: iec61850_model.h:104
Definition: iec61850_model.h:94
ModelNode * parent
Definition: iec61850_model.h:220
Definition: iec61850_model.h:254
Definition: iec61850_model.h:98
Definition: iec61850_model.h:116
Definition: iec61850_model.h:119
Definition: iec61850_model.h:165
Definition: iec61850_model.h:236
ModelNode * sibling
Definition: iec61850_model.h:211
Definition: iec61850_model.h:108
Definition: iec61850_model.h:120
abstract base type for IEC 61850 data model nodes
Definition: iec61850_model.h:191
FunctionalConstraint fc
Definition: iec61850_model.h:226
char * svId
Definition: iec61850_model.h:326
Definition: iec61850_model.h:287
DataSet * LogicalNode_getDataSet(LogicalNode *self, const char *dataSetName)
get a data set instance
bool reasonCode
Definition: iec61850_model.h:282
char * rptId
Definition: iec61850_model.h:257
char * variableName
Definition: iec61850_model.h:239
SettingGroupControlBlock * sibling
Definition: iec61850_model.h:306
DataSetEntry * fcdas
Definition: iec61850_model.h:250
char * logRef
Definition: iec61850_model.h:276
bool LogicalNode_hasFCData(LogicalNode *self, FunctionalConstraint fc)
bool cnfEdit
Definition: iec61850_model.h:302
char * name
Definition: iec61850_model.h:290
ModelNode * sibling
Definition: iec61850_model.h:187
DataAttributeType type
Definition: iec61850_model.h:227
Definition: iec61850_model.h:121
uint16_t resvTms
Definition: iec61850_model.h:304
bool fixedOffs
Definition: iec61850_model.h:315
ModelNode * ModelNode_getChildWithFc(ModelNode *self, const char *name, FunctionalConstraint fc)
return a child model node with a given functional constraint
int LogicalDevice_getLogicalNodeCount(LogicalDevice *self)
ModelNode * parent
Definition: iec61850_model.h:202
Definition: iec61850_model.h:110
Definition: iec61850_model.h:106
DataAttributeType
Definition: iec61850_model.h:89
ModelNode * parent
Definition: iec61850_model.h:194
PhyComAddress * dstAddress
Definition: iec61850_model.h:336
char * name
Definition: iec61850_model.h:171
Definition: iec61850_model.h:114
LogicalDevice * firstChild
Definition: iec61850_model.h:172
bool isLDNameDynamicallyAllocated
Definition: iec61850_model.h:238
void IedModel_setAttributeValuesToNull(IedModel *self)
unset all MmsValue references in the data model
char * logicalDeviceName
Definition: iec61850_model.h:247
LogicalNode * parent
Definition: iec61850_model.h:288
ModelNode * ModelNode_getChild(ModelNode *self, const char *name)
return a child model node
DataSet * dataSets
Definition: iec61850_model.h:173
Definition: iec61850_model.h:101
char * name
Definition: iec61850_model.h:324
LogControlBlock * sibling
Definition: iec61850_model.h:284
LogicalDevice * IedModel_getDevice(IedModel *self, const char *ldName)
Lookup logical device (LD) by device name.
uint8_t trgOps
Definition: iec61850_model.h:262
LogicalNode * parent
Definition: iec61850_model.h:323
Definition: iec61850_model.h:111
Definition: iec61850_model.h:102
Definition: iec61850_model.h:166
ModelNode * sibling
Definition: iec61850_model.h:221
LogControlBlock * lcbs
Definition: iec61850_model.h:178
ModelNode * firstChild
Definition: iec61850_model.h:188
IEC 61850 data model element of type data attribute.
Definition: iec61850_model.h:217
LogicalNode * parent
Definition: iec61850_model.h:271
LogicalNode * LogicalDevice_getLogicalNode(LogicalDevice *self, const char *lnName)
Lookup a logical node by name that is part of the given logical device.
Definition: iec61850_model.h:246
Definition: iec61850_model.h:105
ModelNode * LogicalDevice_getChildByMmsVariableName(LogicalDevice *self, const char *mmsVariableName)
Log * logs
Definition: iec61850_model.h:179
Definition: iec61850_model.h:117
uint8_t trgOps
Definition: iec61850_model.h:278
MmsValue * mmsValue
Definition: iec61850_model.h:231
char * name
Definition: iec61850_model.h:273
ReportControlBlock * sibling
Definition: iec61850_model.h:267
uint32_t confRev
Definition: iec61850_model.h:334
Definition: iec61850_model.h:322
ModelNodeType modelType
Definition: iec61850_model.h:192
uint32_t sAddr
Definition: iec61850_model.h:233
SVControlBlock * IedModel_getSVControlBlock(IedModel *self, LogicalNode *parentLN, const char *svcbName)
LogicalNode * parent
Definition: iec61850_model.h:296
Definition: iec61850_model.h:122
Definition: iec61850_model.h:309
IEC 61850 data model element of type data object.
Definition: iec61850_model.h:207
char * name
Definition: iec61850_model.h:201
bool LogicalNode_hasUnbufferedReports(LogicalNode *self)
ModelNode * IedModel_getModelNodeByObjectReference(IedModel *self, const char *objectReference)
Lookup a model node by its object reference.
ModelNode * IedModel_getModelNodeByShortObjectReference(IedModel *self, const char *objectReference)
Lookup a model node by its short (normalized) reference.
Root node of the IEC 61850 data model. This is usually created by the model generator tool (genmodel...
Definition: iec61850_model.h:170
uint8_t editSG
Definition: iec61850_model.h:301
LogicalDevice * IedModel_getDeviceByInst(IedModel *self, const char *ldInst)
Lookup logical device (LD) by device instance name (SCL attribute "inst")
void IedModel_setIedName(IedModel *self, const char *iedName)
Set the name of the IED.
ModelNode * firstChild
Definition: iec61850_model.h:204
FunctionalConstraint
Definition: iec61850_common.h:202
uint8_t triggerOptions
Definition: iec61850_model.h:229
Definition: iec61850_model.h:113
char * name
Definition: iec61850_model.h:248
ModelNode * sibling
Definition: iec61850_model.h:195
char * dataSetName
Definition: iec61850_model.h:313
Definition: iec61850_model.h:93
SVControlBlock * svCBs
Definition: iec61850_model.h:176
ModelNodeType modelType
Definition: iec61850_model.h:208
uint64_t timestamp
Definition: iec61850_model.h:303
ModelNode * sibling
Definition: iec61850_model.h:203
Log * sibling
Definition: iec61850_model.h:292
int elementCount
Definition: iec61850_model.h:224
ModelNodeType modelType
Definition: iec61850_model.h:200
ModelNode * parent
Definition: iec61850_model.h:186
uint32_t confRef
Definition: iec61850_model.h:261
char * dataSetName
Definition: iec61850_model.h:275
DataSet * sibling
Definition: iec61850_model.h:251
Definition: iec61850_model.h:97
char * appId
Definition: iec61850_model.h:312
ModelNode * parent
Definition: iec61850_model.h:210
uint32_t intPeriod
Definition: iec61850_model.h:279
Definition: iec61850_model.h:91
char * name
Definition: iec61850_model.h:219
int ModelNode_getChildCount(ModelNode *self)
get the number of direct children of a model node
char * name
Definition: iec61850_model.h:209
char * componentName
Definition: iec61850_model.h:241
IEC 61850 data model element of type logical node.
Definition: iec61850_model.h:199
struct sMmsValue MmsValue
Definition: mms_value.h:68
int elementCount
Definition: iec61850_model.h:214
struct sDataSetEntry * sibling
Definition: iec61850_model.h:243
int noASDU
Definition: iec61850_model.h:340
Definition: iec61850_model.h:103
uint8_t options
Definition: iec61850_model.h:263