27 #ifndef IED_SERVER_API_H_
28 #define IED_SERVER_API_H_
43 #include "mms_server.h"
46 #include "hal_filesystem.h"
59 #define IEC61850_REPORTSETTINGS_RPT_ID 1
60 #define IEC61850_REPORTSETTINGS_BUF_TIME 2
61 #define IEC61850_REPORTSETTINGS_DATSET 4
62 #define IEC61850_REPORTSETTINGS_TRG_OPS 8
63 #define IEC61850_REPORTSETTINGS_OPT_FIELDS 16
64 #define IEC61850_REPORTSETTINGS_INTG_PD 32
133 LIB61850_API IedServerConfig
246 LIB61850_API
const char*
639 LIB61850_API IedModel*
672 LIB61850_API MmsServer
800 LIB61850_API
const char*
812 LIB61850_API
const char*
965 LIB61850_API uint32_t
993 LIB61850_API uint64_t
1011 LIB61850_API uint32_t
1025 LIB61850_API
const char*
1263 LIB61850_API uint8_t
1421 LIB61850_API uint8_t*
1481 LIB61850_API DataObject*
1491 LIB61850_API uint64_t
1736 #define IEC61850_SVCB_EVENT_ENABLE 1
1739 #define IEC61850_SVCB_EVENT_DISABLE 0
1774 #define IEC61850_GOCB_EVENT_ENABLE 1
1777 #define IEC61850_GOCB_EVENT_DISABLE 0
1797 LIB61850_API LogicalNode*
1800 LIB61850_API DataSet*
ControlAddCause
Definition: iec61850_common.h:205
ControlLastApplError
Definition: iec61850_common.h:244
Dbpos
Definition: iec61850_common.h:380
FunctionalConstraint
Definition: iec61850_common.h:260
LIB61850_API int IedServerConfig_getMaxMmsConnections(IedServerConfig self)
Get the maximum number of MMS (TCP) connections the server accepts.
LIB61850_API void IedServerConfig_enableEditSG(IedServerConfig self, bool enable)
Enable/disable the EditSG service to allow clients to change setting groups (default is enabled)
LIB61850_API bool IedServerConfig_isOwnerForRCBEnabled(IedServerConfig self)
Owner for RCBs enabled (visible)
LIB61850_API void IedServerConfig_enableResvTmsForBRCB(IedServerConfig self, bool enable)
Enable/disable the presence of BRCB.ResvTms (default value is true)
LIB61850_API void IedServerConfig_setMaxDomainSpecificDataSets(IedServerConfig self, int maxDataSets)
Set the maximum allowed number of domain specific (permanent) data sets.
LIB61850_API void IedServerConfig_setReportBufferSize(IedServerConfig self, int reportBufferSize)
Set the report buffer size for buffered reporting.
LIB61850_API bool IedServerConfig_getReportSetting(IedServerConfig self, uint8_t setting)
Check if a configurable report setting is writable or read-only.
LIB61850_API void IedServerConfig_destroy(IedServerConfig self)
Destroy the configuration object.
LIB61850_API int IedServerConfig_getReportBufferSize(IedServerConfig self)
Gets the report buffer size for buffered reporting.
LIB61850_API int IedServerConfig_getMaxAssociationSpecificDataSets(IedServerConfig self)
Get the maximum allowed number of association specific (non-permanent) data sets.
LIB61850_API IedServerConfig IedServerConfig_create(void)
Create a new configuration object.
LIB61850_API const char * IedServerConfig_getFileServiceBasePath(IedServerConfig self)
Get the basepath of the file services.
LIB61850_API void IedServerConfig_useIntegratedGoosePublisher(IedServerConfig self, bool enable)
Enable/disable using the integrated GOOSE publisher for configured GoCBs.
LIB61850_API int IedServerConfig_getReportBufferSizeForURCBs(IedServerConfig self)
Gets the report buffer size for unbuffered reporting.
LIB61850_API bool IedServerConfig_getSyncIntegrityReportTimes(IedServerConfig self)
Check if synchronized integrity report times are enabled.
LIB61850_API int IedServerConfig_getMaxDomainSpecificDataSets(IedServerConfig self)
Get the maximum allowed number of domain specific (permanent) data sets.
LIB61850_API void IedServerConfig_setEdition(IedServerConfig self, uint8_t edition)
Set the IEC 61850 standard edition to use (default is edition 2)
LIB61850_API bool IedServerConfig_isResvTmsForBRCBEnabled(IedServerConfig self)
ResvTms for BRCB enabled (visible)
LIB61850_API void IedServerConfig_setMaxMmsConnections(IedServerConfig self, int maxConnections)
Set the maximum number of MMS (TCP) connections the server accepts.
LIB61850_API bool IedServerConfig_isDynamicDataSetServiceEnabled(IedServerConfig self)
Is the dynamic data set service for MMS enabled or disabled.
LIB61850_API void IedServerConfig_enableOwnerForRCB(IedServerConfig self, bool enable)
Enable/disable the presence of owner in report control blocks (default value is false);.
LIB61850_API void IedServerConfig_setReportBufferSizeForURCBs(IedServerConfig self, int reportBufferSize)
Set the report buffer size for unbuffered reporting.
LIB61850_API void IedServerConfig_setSyncIntegrityReportTimes(IedServerConfig self, bool enable)
Enable synchronized integrity report times.
LIB61850_API bool IedServerConfig_isFileServiceEnabled(IedServerConfig self)
Is the MMS file service enabled or disabled.
LIB61850_API uint8_t IedServerConfig_getEdition(IedServerConfig self)
Get the configued IEC 61850 standard edition.
LIB61850_API void IedServerConfig_enableLogService(IedServerConfig self, bool enable)
Enable/disable the log service for MMS.
LIB61850_API void IedServerConfig_enableFileService(IedServerConfig self, bool enable)
Enable/disable the MMS file service support.
LIB61850_API bool IedServerConfig_isLogServiceEnabled(IedServerConfig self)
Is the log service for MMS enabled or disabled.
LIB61850_API int IedServerConfig_getMaxDatasSetEntries(IedServerConfig self)
Get the maximum number of entries in dynamic data sets.
LIB61850_API void IedServerConfig_setFileServiceBasePath(IedServerConfig self, const char *basepath)
Set the basepath of the file services.
LIB61850_API void IedServerConfig_enableResvTmsForSGCB(IedServerConfig self, bool enable)
Enable/disable the SGCB.ResvTms when EditSG is enabled.
LIB61850_API void IedServerConfig_setMaxDataSetEntries(IedServerConfig self, int maxDataSetEntries)
Set the maximum number of entries in dynamic data sets.
LIB61850_API void IedServerConfig_setMaxAssociationSpecificDataSets(IedServerConfig self, int maxDataSets)
Set the maximum allowed number of association specific (non-permanent) data sets.
LIB61850_API void IedServerConfig_setReportSetting(IedServerConfig self, uint8_t setting, bool isDyn)
Make a configurable report setting writeable or read-only.
LIB61850_API void IedServerConfig_enableDynamicDataSetService(IedServerConfig self, bool enable)
Enable/disable the dynamic data set service for MMS.
LIB61850_API const char * ClientConnection_getPeerAddress(ClientConnection self)
get the peer address of this connection as string
LIB61850_API const char * ClientConnection_getLocalAddress(ClientConnection self)
get the local address of this connection as string
void IedServer_ignoreClientRequests(IedServer self, bool enable)
Ignore all requests from clients (for testing purposes)
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 connect...
Definition: iec61850_server.h:837
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).
LIB61850_API void IedServer_setAuthenticator(IedServer self, AcseAuthenticator authenticator, void *authenticatorParameter)
set the authenticator for this server
LIB61850_API void * ClientConnection_getSecurityToken(ClientConnection self)
Get the security token associated with this connection.
LIB61850_API void IedServer_setControlHandler(IedServer self, DataObject *node, ControlHandler handler, void *parameter)
Set control handler for controllable data object.
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.
ControlHandlerResult(* ControlHandler)(ControlAction action, void *parameter, MmsValue *ctlVal, bool test)
Control model callback to actually perform the control operation.
Definition: iec61850_server.h:1572
ControlHandlerResult
result codes for control handler (ControlWaitForExecutionHandler and ControlHandler)
Definition: iec61850_server.h:1378
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 "...
ControlHandlerResult(* ControlWaitForExecutionHandler)(ControlAction action, void *parameter, MmsValue *ctlVal, bool test, bool synchroCheck)
Control model callback to perform the dynamic tests (optional).
Definition: iec61850_server.h:1549
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.
LIB61850_API DataObject * ControlAction_getControlObject(ControlAction self)
Gets the control object that is subject to this action.
LIB61850_API ClientConnection ControlAction_getClientConnection(ControlAction self)
Gets the client object associated with the client that caused the control action.
LIB61850_API bool ControlAction_getSynchroCheck(ControlAction self)
Gets the synchroCheck bit provided by the client.
void(* ControlSelectStateChangedHandler)(ControlAction action, void *parameter, bool isSelected, SelectStateChangedReason reason)
Control model callback that is called when the select state of a control changes.
Definition: iec61850_server.h:1596
LIB61850_API int ControlAction_getOrCat(ControlAction self)
Gets the originator category provided by the client.
LIB61850_API Timestamp * ControlAction_getT(ControlAction self)
Gets the time (attribute "T") of the last received control action (Oper or Select)
CheckHandlerResult(* ControlPerformCheckHandler)(ControlAction action, void *parameter, MmsValue *ctlVal, bool test, bool interlockCheck)
Control model callback to perform the static tests (optional).
Definition: iec61850_server.h:1524
void * ControlAction
Definition: iec61850_server.h:1384
LIB61850_API bool ControlAction_isSelect(ControlAction self)
Check if the control callback is called by a select or operate command.
LIB61850_API uint8_t * ControlAction_getOrIdent(ControlAction self, int *orIdentSize)
Gets the originator identifier provided by the client.
LIB61850_API void ControlAction_setError(ControlAction self, ControlLastApplError error)
Sets the error code for the next command termination or application error message.
LIB61850_API int ControlAction_getCtlNum(ControlAction self)
Get the ctlNum attribute send by the client.
LIB61850_API uint64_t ControlAction_getControlTime(ControlAction self)
Gets the time of the control (attribute "operTm"), if it's a timeActivatedControl,...
LIB61850_API bool ControlAction_getInterlockCheck(ControlAction self)
Gets the interlockCheck bit provided by the client.
CheckHandlerResult
result code for ControlPerformCheckHandler
Definition: iec61850_server.h:1365
SelectStateChangedReason
Reason why a select state of a control object changed.
Definition: iec61850_server.h:1577
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.
LIB61850_API void ControlAction_setAddCause(ControlAction self, ControlAddCause addCause)
Sets the add cause for the next command termination or application error message.
@ CONTROL_RESULT_FAILED
Definition: iec61850_server.h:1379
@ CONTROL_RESULT_OK
Definition: iec61850_server.h:1380
@ CONTROL_RESULT_WAITING
Definition: iec61850_server.h:1381
@ CONTROL_TEMPORARILY_UNAVAILABLE
Definition: iec61850_server.h:1369
@ CONTROL_HARDWARE_FAULT
Definition: iec61850_server.h:1368
@ CONTROL_OBJECT_UNDEFINED
Definition: iec61850_server.h:1371
@ CONTROL_ACCEPTED
Definition: iec61850_server.h:1366
@ CONTROL_VALUE_INVALID
Definition: iec61850_server.h:1372
@ CONTROL_OBJECT_ACCESS_DENIED
Definition: iec61850_server.h:1370
@ CONTROL_WAITING_FOR_SELECT
Definition: iec61850_server.h:1367
@ SELECT_STATE_REASON_DISCONNECTED
Definition: iec61850_server.h:1583
@ SELECT_STATE_REASON_TIMEOUT
Definition: iec61850_server.h:1580
@ SELECT_STATE_REASON_CANCELED
Definition: iec61850_server.h:1579
@ SELECT_STATE_REASON_SELECTED
Definition: iec61850_server.h:1578
@ SELECT_STATE_REASON_OPERATE_FAILED
Definition: iec61850_server.h:1582
@ SELECT_STATE_REASON_OPERATED
Definition: iec61850_server.h:1581
LIB61850_API void IedServer_lockDataModel(IedServer self)
Lock the data model for data update.
LIB61850_API MmsValue * IedServer_getAttributeValue(IedServer self, DataAttribute *dataAttribute)
Get data attribute value.
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)
LIB61850_API void IedServer_updateAttributeValue(IedServer self, DataAttribute *dataAttribute, MmsValue *value)
Update the MmsValue object of an IEC 61850 data attribute.
LIB61850_API MmsValue * IedServer_getFunctionalConstrainedData(IedServer self, DataObject *dataObject, FunctionalConstraint fc)
Get the MmsValue object related to a functional constrained data object (FCD)
LIB61850_API void IedServer_updateUnsignedAttributeValue(IedServer self, DataAttribute *dataAttribute, uint32_t value)
Update the value of an IEC 61850 unsigned integer data attribute.
LIB61850_API void IedServer_updateTimestampAttributeValue(IedServer self, DataAttribute *dataAttribute, Timestamp *timestamp)
Update the value of an IEC 61850 UTC time (timestamp) data attribute.
LIB61850_API uint32_t IedServer_getBitStringAttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of a bit string data attribute as integer value.
LIB61850_API void IedServer_updateFloatAttributeValue(IedServer self, DataAttribute *dataAttribute, float value)
Update the value of an IEC 61850 float data attribute.
LIB61850_API void IedServer_updateDbposValue(IedServer self, DataAttribute *dataAttribute, Dbpos value)
Update the value of an IEC 61850 Dbpos (double point/position) data attribute.
LIB61850_API void IedServer_updateBitStringAttributeValue(IedServer self, DataAttribute *dataAttribute, uint32_t value)
Update the value of an IEC 61850 bit string data attribute.
LIB61850_API int32_t IedServer_getInt32AttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of an integer data attribute.
LIB61850_API bool IedServer_getBooleanAttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of a boolean data attribute.
LIB61850_API uint32_t IedServer_getUInt32AttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of an unsigned integer data attribute.
LIB61850_API const char * IedServer_getStringAttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of a string type data attribute.
LIB61850_API int64_t IedServer_getInt64AttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of an integer data attribute.
LIB61850_API float IedServer_getFloatAttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of a floating point data attribute.
LIB61850_API void IedServer_updateBooleanAttributeValue(IedServer self, DataAttribute *dataAttribute, bool value)
Update the value of an IEC 61850 boolean data attribute.
LIB61850_API uint64_t IedServer_getUTCTimeAttributeValue(IedServer self, const DataAttribute *dataAttribute)
Get data attribute value of a UTC time data attribute.
LIB61850_API void IedServer_updateInt32AttributeValue(IedServer self, DataAttribute *dataAttribute, int32_t value)
Update the value of an IEC 61850 integer32 data attribute.
LIB61850_API void IedServer_updateQuality(IedServer self, DataAttribute *dataAttribute, Quality quality)
Update a quality ("q") IEC 61850 data attribute.
LIB61850_API void IedServer_updateUTCTimeAttributeValue(IedServer self, DataAttribute *dataAttribute, uint64_t value)
Update the value of an IEC 61850 UTC time (timestamp) data attribute.
LIB61850_API void IedServer_updateVisibleStringAttributeValue(IedServer self, DataAttribute *dataAttribute, char *value)
Update the value of an IEC 61850 visible string data attribute.
LIB61850_API void IedServer_unlockDataModel(IedServer self)
Unlock the data model and process pending client requests.
IedServer_ControlBlockAccessType
Definition: iec61850_server.h:2039
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.
Definition: iec61850_server.h:2061
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.
IedServer_DirectoryCategory
Definition: iec61850_server.h:1998
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)
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.
MmsDataAccessError(* WriteAccessHandler)(DataAttribute *dataAttribute, MmsValue *value, ClientConnection connection, void *parameter)
callback handler to intercept/control client write access to data attributes
Definition: iec61850_server.h:1859
MmsDataAccessError(* ReadAccessHandler)(LogicalDevice *ld, LogicalNode *ln, DataObject *dataObject, FunctionalConstraint fc, ClientConnection connection, void *parameter)
callback handler to control client read access to data attributes
Definition: iec61850_server.h:1953
IedServer_DataSetOperation
Definition: iec61850_server.h:1967
LIB61850_API void IedServer_handleWriteAccess(IedServer self, DataAttribute *dataAttribute, WriteAccessHandler handler, void *parameter)
Install a WriteAccessHandler for a data attribute.
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.
AccessPolicy
Definition: iec61850_server.h:1920
LIB61850_API void IedServer_ignoreReadAccess(IedServer self, bool ignore)
Temporarily ignore read requests (for testing purposes)
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,...
Definition: iec61850_server.h:1987
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.
Definition: iec61850_server.h:2028
LIB61850_API void IedServer_setReadAccessHandler(IedServer self, ReadAccessHandler handler, void *parameter)
Install the global read access handler.
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.
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.
LIB61850_API void IedServer_setDirectoryAccessHandler(IedServer self, IedServer_DirectoryAccessHandler handler, void *parameter)
bool(* IedServer_DirectoryAccessHandler)(void *parameter, ClientConnection connection, IedServer_DirectoryCategory category, LogicalDevice *logicalDevice)
Definition: iec61850_server.h:2006
@ IEC61850_CB_ACCESS_TYPE_READ
Definition: iec61850_server.h:2040
@ IEC61850_CB_ACCESS_TYPE_WRITE
Definition: iec61850_server.h:2041
@ DIRECTORY_CAT_LD_LIST
Definition: iec61850_server.h:1999
@ DIRECTORY_CAT_DATASET_LIST
Definition: iec61850_server.h:2001
@ DIRECTORY_CAT_LOG_LIST
Definition: iec61850_server.h:2002
@ DIRECTORY_CAT_DATA_LIST
Definition: iec61850_server.h:2000
@ DATASET_WRITE
Definition: iec61850_server.h:1971
@ DATASET_DELETE
Definition: iec61850_server.h:1969
@ DATASET_READ
Definition: iec61850_server.h:1970
@ DATASET_CREATE
Definition: iec61850_server.h:1968
@ DATASET_GET_DIRECTORY
Definition: iec61850_server.h:1972
@ ACCESS_POLICY_ALLOW
Definition: iec61850_server.h:1921
@ ACCESS_POLICY_DENY
Definition: iec61850_server.h:1922
struct sClientConnection * ClientConnection
Definition: iec61850_server.h:454
LIB61850_API void IedServer_stop(IedServer self)
Stop handling client connections.
LIB61850_API IedServer IedServer_createWithTlsSupport(IedModel *dataModel, TLSConfiguration tlsConfiguration)
Create a new IedServer with TLS support.
LIB61850_API IedModel * IedServer_getDataModel(IedServer self)
Return the data model of the server.
LIB61850_API void IedServer_start(IedServer self, int tcpPort)
Start handling client connections.
LIB61850_API int IedServer_getNumberOfOpenConnections(IedServer self)
Get number of open MMS connections.
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)
LIB61850_API void IedServer_setLocalIpAddress(IedServer self, const char *localIpAddress)
Set the local IP address to listen on.
LIB61850_API void IedServer_processIncomingData(IedServer self)
handle incoming TCP data in non-threaded mode
LIB61850_API void IedServer_setLogStorage(IedServer self, const char *logRef, LogStorage logStorage)
Assign a LogStorage instance to a log reference.
LIB61850_API void IedServer_destroy(IedServer self)
Destroy an IedServer instance and release all resources (memory, TCP sockets)
LIB61850_API void IedServer_setServerIdentity(IedServer self, const char *vendor, const char *model, const char *revision)
Set the identify for the MMS identify service.
LIB61850_API MmsServer IedServer_getMmsServer(IedServer self)
Get access to the underlying MmsServer instance.
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.
LIB61850_API void IedServer_stopThreadless(IedServer self)
Stop handling client connections for non-threaded mode.
LIB61850_API bool IedServer_isRunning(IedServer self)
Check if IedServer instance is listening for client connections.
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.
LIB61850_API IedServer IedServer_create(IedModel *dataModel)
Create a new IedServer instance.
LIB61850_API void IedServer_setGooseInterfaceId(IedServer self, const char *interfaceId)
Set the Ethernet interface to be used by GOOSE publishing.
LIB61850_API void IedServer_disableGoosePublishing(IedServer self)
Disable all GOOSE control blocks.
LIB61850_API void IedServer_enableGoosePublishing(IedServer self)
Enable all GOOSE control blocks.
LIB61850_API void IedServer_performPeriodicTasks(IedServer self)
perform periodic background tasks in non-threaded mode
LIB61850_API int IedServer_waitReady(IedServer self, unsigned int timeoutMs)
Wait until a server connection is ready (with timeout)
LIB61850_API void IedServer_useGooseVlanTag(IedServer self, LogicalNode *ln, const char *gcbName, bool useVlanTag)
Enable/disable the use of VLAN tags in GOOSE messages.
LIB61850_API IedServer IedServer_createWithConfig(IedModel *dataModel, TLSConfiguration tlsConfiguration, IedServerConfig serverConfiguration)
Create new new IedServer with extended configurations parameters.
LIB61850_API void IedServer_setFilestoreBasepath(IedServer self, const char *basepath)
Set the virtual filestore basepath for the MMS file services.
LIB61850_API void IedServer_startThreadless(IedServer self, int tcpPort)
Start handling client connection for non-threaded mode.
struct sIedServer * IedServer
Definition: iec61850_server.h:449
LIB61850_API int MmsGooseControlBlock_getMinTime(MmsGooseControlBlock self)
LIB61850_API char * MmsGooseControlBlock_getName(MmsGooseControlBlock self)
LIB61850_API bool MmsGooseControlBlock_getGoEna(MmsGooseControlBlock self)
struct sMmsGooseControlBlock * MmsGooseControlBlock
Definition: iec61850_server.h:1771
LIB61850_API LogicalNode * MmsGooseControlBlock_getLogicalNode(MmsGooseControlBlock self)
LIB61850_API int MmsGooseControlBlock_getMaxTime(MmsGooseControlBlock self)
LIB61850_API void IedServer_setGoCBHandler(IedServer self, GoCBEventHandler handler, void *parameter)
Set a callback handler for GoCB events (enabled/disabled)
LIB61850_API bool MmsGooseControlBlock_getNdsCom(MmsGooseControlBlock self)
void(* GoCBEventHandler)(MmsGooseControlBlock goCb, int event, void *parameter)
Definition: iec61850_server.h:1779
LIB61850_API DataSet * MmsGooseControlBlock_getDataSet(MmsGooseControlBlock self)
LIB61850_API bool MmsGooseControlBlock_getFixedOffs(MmsGooseControlBlock self)
LIB61850_API void IedServer_setRCBEventHandler(IedServer self, IedServer_RCBEventHandler handler, void *parameter)
Set a handler for report control block (RCB) events.
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.
Definition: iec61850_server.h:1713
IedServer_RCBEventType
Definition: iec61850_server.h:1690
@ RCB_EVENT_SET_PARAMETER
Definition: iec61850_server.h:1692
@ RCB_EVENT_PURGEBUF
Definition: iec61850_server.h:1698
@ RCB_EVENT_GET_PARAMETER
Definition: iec61850_server.h:1691
@ RCB_EVENT_GI
Definition: iec61850_server.h:1697
@ RCB_EVENT_DISABLE
Definition: iec61850_server.h:1696
@ RCB_EVENT_UNRESERVED
Definition: iec61850_server.h:1693
@ RCB_EVENT_RESERVED
Definition: iec61850_server.h:1694
@ RCB_EVENT_REPORT_CREATED
Definition: iec61850_server.h:1700
@ RCB_EVENT_OVERFLOW
Definition: iec61850_server.h:1699
@ RCB_EVENT_ENABLE
Definition: iec61850_server.h:1695
LIB61850_API void IedServer_setEditSettingGroupConfirmationHandler(IedServer self, SettingGroupControlBlock *sgcb, EditSettingGroupConfirmationHandler handler, void *parameter)
Set the callback handler for the COnfEditSG event.
LIB61850_API uint8_t IedServer_getActiveSettingGroup(IedServer self, SettingGroupControlBlock *sgcb)
Get the active setting group number.
LIB61850_API void IedServer_setActiveSettingGroupChangedHandler(IedServer self, SettingGroupControlBlock *sgcb, ActiveSettingGroupChangedHandler handler, void *parameter)
Set the callback handler for the SetActSG event.
LIB61850_API void IedServer_setEditSettingGroupChangedHandler(IedServer self, SettingGroupControlBlock *sgcb, EditSettingGroupChangedHandler handler, void *parameter)
Set the callback handler for the SetEditSG event.
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 ...
Definition: iec61850_server.h:1281
LIB61850_API void IedServer_changeActiveSettingGroup(IedServer self, SettingGroupControlBlock *sgcb, uint8_t newActiveSg)
Change active setting group.
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 cl...
Definition: iec61850_server.h:1313
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...
Definition: iec61850_server.h:1337
LIB61850_API void IedServer_setSVCBHandler(IedServer self, SVControlBlock *svcb, SVCBEventHandler handler, void *parameter)
Set a handler for SVCB control block events (enable/disable)
void(* SVCBEventHandler)(SVControlBlock *svcb, int event, void *parameter)
callback handler for SVCB events.
Definition: iec61850_server.h:1748
struct sMmsValue MmsValue
Definition: mms_value.h:68
MmsDataAccessError
Definition: mms_value.h:46
uint16_t Quality
Definition: iec61850_common.h:326
ACSIClass
Definition: iec61850_common.h:59
ControlModel
Control model (represented by "ctlModel" attribute)
Definition: iec61850_common.h:76
bool(* AcseAuthenticator)(void *parameter, AcseAuthenticationParameter authParameter, void **securityToken, IsoApplicationReference *appReference)
Callback function to authenticate a client.
Definition: iso_connection_parameters.h:109
Configuration object to configure IEC 61850 stack features.
Definition: iec61850_server.h:72
int maxMmsConnections
Definition: iec61850_server.h:107
bool useIntegratedGoosePublisher
Definition: iec61850_server.h:101
bool enableFileService
Definition: iec61850_server.h:83
uint8_t edition
Definition: iec61850_server.h:104
bool enableOwnerForRCB
Definition: iec61850_server.h:119
int maxDomainSpecificDataSets
Definition: iec61850_server.h:92
uint8_t reportSettingsWritable
Definition: iec61850_server.h:125
char * fileServiceBasepath
Definition: iec61850_server.h:80
int reportBufferSize
Definition: iec61850_server.h:74
int maxDataSetEntries
Definition: iec61850_server.h:95
int reportBufferSizeURCBs
Definition: iec61850_server.h:77
int maxAssociationSpecificDataSets
Definition: iec61850_server.h:89
bool enableDynamicDataSetService
Definition: iec61850_server.h:86
bool syncIntegrityReportTimes
Definition: iec61850_server.h:122
bool enableResvTmsForBRCB
Definition: iec61850_server.h:116
bool enableLogService
Definition: iec61850_server.h:98
bool enableResvTmsForSGCB
Definition: iec61850_server.h:113
bool enableEditSG
Definition: iec61850_server.h:110
Definition: iec61850_common.h:417