libIEC61850  0.8.2
Open-source IEC 61850 MMS/GOOSE server and client library
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Enumerations | Functions
General data model definitions, access and iteration functions

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  SettingGroupControlBlock
 IEC 61850 data model of setting group control block (SGCB) More...
 
struct  PhyComAddress
 
struct  GSEControlBlock
 

Enumerations

enum  DataAttributeType {
  BOOLEAN = 0, INT8 = 1, INT16 = 2, INT32 = 3,
  INT64 = 4, INT128 = 5, INT8U = 6, INT16U = 7,
  INT24U = 8, INT32U = 9, FLOAT32 = 10, FLOAT64 = 11,
  ENUMERATED = 12, OCTET_STRING_64 = 13, OCTET_STRING_6 = 14, OCTET_STRING_8 = 15,
  VISIBLE_STRING_32 = 16, VISIBLE_STRING_64 = 17, VISIBLE_STRING_65 = 18, VISIBLE_STRING_129 = 19,
  VISIBLE_STRING_255 = 20, UNICODE_STRING_255 = 21, TIMESTAMP = 22, QUALITY = 23,
  CHECK = 24, CODEDENUM = 25, GENERIC_BITSTRING = 26, CONSTRUCTED = 27,
  ENTRY_TIME = 28, PHYCOMADDR = 29
}
 
enum  ModelNodeType { LogicalDeviceModelType, LogicalNodeModelType, DataObjectModelType, DataAttributeModelType }
 

Functions

int ModelNode_getChildCount (ModelNode *modelNode)
 get the number of direct children of a model node More...
 
ModelNode * ModelNode_getChild (ModelNode *modelNode, const char *name)
 return a child model node More...
 
char * ModelNode_getObjectReference (ModelNode *node, char *objectReference)
 Return the IEC 61850 object reference of a model node. More...
 
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...
 
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...
 

Detailed Description

Enumeration Type Documentation

Enumerator
BOOLEAN 
INT8 
INT16 
INT32 
INT64 
INT128 
INT8U 
INT16U 
INT24U 
INT32U 
FLOAT32 
FLOAT64 
ENUMERATED 
OCTET_STRING_64 
OCTET_STRING_6 
OCTET_STRING_8 
VISIBLE_STRING_32 
VISIBLE_STRING_64 
VISIBLE_STRING_65 
VISIBLE_STRING_129 
VISIBLE_STRING_255 
UNICODE_STRING_255 
TIMESTAMP 
QUALITY 
CHECK 
CODEDENUM 
GENERIC_BITSTRING 
CONSTRUCTED 
ENTRY_TIME 
PHYCOMADDR 
Enumerator
LogicalDeviceModelType 
LogicalNodeModelType 
DataObjectModelType 
DataAttributeModelType 

Function Documentation

ModelNode* IedModel_getModelNodeByObjectReference ( IedModel *  model,
const char *  objectReference 
)

Lookup a model node by its object reference.

This function uses the full logical device name as part of the object reference as it happens to appear on the wire. E.g. if IED name in SCL file would be "IED1" and the logical device "WD1" the resulting LD name would be "IED1WD".

Parameters
modelthe IedModel instance that holds the model node
objectReferencethe IEC 61850 object reference
Returns
the model node instance or NULL if model node does not exist.
ModelNode* IedModel_getModelNodeByShortAddress ( IedModel *  model,
uint32_t  shortAddress 
)

Lookup a model node by its short address.

Short address is a 32 bit unsigned integer as specified in the "sAddr" attribute of the ICD file or in the configuration file.

Parameters
modelthe IedModel instance that holds the model node
shortAddress
Returns
the model node instance or NULL if model node does not exist.
ModelNode* IedModel_getModelNodeByShortObjectReference ( IedModel *  model,
const char *  objectReference 
)

Lookup a model node by its short (normalized) reference.

This version uses the object reference that does not contain the IED name as part of the logical device name. This function is useful for devices where the IED name can be configured.

Parameters
modelthe IedModel instance that holds the model node
objectReferencethe IEC 61850 object reference
Returns
the model node instance or NULL if model node does not exist.
void IedModel_setIedName ( IedModel *  self,
const char *  iedName 
)

Set the name of the IED.

This will change the default name (usualy "TEMPLATE") to a user configured values. NOTE: This function has to be called before IedServer_create !

Parameters
modelthe IedModel instance
thename of the configured IED
LogicalNode* LogicalDevice_getLogicalNode ( LogicalDevice *  device,
const char *  lnName 
)

Lookup a logical node by name that is part of the given logical device.

Parameters
devicethe logical device instance
lnNamethe logical node name
Returns
the logical device instance or NULL if it does not exist
SettingGroupControlBlock* LogicalDevice_getSettingGroupControlBlock ( LogicalDevice *  device)

Get the setting group control block (SGCB) of the logical device.

Parameters
devicethe logical device instance
Returns
the SGCB instance or NULL if no SGCB is available
ModelNode* ModelNode_getChild ( ModelNode *  modelNode,
const char *  name 
)

return a child model node

Parameters
nodethe model node instance
thename of the child model node
Returns
the model node instance or NULL if model node does not exist.
int ModelNode_getChildCount ( ModelNode *  modelNode)

get the number of direct children of a model node

Parameters
nodethe model node instance
Returns
the number of children of the model node ΒΈ
char* ModelNode_getObjectReference ( ModelNode *  node,
char *  objectReference 
)

Return the IEC 61850 object reference of a model node.

Parameters
nodethe model node instance
objectReferencepointer to a buffer where to write the object reference string. If NULL is given the buffer is allocated by the function.
Returns
the object reference string