libIEC61850  0.8.4
Open-source IEC 61850 MMS/GOOSE server and client library
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
General server setup and management functions

Functions

IedServer IedServer_create (IedModel *iedModel)
 Create a new IedServer instance. More...
 
void IedServer_destroy (IedServer self)
 Destroy an IedServer instance and release all resources (memory, TCP sockets) More...
 
void IedServer_start (IedServer self, int tcpPort)
 Start handling client connections. More...
 
void IedServer_stop (IedServer self)
 Stop handling client connections. More...
 
void IedServer_startThreadless (IedServer self, int tcpPort)
 Start handling client connection for non-threaded mode. More...
 
int IedServer_waitReady (IedServer self, unsigned int timeoutMs)
 
void IedServer_processIncomingData (IedServer self)
 handle incoming TCP data in non-threaded mode More...
 
void IedServer_performPeriodicTasks (IedServer self)
 perform periodic background tasks in non-threaded mode More...
 
void IedServer_stopThreadless (IedServer self)
 Stop handling client connections for non-threaded mode. More...
 
IedModel * IedServer_getDataModel (IedServer self)
 Return the data model of the server. More...
 
bool IedServer_isRunning (IedServer self)
 Check if IedServer instance is listening for client connections. More...
 
MmsServer IedServer_getMmsServer (IedServer self)
 Get access to the underlying MmsServer instance. More...
 
IsoServer IedServer_getIsoServer (IedServer self)
 get the IsoServer instance for this IedServer object More...
 
void IedServer_enableGoosePublishing (IedServer self)
 Enable all GOOSE control blocks. More...
 
void IedServer_disableGoosePublishing (IedServer self)
 Disable all GOOSE control blocks. More...
 

Detailed Description

Function Documentation

IedServer IedServer_create ( IedModel *  iedModel)

Create a new IedServer instance.

Parameters
iedModelreference to the IedModel data structure to be used as IEC 61850 model of the device
Returns
the newly generated IedServer instance
void IedServer_destroy ( IedServer  self)

Destroy an IedServer instance and release all resources (memory, TCP sockets)

Parameters
selfthe instance of IedServer to operate on.
void IedServer_disableGoosePublishing ( IedServer  self)

Disable all GOOSE control blocks.

This will set the GoEna attribute of all configured GOOSE control blocks to false. This will stop GOOSE transmission.

Parameters
selfthe instance of IedServer to operate on.
void IedServer_enableGoosePublishing ( IedServer  self)

Enable all GOOSE control blocks.

This will set the GoEna attribute of all configured GOOSE control blocks to true. If this method is not called at the startup or reset of the server then configured GOOSE control blocks keep inactive until a MMS client enables them by writing to the GOOSE control block.

Parameters
selfthe instance of IedServer to operate on.
IedModel* IedServer_getDataModel ( IedServer  self)

Return the data model of the server.

Parameters
selfthe instance of IedServer to operate on.
Returns
the IedModel* instance of the server
IsoServer IedServer_getIsoServer ( IedServer  self)

get the IsoServer instance for this IedServer object

Parameters
selfthe instance of IedServer to operate on.
Returns
the IsoServer instance of this IedServer object
MmsServer IedServer_getMmsServer ( IedServer  self)

Get access to the underlying MmsServer instance.

This function should be handled with care. Since direct interaction with the MmsServer can interfere with the IedServer.

Parameters
selfthe instance of IedServer to operate on.
Returns
MmsServer instance that is used by the IedServer
bool IedServer_isRunning ( IedServer  self)

Check if IedServer instance is listening for client connections.

Parameters
selfthe instance of IedServer to operate on.
Returns
true if IedServer instance is listening for client connections
void IedServer_performPeriodicTasks ( IedServer  self)

perform periodic background tasks in non-threaded mode

The function should be called periodically. If the function is called more often the more accurate are internal timeouts (e.g. for reports).

Parameters
selfthe instance of IedServer to operate on.
void IedServer_processIncomingData ( IedServer  self)

handle incoming TCP data in non-threaded mode

The function should be called periodically. If the function is called more often the response time for incoming messages will be faster. As an alternative the function may only be called if new TCP data is available.

Parameters
selfthe instance of IedServer to operate on.
void IedServer_start ( IedServer  self,
int  tcpPort 
)

Start handling client connections.

Parameters
selfthe instance of IedServer to operate on.
tcpPortthe TCP port the server is listening
void IedServer_startThreadless ( IedServer  self,
int  tcpPort 
)

Start handling client connection for non-threaded mode.

This function will instruct the TCP(IP stack to listen for incoming connections. In order to accept new connection the function IedServer_processIncomingData has to be called periodically.

Parameters
selfthe instance of IedServer to operate on.
tcpPortthe TCP port the server is listening
void IedServer_stop ( IedServer  self)

Stop handling client connections.

Parameters
selfthe instance of IedServer to operate on.
void IedServer_stopThreadless ( IedServer  self)

Stop handling client connections for non-threaded mode.

Parameters
selfthe instance of IedServer to operate on.
int IedServer_waitReady ( IedServer  self,
unsigned int  timeoutMs 
)