libiec61850  1.2.0
Data Structures | Enumerations | Functions
iec61850_model.h File Reference
#include "iec61850_common.h"

Go to the source code of this file.

Data Structures

struct  IedModel
 Root node of the IEC 61850 data model. This is usually created by the model generator tool (genmodel.jar) More...
 
struct  LogicalDevice
 IEC 61850 data model element of type logical device. More...
 
struct  ModelNode
 abstract base type for IEC 61850 data model nodes More...
 
struct  LogicalNode
 IEC 61850 data model element of type logical node. More...
 
struct  DataObject
 IEC 61850 data model element of type data object. More...
 
struct  DataAttribute
 IEC 61850 data model element of type data attribute. More...
 
struct  DataSetEntry
 
struct  DataSet
 
struct  ReportControlBlock
 
struct  LogControlBlock
 
struct  Log
 
struct  SettingGroupControlBlock
 IEC 61850 data model of setting group control block (SGCB) More...
 
struct  GSEControlBlock
 
struct  SVControlBlock
 

Enumerations

enum  DataAttributeType {
  IEC61850_BOOLEAN = 0, IEC61850_INT8 = 1, IEC61850_INT16 = 2, IEC61850_INT32 = 3,
  IEC61850_INT64 = 4, IEC61850_INT128 = 5, IEC61850_INT8U = 6, IEC61850_INT16U = 7,
  IEC61850_INT24U = 8, IEC61850_INT32U = 9, IEC61850_FLOAT32 = 10, IEC61850_FLOAT64 = 11,
  IEC61850_ENUMERATED = 12, IEC61850_OCTET_STRING_64 = 13, IEC61850_OCTET_STRING_6 = 14, IEC61850_OCTET_STRING_8 = 15,
  IEC61850_VISIBLE_STRING_32 = 16, IEC61850_VISIBLE_STRING_64 = 17, IEC61850_VISIBLE_STRING_65 = 18, IEC61850_VISIBLE_STRING_129 = 19,
  IEC61850_VISIBLE_STRING_255 = 20, IEC61850_UNICODE_STRING_255 = 21, IEC61850_TIMESTAMP = 22, IEC61850_QUALITY = 23,
  IEC61850_CHECK = 24, IEC61850_CODEDENUM = 25, IEC61850_GENERIC_BITSTRING = 26, IEC61850_CONSTRUCTED = 27,
  IEC61850_ENTRY_TIME = 28, IEC61850_PHYCOMADDR = 29, IEC61850_CURRENCY = 30, IEC61850_OPTFLDS = 31,
  IEC61850_TRGOPS = 32
}
 
enum  ModelNodeType { LogicalDeviceModelType, LogicalNodeModelType, DataObjectModelType, DataAttributeModelType }
 

Functions

int ModelNode_getChildCount (ModelNode *self)
 get the number of direct children of a model node More...
 
ModelNode * ModelNode_getChild (ModelNode *self, const char *name)
 return a child model node More...
 
ModelNode * ModelNode_getChildWithFc (ModelNode *self, const char *name, FunctionalConstraint fc)
 return a child model node with a given functional constraint More...
 
char * ModelNode_getObjectReference (ModelNode *self, char *objectReference)
 Return the IEC 61850 object reference of a model node. More...
 
ModelNodeType ModelNode_getType (ModelNode *self)
 Get the type of the ModelNode. More...
 
void IedModel_setIedName (IedModel *self, const char *iedName)
 Set the name of the IED. More...
 
ModelNode * IedModel_getModelNodeByObjectReference (IedModel *self, const char *objectReference)
 Lookup a model node by its object reference. More...
 
SVControlBlock * IedModel_getSVControlBlock (IedModel *self, LogicalNode *parentLN, const char *svcbName)
 
ModelNode * IedModel_getModelNodeByShortObjectReference (IedModel *self, const char *objectReference)
 Lookup a model node by its short (normalized) reference. More...
 
ModelNode * IedModel_getModelNodeByShortAddress (IedModel *self, uint32_t shortAddress)
 Lookup a model node by its short address. More...
 
LogicalDevice * IedModel_getDeviceByInst (IedModel *self, const char *ldInst)
 Lookup logical device (LD) by device instance name (SCL attribute "inst") More...
 
LogicalDevice * IedModel_getDeviceByIndex (IedModel *self, int index)
 Lookup logical device (LD) instance by index. More...
 
LogicalNode * LogicalDevice_getLogicalNode (LogicalDevice *self, const char *lnName)
 Lookup a logical node by name that is part of the given logical device. More...
 
SettingGroupControlBlock * LogicalDevice_getSettingGroupControlBlock (LogicalDevice *self)
 Get the setting group control block (SGCB) of the logical device. More...
 
void IedModel_setAttributeValuesToNull (IedModel *self)
 unset all MmsValue references in the data model More...
 
LogicalDevice * IedModel_getDevice (IedModel *self, const char *ldName)
 Lookup logical device (LD) by device name. More...
 
DataSet * IedModel_lookupDataSet (IedModel *self, const char *dataSetReference)
 Lookup a data set in the IED model. More...
 
DataAttribute * IedModel_lookupDataAttributeByMmsValue (IedModel *self, MmsValue *value)
 Lookup a DataAttribute instance with the corresponding MmsValue instance. More...
 
int IedModel_getLogicalDeviceCount (IedModel *self)
 Get the number of logical devices. More...
 
int LogicalDevice_getLogicalNodeCount (LogicalDevice *self)
 
ModelNode * LogicalDevice_getChildByMmsVariableName (LogicalDevice *self, const char *mmsVariableName)
 
bool LogicalNode_hasFCData (LogicalNode *self, FunctionalConstraint fc)
 
bool LogicalNode_hasBufferedReports (LogicalNode *self)
 
bool LogicalNode_hasUnbufferedReports (LogicalNode *self)
 
DataSet * LogicalNode_getDataSet (LogicalNode *self, const char *dataSetName)
 get a data set instance More...
 
bool DataObject_hasFCData (DataObject *self, FunctionalConstraint fc)
 

Function Documentation

bool DataObject_hasFCData ( DataObject *  self,
FunctionalConstraint  fc 
)
LogicalDevice* IedModel_getDevice ( IedModel *  self,
const char *  ldName 
)

Lookup logical device (LD) by device name.

Parameters
selfIedModel instance
ldInstthe logical device name (as it is seen from the protocol side - MMS domain name)
Returns
The matching LogicalDevice instance
int IedModel_getLogicalDeviceCount ( IedModel *  self)

Get the number of logical devices.

Parameters
selfIedModel instance
Returns
the number of logical devices
DataAttribute* IedModel_lookupDataAttributeByMmsValue ( IedModel *  self,
MmsValue value 
)

Lookup a DataAttribute instance with the corresponding MmsValue instance.

Parameters
selfIedModel instance
valuethe MmsValue instance (from the MMS value cache)
Returns
the matching DataAttribute instance
DataSet* IedModel_lookupDataSet ( IedModel *  self,
const char *  dataSetReference 
)

Lookup a data set in the IED model.

Parameters
selfIedModel instance
dataSetReferenceMMS mapping object reference! e.g. ied1Inverter/LLN0$dataset1
Returns
The matching DataSet instance
void IedModel_setAttributeValuesToNull ( IedModel *  self)

unset all MmsValue references in the data model

Parameters
selfthe IedModel instance that holds the model node
ModelNode* LogicalDevice_getChildByMmsVariableName ( LogicalDevice *  self,
const char *  mmsVariableName 
)
int LogicalDevice_getLogicalNodeCount ( LogicalDevice *  self)
DataSet* LogicalNode_getDataSet ( LogicalNode *  self,
const char *  dataSetName 
)

get a data set instance

Parameters
selfthe logical node instance of the data set
dataSetNamethe name of the data set
Returns
the data set instance or NULL if the data set does not exist
bool LogicalNode_hasBufferedReports ( LogicalNode *  self)
bool LogicalNode_hasFCData ( LogicalNode *  self,
FunctionalConstraint  fc 
)
bool LogicalNode_hasUnbufferedReports ( LogicalNode *  self)