libIEC61850
0.8.3
Open-source IEC 61850 MMS/GOOSE server and client library
|
Functions | |
void | IedServer_lockDataModel (IedServer self) |
Lock the MMS server data model. More... | |
void | IedServer_unlockDataModel (IedServer self) |
Unlock the MMS server data model and process pending client requests. More... | |
MmsValue * | IedServer_getAttributeValue (IedServer self, DataAttribute *dataAttribute) |
Get data attribute value. More... | |
bool | IedServer_getBooleanAttributeValue (IedServer self, DataAttribute *dataAttribute) |
int32_t | IedServer_getInt32AttributeValue (IedServer self, DataAttribute *dataAttribute) |
int64_t | IedServer_getInt64AttributeValue (IedServer self, DataAttribute *dataAttribute) |
uint32_t | IedServer_getUInt32AttributeValue (IedServer self, DataAttribute *dataAttribute) |
float | IedServer_getFloatAttributeValue (IedServer self, DataAttribute *dataAttribute) |
uint64_t | IedServer_getUTCTimeAttributeValue (IedServer self, DataAttribute *dataAttribute) |
uint32_t | IedServer_getBitStringAttributeValue (IedServer self, DataAttribute *dataAttribute) |
char * | IedServer_getStringAttributeValue (IedServer self, DataAttribute *dataAttribute) |
MmsValue * | IedServer_getFunctionalConstrainedData (IedServer self, DataObject *dataObject, FunctionalConstraint fc) |
Get the MmsValue object related to a FunctionalConstrainedData object. More... | |
void | IedServer_updateAttributeValue (IedServer self, DataAttribute *dataAttribute, MmsValue *value) |
Update the MmsValue object of an IEC 61850 data attribute. More... | |
void | IedServer_updateFloatAttributeValue (IedServer self, DataAttribute *dataAttribute, float value) |
Update the value of an IEC 61850 float data attribute. More... | |
void | IedServer_updateInt32AttributeValue (IedServer self, DataAttribute *dataAttribute, int32_t value) |
Update the value of an IEC 61850 integer32 data attribute. More... | |
void | IedServer_updateInt64AttributeValue (IedServer self, DataAttribute *dataAttribute, int64_t value) |
Update the value of an IEC 61850 integer64 data attribute (like BCR actVal) More... | |
void | IedServer_updateUnsignedAttributeValue (IedServer self, DataAttribute *dataAttribute, uint32_t value) |
Update the value of an IEC 61850 unsigned integer data attribute. More... | |
void | IedServer_updateBitStringAttributeValue (IedServer self, DataAttribute *dataAttribute, uint32_t value) |
Update the value of an IEC 61850 bit string data attribute. More... | |
void | IedServer_updateBooleanAttributeValue (IedServer self, DataAttribute *dataAttribute, bool value) |
Update the value of an IEC 61850 boolean data attribute. More... | |
void | IedServer_updateVisibleStringAttributeValue (IedServer self, DataAttribute *dataAttribute, char *value) |
Update the value of an IEC 61850 visible string data attribute. More... | |
void | IedServer_updateUTCTimeAttributeValue (IedServer self, DataAttribute *dataAttribute, uint64_t value) |
Update the value of an IEC 61850 UTC time (timestamp) data attribute. More... | |
void | IedServer_updateQuality (IedServer self, DataAttribute *dataAttribute, Quality quality) |
Update a quality ("q") IEC 61850 data attribute. More... | |
Get data attribute value.
Get the MmsValue object of an MMS Named Variable that is part of the device model. You should not manipulate the received object directly. Instead you should use the IedServer_updateValue method.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
uint32_t IedServer_getBitStringAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
bool IedServer_getBooleanAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
float IedServer_getFloatAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
MmsValue* IedServer_getFunctionalConstrainedData | ( | IedServer | self, |
DataObject * | dataObject, | ||
FunctionalConstraint | fc | ||
) |
Get the MmsValue object related to a FunctionalConstrainedData object.
Get the MmsValue from the server cache that is associated with the Functional Constrained Data (FCD) object that is specified by the DataObject and the given Function Constraint (FC). Accessing the value will directly influence the values presented by the server. This kind of direct access will also bypass the report notification mechanism (i.e. changes will not cause a report!). Therefore this function should be used with care. It could be useful to access arrays of DataObjects.
self | the instance of IedServer to operate on. |
dataObject | the data object to specify the FCD |
fc | the FC to specify the FCD |
int32_t IedServer_getInt32AttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
int64_t IedServer_getInt64AttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
char* IedServer_getStringAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
uint32_t IedServer_getUInt32AttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
uint64_t IedServer_getUTCTimeAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute | ||
) |
void IedServer_lockDataModel | ( | IedServer | self) |
Lock the MMS server data model.
Client requests will be postponed until the lock is removed.
NOTE: This method should never be called inside of a library callback function. In the context of a library callback the data model is always already locked! Calling this function inside of a library callback may lead to a deadlock condition.
self | the instance of IedServer to operate on. |
void IedServer_unlockDataModel | ( | IedServer | self) |
Unlock the MMS server data model and process pending client requests.
NOTE: This method should never be called inside of a library callback function. In the context of a library callback the data model is always already locked!
self | the instance of IedServer to operate on. |
void IedServer_updateAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
MmsValue * | value | ||
) |
Update the MmsValue object of an IEC 61850 data attribute.
The data attribute handle of type DataAttribute* are imported with static_model.h in the case when the static data model is used. You should use this function instead of directly operating on the MmsValue instance that is hold by the MMS server. Otherwise the IEC 61850 server is not aware of the changed value and will e.g. not generate a report.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | MmsValue object used to update the value cached by the server. |
void IedServer_updateBitStringAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
uint32_t | value | ||
) |
Update the value of an IEC 61850 bit string data attribute.
Update the value of a bit string data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new bit string integer value of the data attribute. |
void IedServer_updateBooleanAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
bool | value | ||
) |
Update the value of an IEC 61850 boolean data attribute.
Update the value of a boolean data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new boolean value of the data attribute. |
void IedServer_updateFloatAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
float | value | ||
) |
Update the value of an IEC 61850 float data attribute.
Update the value of a float data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new float value of the data attribute. |
void IedServer_updateInt32AttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
int32_t | value | ||
) |
Update the value of an IEC 61850 integer32 data attribute.
Update the value of a integer data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new integer value of the data attribute. |
void IedServer_updateInt64AttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
int64_t | value | ||
) |
Update the value of an IEC 61850 integer64 data attribute (like BCR actVal)
Update the value of a integer data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new 64 bit integer value of the data attribute. |
Update a quality ("q") IEC 61850 data attribute.
This is a specialized function to handle Quality data attributes. It can be used instead of the more generic IedServer_updateAttributeValue function.
This function will also check if the quality change (qchg) trigger condition is satisfied and inform a report control block accordingly.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
quality | the new quality value |
void IedServer_updateUnsignedAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
uint32_t | value | ||
) |
Update the value of an IEC 61850 unsigned integer data attribute.
Update the value of a unsigned data attribute without handling with MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new unsigned integer value of the data attribute. |
void IedServer_updateUTCTimeAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
uint64_t | value | ||
) |
Update the value of an IEC 61850 UTC time (timestamp) data attribute.
Update the value of a UTC time data attribute without handling MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new UTC time value of the data attribute. |
void IedServer_updateVisibleStringAttributeValue | ( | IedServer | self, |
DataAttribute * | dataAttribute, | ||
char * | value | ||
) |
Update the value of an IEC 61850 visible string data attribute.
Update the value of a visible string data attribute without handling MmsValue instances.
This function will also check if a trigger condition is satisfied in the case when a report or GOOSE control block is enabled.
self | the instance of IedServer to operate on. |
dataAttribute | the data attribute handle |
value | the new visible string value of the data attribute. |