libIEC61850  1.0.1
Open-source IEC 61850 MMS/GOOSE/SV server and client library
Classes | Enumerations | Functions
iec61850_model.h File Reference
#include "iec61850_common.h"

Go to the source code of this file.

Classes

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
}
 
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)
 
void IedModel_setIedName (IedModel *self, const char *iedName)
 Set the name of the IED. More...
 
ModelNode * IedModel_getModelNodeByObjectReference (IedModel *model, 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 *model, const char *objectReference)
 Lookup a model node by its short (normalized) reference. More...
 
ModelNode * IedModel_getModelNodeByShortAddress (IedModel *model, uint32_t shortAddress)
 Lookup a model node by its short address. More...
 
LogicalNode * LogicalDevice_getLogicalNode (LogicalDevice *device, const char *lnName)
 Lookup a logical node by name that is part of the given logical device. More...
 
SettingGroupControlBlock * LogicalDevice_getSettingGroupControlBlock (LogicalDevice *device)
 Get the setting group control block (SGCB) of the logical device. More...
 
void IedModel_setAttributeValuesToNull (IedModel *iedModel)
 unset all MmsValue references in the data model More...
 
LogicalDevice * IedModel_getDevice (IedModel *model, const char *deviceName)
 
DataSet * IedModel_lookupDataSet (IedModel *model, const char *dataSetReference)
 
int IedModel_getLogicalDeviceCount (IedModel *iedModel)
 
int LogicalDevice_getLogicalNodeCount (LogicalDevice *logicalDevice)
 
ModelNode * LogicalDevice_getChildByMmsVariableName (LogicalDevice *logicalDevice, const char *mmsVariableName)
 
bool LogicalNode_hasFCData (LogicalNode *node, FunctionalConstraint fc)
 
bool LogicalNode_hasBufferedReports (LogicalNode *node)
 
bool LogicalNode_hasUnbufferedReports (LogicalNode *node)
 
DataSet * LogicalNode_getDataSet (LogicalNode *self, const char *dataSetName)
 get a data set instance More...
 
bool DataObject_hasFCData (DataObject *dataObject, FunctionalConstraint fc)
 
DataAttribute * IedModel_lookupDataAttributeByMmsValue (IedModel *model, MmsValue *value)
 

Function Documentation

bool DataObject_hasFCData ( DataObject *  dataObject,
FunctionalConstraint  fc 
)
LogicalDevice* IedModel_getDevice ( IedModel *  model,
const char *  deviceName 
)
int IedModel_getLogicalDeviceCount ( IedModel *  iedModel)
DataAttribute* IedModel_lookupDataAttributeByMmsValue ( IedModel *  model,
MmsValue value 
)
DataSet* IedModel_lookupDataSet ( IedModel *  model,
const char *  dataSetReference 
)
void IedModel_setAttributeValuesToNull ( IedModel *  iedModel)

unset all MmsValue references in the data model

Parameters
modelthe IedModel instance that holds the model node
ModelNode* LogicalDevice_getChildByMmsVariableName ( LogicalDevice *  logicalDevice,
const char *  mmsVariableName 
)
int LogicalDevice_getLogicalNodeCount ( LogicalDevice *  logicalDevice)
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 *  node)
bool LogicalNode_hasFCData ( LogicalNode *  node,
FunctionalConstraint  fc 
)
bool LogicalNode_hasUnbufferedReports ( LogicalNode *  node)