libiec61850  1.6.0
Data Structures | Macros | Typedefs | Enumerations | Functions
iec61850_server.h File Reference
#include "mms_server.h"
#include "iec61850_dynamic_model.h"
#include "iec61850_model.h"
#include "hal_filesystem.h"
#include "iso_connection_parameters.h"
#include "iec61850_config_file_parser.h"

Go to the source code of this file.

Data Structures

struct  IedServerConfig
 Configuration object to configure IEC 61850 stack features. More...
 

Macros

#define IEC61850_REPORTSETTINGS_RPT_ID   1
 
#define IEC61850_REPORTSETTINGS_BUF_TIME   2
 
#define IEC61850_REPORTSETTINGS_DATSET   4
 
#define IEC61850_REPORTSETTINGS_TRG_OPS   8
 
#define IEC61850_REPORTSETTINGS_OPT_FIELDS   16
 
#define IEC61850_REPORTSETTINGS_INTG_PD   32
 
#define IEC61850_SVCB_EVENT_ENABLE   1
 
#define IEC61850_SVCB_EVENT_DISABLE   0
 
#define IEC61850_GOCB_EVENT_ENABLE   1
 
#define IEC61850_GOCB_EVENT_DISABLE   0
 

Typedefs

typedef struct sIedServer * IedServer
 
typedef struct sClientConnection * ClientConnection
 
typedef void(* IedConnectionIndicationHandler) (IedServer self, ClientConnection connection, bool connected, void *parameter)
 User provided callback function that is invoked whenever a new client connects or an existing connection is closed or detected as lost. More...
 
typedef bool(* ActiveSettingGroupChangedHandler) (void *parameter, SettingGroupControlBlock *sgcb, uint8_t newActSg, ClientConnection connection)
 Callback handler that is invoked when the active setting group is about to be changed by an external client. More...
 
typedef bool(* EditSettingGroupChangedHandler) (void *parameter, SettingGroupControlBlock *sgcb, uint8_t newEditSg, ClientConnection connection)
 Callback handler that is invoked when the edit setting group is about to be changed by an external client. More...
 
typedef void(* EditSettingGroupConfirmationHandler) (void *parameter, SettingGroupControlBlock *sgcb, uint8_t editSg)
 Callback handler that is invoked when the edit setting group has been confirmed by an external client. More...
 
typedef void * ControlAction
 
typedef CheckHandlerResult(* ControlPerformCheckHandler) (ControlAction action, void *parameter, MmsValue *ctlVal, bool test, bool interlockCheck)
 Control model callback to perform the static tests (optional). More...
 
typedef ControlHandlerResult(* ControlWaitForExecutionHandler) (ControlAction action, void *parameter, MmsValue *ctlVal, bool test, bool synchroCheck)
 Control model callback to perform the dynamic tests (optional). More...
 
typedef ControlHandlerResult(* ControlHandler) (ControlAction action, void *parameter, MmsValue *ctlVal, bool test)
 Control model callback to actually perform the control operation. More...
 
typedef void(* ControlSelectStateChangedHandler) (ControlAction action, void *parameter, bool isSelected, SelectStateChangedReason reason)
 Control model callback that is called when the select state of a control changes. More...
 
typedef void(* IedServer_RCBEventHandler) (void *parameter, ReportControlBlock *rcb, ClientConnection connection, IedServer_RCBEventType event, const char *parameterName, MmsDataAccessError serviceError)
 Callback that is called in case of RCB event. More...
 
typedef void(* SVCBEventHandler) (SVControlBlock *svcb, int event, void *parameter)
 callback handler for SVCB events. More...
 
typedef struct sMmsGooseControlBlock * MmsGooseControlBlock
 
typedef void(* GoCBEventHandler) (MmsGooseControlBlock goCb, int event, void *parameter)
 
typedef MmsDataAccessError(* WriteAccessHandler) (DataAttribute *dataAttribute, MmsValue *value, ClientConnection connection, void *parameter)
 callback handler to intercept/control client write access to data attributes More...
 
typedef MmsDataAccessError(* ReadAccessHandler) (LogicalDevice *ld, LogicalNode *ln, DataObject *dataObject, FunctionalConstraint fc, ClientConnection connection, void *parameter)
 callback handler to control client read access to data attributes More...
 
typedef bool(* IedServer_DataSetAccessHandler) (void *parameter, ClientConnection connection, IedServer_DataSetOperation operation, const char *datasetRef)
 Callback that is called when the client is calling a dataset operation (create, delete, read, write, list directory) More...
 
typedef bool(* IedServer_DirectoryAccessHandler) (void *parameter, ClientConnection connection, IedServer_DirectoryCategory category, LogicalDevice *logicalDevice)
 
typedef bool(* IedServer_ListObjectsAccessHandler) (void *parameter, ClientConnection connection, ACSIClass acsiClass, LogicalDevice *ld, LogicalNode *ln, const char *objectName, const char *subObjectName, FunctionalConstraint fc)
 Callback that is called when a client is invoking a list objects service. More...
 
typedef bool(* IedServer_ControlBlockAccessHandler) (void *parameter, ClientConnection connection, ACSIClass acsiClass, LogicalDevice *ld, LogicalNode *ln, const char *objectName, const char *subObjectName, IedServer_ControlBlockAccessType accessType)
 Callback that is called when a client is invoking a read or write service to a control block or log. More...
 

Enumerations

enum  CheckHandlerResult {
  CONTROL_ACCEPTED = -1 , CONTROL_WAITING_FOR_SELECT = 0 , CONTROL_HARDWARE_FAULT = 1 , CONTROL_TEMPORARILY_UNAVAILABLE = 2 ,
  CONTROL_OBJECT_ACCESS_DENIED = 3 , CONTROL_OBJECT_UNDEFINED = 4 , CONTROL_VALUE_INVALID = 11
}
 result code for ControlPerformCheckHandler More...
 
enum  ControlHandlerResult { CONTROL_RESULT_FAILED = 0 , CONTROL_RESULT_OK = 1 , CONTROL_RESULT_WAITING = 2 }
 result codes for control handler (ControlWaitForExecutionHandler and ControlHandler) More...
 
enum  SelectStateChangedReason {
  SELECT_STATE_REASON_SELECTED , SELECT_STATE_REASON_CANCELED , SELECT_STATE_REASON_TIMEOUT , SELECT_STATE_REASON_OPERATED ,
  SELECT_STATE_REASON_OPERATE_FAILED , SELECT_STATE_REASON_DISCONNECTED
}
 Reason why a select state of a control object changed. More...
 
enum  IedServer_RCBEventType {
  RCB_EVENT_GET_PARAMETER , RCB_EVENT_SET_PARAMETER , RCB_EVENT_UNRESERVED , RCB_EVENT_RESERVED ,
  RCB_EVENT_ENABLE , RCB_EVENT_DISABLE , RCB_EVENT_GI , RCB_EVENT_PURGEBUF ,
  RCB_EVENT_OVERFLOW , RCB_EVENT_REPORT_CREATED
}
 
enum  AccessPolicy { ACCESS_POLICY_ALLOW , ACCESS_POLICY_DENY }
 
enum  IedServer_DataSetOperation {
  DATASET_CREATE , DATASET_DELETE , DATASET_READ , DATASET_WRITE ,
  DATASET_GET_DIRECTORY
}
 
enum  IedServer_DirectoryCategory { DIRECTORY_CAT_LD_LIST , DIRECTORY_CAT_DATA_LIST , DIRECTORY_CAT_DATASET_LIST , DIRECTORY_CAT_LOG_LIST }
 
enum  IedServer_ControlBlockAccessType { IEC61850_CB_ACCESS_TYPE_READ , IEC61850_CB_ACCESS_TYPE_WRITE }
 

Functions

LIB61850_API IedServerConfig IedServerConfig_create (void)
 Create a new configuration object. More...
 
LIB61850_API void IedServerConfig_destroy (IedServerConfig self)
 Destroy the configuration object. More...
 
LIB61850_API void IedServerConfig_setEdition (IedServerConfig self, uint8_t edition)
 Set the IEC 61850 standard edition to use (default is edition 2) More...
 
LIB61850_API uint8_t IedServerConfig_getEdition (IedServerConfig self)
 Get the configued IEC 61850 standard edition. More...
 
LIB61850_API void IedServerConfig_setReportBufferSize (IedServerConfig self, int reportBufferSize)
 Set the report buffer size for buffered reporting. More...
 
LIB61850_API int IedServerConfig_getReportBufferSize (IedServerConfig self)
 Gets the report buffer size for buffered reporting. More...
 
LIB61850_API void IedServerConfig_setReportBufferSizeForURCBs (IedServerConfig self, int reportBufferSize)
 Set the report buffer size for unbuffered reporting. More...
 
LIB61850_API int IedServerConfig_getReportBufferSizeForURCBs (IedServerConfig self)
 Gets the report buffer size for unbuffered reporting. More...
 
LIB61850_API void IedServerConfig_setMaxMmsConnections (IedServerConfig self, int maxConnections)
 Set the maximum number of MMS (TCP) connections the server accepts. More...
 
LIB61850_API int IedServerConfig_getMaxMmsConnections (IedServerConfig self)
 Get the maximum number of MMS (TCP) connections the server accepts. More...
 
LIB61850_API void IedServerConfig_setSyncIntegrityReportTimes (IedServerConfig self, bool enable)
 Enable synchronized integrity report times. More...
 
LIB61850_API bool IedServerConfig_getSyncIntegrityReportTimes (IedServerConfig self)
 Check if synchronized integrity report times are enabled. More...
 
LIB61850_API void IedServerConfig_setFileServiceBasePath (IedServerConfig self, const char *basepath)
 Set the basepath of the file services. More...
 
LIB61850_API const char * IedServerConfig_getFileServiceBasePath (IedServerConfig self)
 Get the basepath of the file services. More...
 
LIB61850_API void IedServerConfig_enableFileService (IedServerConfig self, bool enable)
 Enable/disable the MMS file service support. More...
 
LIB61850_API bool IedServerConfig_isFileServiceEnabled (IedServerConfig self)
 Is the MMS file service enabled or disabled. More...
 
LIB61850_API void IedServerConfig_enableDynamicDataSetService (IedServerConfig self, bool enable)
 Enable/disable the dynamic data set service for MMS. More...
 
LIB61850_API bool IedServerConfig_isDynamicDataSetServiceEnabled (IedServerConfig self)
 Is the dynamic data set service for MMS enabled or disabled. More...
 
LIB61850_API void IedServerConfig_setMaxAssociationSpecificDataSets (IedServerConfig self, int maxDataSets)
 Set the maximum allowed number of association specific (non-permanent) data sets. More...
 
LIB61850_API int IedServerConfig_getMaxAssociationSpecificDataSets (IedServerConfig self)
 Get the maximum allowed number of association specific (non-permanent) data sets. More...
 
LIB61850_API void IedServerConfig_setMaxDomainSpecificDataSets (IedServerConfig self, int maxDataSets)
 Set the maximum allowed number of domain specific (permanent) data sets. More...
 
LIB61850_API int IedServerConfig_getMaxDomainSpecificDataSets (IedServerConfig self)
 Get the maximum allowed number of domain specific (permanent) data sets. More...
 
LIB61850_API void IedServerConfig_setMaxDataSetEntries (IedServerConfig self, int maxDataSetEntries)
 Set the maximum number of entries in dynamic data sets. More...
 
LIB61850_API int IedServerConfig_getMaxDatasSetEntries (IedServerConfig self)
 Get the maximum number of entries in dynamic data sets. More...
 
LIB61850_API void IedServerConfig_enableLogService (IedServerConfig self, bool enable)
 Enable/disable the log service for MMS. More...
 
LIB61850_API void IedServerConfig_enableEditSG (IedServerConfig self, bool enable)
 Enable/disable the EditSG service to allow clients to change setting groups (default is enabled) More...
 
LIB61850_API void IedServerConfig_enableResvTmsForSGCB (IedServerConfig self, bool enable)
 Enable/disable the SGCB.ResvTms when EditSG is enabled. More...
 
LIB61850_API void IedServerConfig_enableResvTmsForBRCB (IedServerConfig self, bool enable)
 Enable/disable the presence of BRCB.ResvTms (default value is true) More...
 
LIB61850_API bool IedServerConfig_isResvTmsForBRCBEnabled (IedServerConfig self)
 ResvTms for BRCB enabled (visible) More...
 
LIB61850_API void IedServerConfig_enableOwnerForRCB (IedServerConfig self, bool enable)
 Enable/disable the presence of owner in report control blocks (default value is false);. More...
 
LIB61850_API bool IedServerConfig_isOwnerForRCBEnabled (IedServerConfig self)
 Owner for RCBs enabled (visible) More...
 
LIB61850_API void IedServerConfig_useIntegratedGoosePublisher (IedServerConfig self, bool enable)
 Enable/disable using the integrated GOOSE publisher for configured GoCBs. More...
 
LIB61850_API bool IedServerConfig_isLogServiceEnabled (IedServerConfig self)
 Is the log service for MMS enabled or disabled. More...
 
LIB61850_API void IedServerConfig_setReportSetting (IedServerConfig self, uint8_t setting, bool isDyn)
 Make a configurable report setting writeable or read-only. More...
 
LIB61850_API bool IedServerConfig_getReportSetting (IedServerConfig self, uint8_t setting)
 Check if a configurable report setting is writable or read-only. More...
 
LIB61850_API IedServer IedServer_create (IedModel *dataModel)
 Create a new IedServer instance. More...
 
LIB61850_API IedServer IedServer_createWithTlsSupport (IedModel *dataModel, TLSConfiguration tlsConfiguration)
 Create a new IedServer with TLS support. More...
 
LIB61850_API IedServer IedServer_createWithConfig (IedModel *dataModel, TLSConfiguration tlsConfiguration, IedServerConfig serverConfiguration)
 Create new new IedServer with extended configurations parameters. More...
 
LIB61850_API void IedServer_destroy (IedServer self)
 Destroy an IedServer instance and release all resources (memory, TCP sockets) More...
 
LIB61850_API bool IedServer_addAccessPoint (IedServer self, const char *ipAddr, int tcpPort, TLSConfiguration tlsConfiguration)
 Add a new local access point (server will listen to provided IP/port combination) More...
 
LIB61850_API void IedServer_setLocalIpAddress (IedServer self, const char *localIpAddress)
 Set the local IP address to listen on. More...
 
LIB61850_API void IedServer_setServerIdentity (IedServer self, const char *vendor, const char *model, const char *revision)
 Set the identify for the MMS identify service. More...
 
LIB61850_API void IedServer_setFilestoreBasepath (IedServer self, const char *basepath)
 Set the virtual filestore basepath for the MMS file services. More...
 
LIB61850_API void IedServer_setLogStorage (IedServer self, const char *logRef, LogStorage logStorage)
 Assign a LogStorage instance to a log reference. More...
 
LIB61850_API void IedServer_start (IedServer self, int tcpPort)
 Start handling client connections. More...
 
LIB61850_API void IedServer_stop (IedServer self)
 Stop handling client connections. More...
 
LIB61850_API void IedServer_startThreadless (IedServer self, int tcpPort)
 Start handling client connection for non-threaded mode. More...
 
LIB61850_API int IedServer_waitReady (IedServer self, unsigned int timeoutMs)
 Wait until a server connection is ready (with timeout) More...
 
LIB61850_API void IedServer_processIncomingData (IedServer self)
 handle incoming TCP data in non-threaded mode More...
 
LIB61850_API void IedServer_performPeriodicTasks (IedServer self)
 perform periodic background tasks in non-threaded mode More...
 
LIB61850_API void IedServer_stopThreadless (IedServer self)
 Stop handling client connections for non-threaded mode. More...
 
LIB61850_API IedModel * IedServer_getDataModel (IedServer self)
 Return the data model of the server. More...
 
LIB61850_API bool IedServer_isRunning (IedServer self)
 Check if IedServer instance is listening for client connections. More...
 
LIB61850_API int IedServer_getNumberOfOpenConnections (IedServer self)
 Get number of open MMS connections. More...
 
LIB61850_API MmsServer IedServer_getMmsServer (IedServer self)
 Get access to the underlying MmsServer instance. More...
 
LIB61850_API void IedServer_enableGoosePublishing (IedServer self)
 Enable all GOOSE control blocks. More...
 
LIB61850_API void IedServer_disableGoosePublishing (IedServer self)
 Disable all GOOSE control blocks. More...
 
LIB61850_API void IedServer_setGooseInterfaceId (IedServer self, const char *interfaceId)
 Set the Ethernet interface to be used by GOOSE publishing. More...
 
LIB61850_API void IedServer_setGooseInterfaceIdEx (IedServer self, LogicalNode *ln, const char *gcbName, const char *interfaceId)
 Set the Ethernet interface to be used by GOOSE publishing. More...
 
LIB61850_API void IedServer_useGooseVlanTag (IedServer self, LogicalNode *ln, const char *gcbName, bool useVlanTag)
 Enable/disable the use of VLAN tags in GOOSE messages. More...
 
LIB61850_API void IedServer_setTimeQuality (IedServer self, bool leapSecondKnown, bool clockFailure, bool clockNotSynchronized, int subsecondPrecision)
 Set the time quality for all timestamps internally generated by this IedServer instance. More...
 
LIB61850_API void IedServer_setAuthenticator (IedServer self, AcseAuthenticator authenticator, void *authenticatorParameter)
 set the authenticator for this server More...
 
LIB61850_API const char * ClientConnection_getPeerAddress (ClientConnection self)
 get the peer address of this connection as string More...
 
LIB61850_API const char * ClientConnection_getLocalAddress (ClientConnection self)
 get the local address of this connection as string More...
 
LIB61850_API void * ClientConnection_getSecurityToken (ClientConnection self)
 Get the security token associated with this connection. More...
 
LIB61850_API void IedServer_setConnectionIndicationHandler (IedServer self, IedConnectionIndicationHandler handler, void *parameter)
 set a callback function that will be called on connection events (open or close). More...
 
void IedServer_ignoreClientRequests (IedServer self, bool enable)
 Ignore all requests from clients (for testing purposes) More...
 
LIB61850_API void IedServer_lockDataModel (IedServer self)
 Lock the data model for data update. More...
 
LIB61850_API void IedServer_unlockDataModel (IedServer self)
 Unlock the data model and process pending client requests. More...
 
LIB61850_API MmsValueIedServer_getAttributeValue (IedServer self, DataAttribute *dataAttribute)
 Get data attribute value. More...
 
LIB61850_API bool IedServer_getBooleanAttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of a boolean data attribute. More...
 
LIB61850_API int32_t IedServer_getInt32AttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of an integer data attribute. More...
 
LIB61850_API int64_t IedServer_getInt64AttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of an integer data attribute. More...
 
LIB61850_API uint32_t IedServer_getUInt32AttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of an unsigned integer data attribute. More...
 
LIB61850_API float IedServer_getFloatAttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of a floating point data attribute. More...
 
LIB61850_API uint64_t IedServer_getUTCTimeAttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of a UTC time data attribute. More...
 
LIB61850_API uint32_t IedServer_getBitStringAttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of a bit string data attribute as integer value. More...
 
LIB61850_API const char * IedServer_getStringAttributeValue (IedServer self, const DataAttribute *dataAttribute)
 Get data attribute value of a string type data attribute. More...
 
LIB61850_API MmsValueIedServer_getFunctionalConstrainedData (IedServer self, DataObject *dataObject, FunctionalConstraint fc)
 Get the MmsValue object related to a functional constrained data object (FCD) More...
 
LIB61850_API void IedServer_updateAttributeValue (IedServer self, DataAttribute *dataAttribute, MmsValue *value)
 Update the MmsValue object of an IEC 61850 data attribute. More...
 
LIB61850_API void IedServer_updateFloatAttributeValue (IedServer self, DataAttribute *dataAttribute, float value)
 Update the value of an IEC 61850 float data attribute. More...
 
LIB61850_API void IedServer_updateInt32AttributeValue (IedServer self, DataAttribute *dataAttribute, int32_t value)
 Update the value of an IEC 61850 integer32 data attribute. More...
 
LIB61850_API void IedServer_updateDbposValue (IedServer self, DataAttribute *dataAttribute, Dbpos value)
 Update the value of an IEC 61850 Dbpos (double point/position) data attribute. More...
 
LIB61850_API void IedServer_updateInt64AttributeValue (IedServer self, DataAttribute *dataAttribute, int64_t value)
 Update the value of an IEC 61850 integer64 data attribute (like BCR actVal) More...
 
LIB61850_API void IedServer_updateUnsignedAttributeValue (IedServer self, DataAttribute *dataAttribute, uint32_t value)
 Update the value of an IEC 61850 unsigned integer data attribute. More...
 
LIB61850_API void IedServer_updateBitStringAttributeValue (IedServer self, DataAttribute *dataAttribute, uint32_t value)
 Update the value of an IEC 61850 bit string data attribute. More...
 
LIB61850_API void IedServer_updateBooleanAttributeValue (IedServer self, DataAttribute *dataAttribute, bool value)
 Update the value of an IEC 61850 boolean data attribute. More...
 
LIB61850_API void IedServer_updateVisibleStringAttributeValue (IedServer self, DataAttribute *dataAttribute, char *value)
 Update the value of an IEC 61850 visible string data attribute. More...
 
LIB61850_API void IedServer_updateUTCTimeAttributeValue (IedServer self, DataAttribute *dataAttribute, uint64_t value)
 Update the value of an IEC 61850 UTC time (timestamp) data attribute. More...
 
LIB61850_API void IedServer_updateTimestampAttributeValue (IedServer self, DataAttribute *dataAttribute, Timestamp *timestamp)
 Update the value of an IEC 61850 UTC time (timestamp) data attribute. More...
 
LIB61850_API void IedServer_updateQuality (IedServer self, DataAttribute *dataAttribute, Quality quality)
 Update a quality ("q") IEC 61850 data attribute. More...
 
LIB61850_API void IedServer_changeActiveSettingGroup (IedServer self, SettingGroupControlBlock *sgcb, uint8_t newActiveSg)
 Change active setting group. More...
 
LIB61850_API uint8_t IedServer_getActiveSettingGroup (IedServer self, SettingGroupControlBlock *sgcb)
 Get the active setting group number. More...
 
LIB61850_API void IedServer_setActiveSettingGroupChangedHandler (IedServer self, SettingGroupControlBlock *sgcb, ActiveSettingGroupChangedHandler handler, void *parameter)
 Set the callback handler for the SetActSG event. More...
 
LIB61850_API void IedServer_setEditSettingGroupChangedHandler (IedServer self, SettingGroupControlBlock *sgcb, EditSettingGroupChangedHandler handler, void *parameter)
 Set the callback handler for the SetEditSG event. More...
 
LIB61850_API void IedServer_setEditSettingGroupConfirmationHandler (IedServer self, SettingGroupControlBlock *sgcb, EditSettingGroupConfirmationHandler handler, void *parameter)
 Set the callback handler for the COnfEditSG event. More...
 
LIB61850_API void ControlAction_setError (ControlAction self, ControlLastApplError error)
 Sets the error code for the next command termination or application error message. More...
 
LIB61850_API void ControlAction_setAddCause (ControlAction self, ControlAddCause addCause)
 Sets the add cause for the next command termination or application error message. More...
 
LIB61850_API int ControlAction_getOrCat (ControlAction self)
 Gets the originator category provided by the client. More...
 
LIB61850_API uint8_t * ControlAction_getOrIdent (ControlAction self, int *orIdentSize)
 Gets the originator identifier provided by the client. More...
 
LIB61850_API int ControlAction_getCtlNum (ControlAction self)
 Get the ctlNum attribute send by the client. More...
 
LIB61850_API bool ControlAction_getSynchroCheck (ControlAction self)
 Gets the synchroCheck bit provided by the client. More...
 
LIB61850_API bool ControlAction_getInterlockCheck (ControlAction self)
 Gets the interlockCheck bit provided by the client. More...
 
LIB61850_API bool ControlAction_isSelect (ControlAction self)
 Check if the control callback is called by a select or operate command. More...
 
LIB61850_API ClientConnection ControlAction_getClientConnection (ControlAction self)
 Gets the client object associated with the client that caused the control action. More...
 
LIB61850_API DataObject * ControlAction_getControlObject (ControlAction self)
 Gets the control object that is subject to this action. More...
 
LIB61850_API uint64_t ControlAction_getControlTime (ControlAction self)
 Gets the time of the control (attribute "operTm"), if it's a timeActivatedControl, returns 0, if it's not. More...
 
LIB61850_API TimestampControlAction_getT (ControlAction self)
 Gets the time (attribute "T") of the last received control action (Oper or Select) More...
 
LIB61850_API void IedServer_setControlHandler (IedServer self, DataObject *node, ControlHandler handler, void *parameter)
 Set control handler for controllable data object. More...
 
LIB61850_API void IedServer_setPerformCheckHandler (IedServer self, DataObject *node, ControlPerformCheckHandler handler, void *parameter)
 Set a handler for a controllable data object to perform operative tests. More...
 
LIB61850_API void IedServer_setWaitForExecutionHandler (IedServer self, DataObject *node, ControlWaitForExecutionHandler handler, void *parameter)
 Set a handler for a controllable data object to perform dynamic tests. More...
 
LIB61850_API void IedServer_setSelectStateChangedHandler (IedServer self, DataObject *node, ControlSelectStateChangedHandler handler, void *parameter)
 Set a callback handler for a controllable data object to track select state changes. More...
 
LIB61850_API void IedServer_updateCtlModel (IedServer self, DataObject *ctlObject, ControlModel value)
 Update the control model for the specified controllable data object with the given value and update "ctlModel" attribute value. More...
 
LIB61850_API void IedServer_setRCBEventHandler (IedServer self, IedServer_RCBEventHandler handler, void *parameter)
 Set a handler for report control block (RCB) events. More...
 
LIB61850_API void IedServer_setSVCBHandler (IedServer self, SVControlBlock *svcb, SVCBEventHandler handler, void *parameter)
 Set a handler for SVCB control block events (enable/disable) More...
 
LIB61850_API void IedServer_setGoCBHandler (IedServer self, GoCBEventHandler handler, void *parameter)
 Set a callback handler for GoCB events (enabled/disabled) More...
 
LIB61850_API char * MmsGooseControlBlock_getName (MmsGooseControlBlock self)
 
LIB61850_API LogicalNode * MmsGooseControlBlock_getLogicalNode (MmsGooseControlBlock self)
 
LIB61850_API DataSet * MmsGooseControlBlock_getDataSet (MmsGooseControlBlock self)
 
LIB61850_API bool MmsGooseControlBlock_getGoEna (MmsGooseControlBlock self)
 
LIB61850_API int MmsGooseControlBlock_getMinTime (MmsGooseControlBlock self)
 
LIB61850_API int MmsGooseControlBlock_getMaxTime (MmsGooseControlBlock self)
 
LIB61850_API bool MmsGooseControlBlock_getFixedOffs (MmsGooseControlBlock self)
 
LIB61850_API bool MmsGooseControlBlock_getNdsCom (MmsGooseControlBlock self)
 
LIB61850_API void IedServer_handleWriteAccess (IedServer self, DataAttribute *dataAttribute, WriteAccessHandler handler, void *parameter)
 Install a WriteAccessHandler for a data attribute. More...
 
LIB61850_API void IedServer_handleWriteAccessForComplexAttribute (IedServer self, DataAttribute *dataAttribute, WriteAccessHandler handler, void *parameter)
 Install a WriteAccessHandler for a data attribute and for all sub data attributes. More...
 
LIB61850_API void IedServer_handleWriteAccessForDataObject (IedServer self, DataObject *dataObject, FunctionalConstraint fc, WriteAccessHandler handler, void *parameter)
 Install a WriteAccessHandler for all data attributes of a data object with a specific FC. More...
 
LIB61850_API void IedServer_setWriteAccessPolicy (IedServer self, FunctionalConstraint fc, AccessPolicy policy)
 Change the default write access policy for functional constraint data with a specific FC. More...
 
LIB61850_API void IedServer_setReadAccessHandler (IedServer self, ReadAccessHandler handler, void *parameter)
 Install the global read access handler. More...
 
LIB61850_API void IedServer_setDataSetAccessHandler (IedServer self, IedServer_DataSetAccessHandler handler, void *parameter)
 Set a handler to control access to a dataset (create, delete, read, write, list directory) More...
 
LIB61850_API void IedServer_setDirectoryAccessHandler (IedServer self, IedServer_DirectoryAccessHandler handler, void *parameter)
 
LIB61850_API void IedServer_setListObjectsAccessHandler (IedServer self, IedServer_ListObjectsAccessHandler handler, void *parameter)
 Set a handler to control which objects are return by the list objects services. More...
 
LIB61850_API void IedServer_setControlBlockAccessHandler (IedServer self, IedServer_ControlBlockAccessHandler handler, void *parameter)
 Set a handler to control read and write access to control blocks and logs. More...
 
LIB61850_API void IedServer_ignoreReadAccess (IedServer self, bool ignore)
 Temporarily ignore read requests (for testing purposes) More...