libiec61850
1.2.0
|
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... | |
enum DataAttributeType |
enum ModelNodeType |
LogicalDevice* IedModel_getDeviceByIndex | ( | IedModel * | self, |
int | index | ||
) |
Lookup logical device (LD) instance by index.
self | IedModel instance |
index | the index of the LD in the range (0 .. number of LDs - 1) |
LogicalDevice* IedModel_getDeviceByInst | ( | IedModel * | self, |
const char * | ldInst | ||
) |
Lookup logical device (LD) by device instance name (SCL attribute "inst")
self | IedModel instance |
ldInst | the logical device instance name (SCL attribute "inst") |
ModelNode* IedModel_getModelNodeByObjectReference | ( | IedModel * | self, |
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".
self | the IedModel instance that holds the model node |
objectReference | the IEC 61850 object reference |
ModelNode* IedModel_getModelNodeByShortAddress | ( | IedModel * | self, |
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.
self | the IedModel instance that holds the model node |
shortAddress |
ModelNode* IedModel_getModelNodeByShortObjectReference | ( | IedModel * | self, |
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.
self | the IedModel instance that holds the model node |
objectReference | the IEC 61850 object reference |
SVControlBlock* IedModel_getSVControlBlock | ( | IedModel * | self, |
LogicalNode * | parentLN, | ||
const char * | svcbName | ||
) |
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 !
model | the IedModel instance |
the | name of the configured IED |
LogicalNode* LogicalDevice_getLogicalNode | ( | LogicalDevice * | self, |
const char * | lnName | ||
) |
Lookup a logical node by name that is part of the given logical device.
device | the logical device instance |
lnName | the logical node name |
SettingGroupControlBlock* LogicalDevice_getSettingGroupControlBlock | ( | LogicalDevice * | self | ) |
Get the setting group control block (SGCB) of the logical device.
device | the logical device instance |
ModelNode* ModelNode_getChild | ( | ModelNode * | self, |
const char * | name | ||
) |
return a child model node
self | the model node instance |
name | the name of the child model node |
int ModelNode_getChildCount | ( | ModelNode * | self | ) |
get the number of direct children of a model node
self | the model node instance |
ModelNode* ModelNode_getChildWithFc | ( | ModelNode * | self, |
const char * | name, | ||
FunctionalConstraint | fc | ||
) |
return a child model node with a given functional constraint
Sometimes the name is not enough to identify a model node. This is the case when editable setting groups are used. In this case the setting group members have two different model nodes associated that differ in their FC (SG and SE).
self | the model node instance |
name | the name of the child model node |
fc | the functional constraint of the model node |
char* ModelNode_getObjectReference | ( | ModelNode * | self, |
char * | objectReference | ||
) |
Return the IEC 61850 object reference of a model node.
self | the model node instance |
objectReference | pointer to a buffer where to write the object reference string. If NULL is given the buffer is allocated by the function. |
ModelNodeType ModelNode_getType | ( | ModelNode * | self | ) |
Get the type of the ModelNode.
self | the ModelNode instance |