libiec61850  1.2.0
Data Structures | Typedefs | Functions
mms_client_connection.h File Reference
#include "libiec61850_common_api.h"
#include "mms_common.h"
#include "mms_type_spec.h"
#include "mms_value.h"
#include "iso_connection_parameters.h"
#include "linked_list.h"
#include "tls_api.h"

Go to the source code of this file.

Data Structures

struct  MmsConnectionParameters
 
struct  MmsServerIdentity
 
struct  MmsJournalEntry
 
struct  MmsJournalVariable
 

Typedefs

typedef void(* MmsInformationReportHandler) (void *parameter, char *domainName, char *variableListName, MmsValue *value, bool isVariableListName)
 
typedef struct sMmsConnection * MmsConnection
 
typedef void(* MmsRawMessageHandler) (void *parameter, uint8_t *message, int messageLength, bool received)
 Callback function to intercept raw MMS messages. More...
 
typedef void(* MmsConnectionLostHandler) (MmsConnection connection, void *parameter)
 User provided handler function that will be called if the connection to the server is lost. More...
 
typedef void(* MmsFileDirectoryHandler) (void *parameter, char *filename, uint32_t size, uint64_t lastModified)
 
typedef void(* MmsFileReadHandler) (void *parameter, int32_t frsmId, uint8_t *buffer, uint32_t bytesReceived)
 

Functions

MmsConnection MmsConnection_create (void)
 Create a new MmsConnection instance. More...
 
MmsConnection MmsConnection_createSecure (TLSConfiguration tlsConfig)
 Create a new secure (TLS enabled) MmsConnection instance. More...
 
void MmsConnection_setRawMessageHandler (MmsConnection self, MmsRawMessageHandler handler, void *parameter)
 Set the callback handler to intercept the raw MMS messages of the connection. More...
 
void MmsConnection_setFilestoreBasepath (MmsConnection self, const char *basepath)
 Set the virtual filestore basepath for the MMS obtain file services. More...
 
void MmsConnection_setRequestTimeout (MmsConnection self, uint32_t timeoutInMs)
 Set the request timeout in ms for this connection. More...
 
void MmsConnection_setConnectTimeout (MmsConnection self, uint32_t timeoutInMs)
 Set the connect timeout in ms for this connection instance. More...
 
void MmsConnection_setInformationReportHandler (MmsConnection self, MmsInformationReportHandler handler, void *parameter)
 Install a handler function for MMS information reports (unsolicited messages from the server). More...
 
IsoConnectionParameters MmsConnection_getIsoConnectionParameters (MmsConnection self)
 Get the ISO connection parameters for an MmsConnection instance. More...
 
MmsConnectionParameters MmsConnection_getMmsConnectionParameters (MmsConnection self)
 Get the MMS specific connection parameters for an MmsConnection instance. More...
 
void MmsConnection_setConnectionLostHandler (MmsConnection self, MmsConnectionLostHandler handler, void *handlerParameter)
 Install a callback function that will be called by the client stack if the MMS connection to the server is lost. More...
 
void MmsConnection_setIsoConnectionParameters (MmsConnection self, IsoConnectionParameters *params)
 Set the ISO connection parameters for a MmsConnection instance. More...
 
void MmsConnection_destroy (MmsConnection self)
 Destroy an MmsConnection instance and release all resources. More...
 
bool MmsConnection_connect (MmsConnection self, MmsError *mmsError, const char *serverName, int serverPort)
 Connect to an MMS server. More...
 
void MmsConnection_close (MmsConnection self)
 Close the connection - not recommended. More...
 
void MmsConnection_abort (MmsConnection self, MmsError *mmsError)
 Uses the MMS/ACSE abort service to close the connection to the server. More...
 
void MmsConnection_conclude (MmsConnection self, MmsError *mmsError)
 Uses the MMS conclude service to close the connection to the server. More...
 
LinkedList MmsConnection_getVMDVariableNames (MmsConnection self, MmsError *mmsError)
 Get the names of all VMD scope variables of the server. More...
 
LinkedList MmsConnection_getDomainNames (MmsConnection self, MmsError *mmsError)
 Get the domains names for all domains of the server. More...
 
LinkedList MmsConnection_getDomainVariableNames (MmsConnection self, MmsError *mmsError, const char *domainId)
 Get the names of all variables present in a MMS domain of the server. More...
 
LinkedList MmsConnection_getDomainVariableListNames (MmsConnection self, MmsError *mmsError, const char *domainId)
 Get the names of all named variable lists present in a MMS domain or VMD scope of the server. More...
 
LinkedList MmsConnection_getDomainJournals (MmsConnection self, MmsError *mmsError, const char *domainId)
 Get the names of all journals present in a MMS domain of the server. More...
 
LinkedList MmsConnection_getVariableListNamesAssociationSpecific (MmsConnection self, MmsError *mmsError)
 Get the names of all named variable lists associated with this client connection. More...
 
MmsValueMmsConnection_readVariable (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId)
 Read a single variable from the server. More...
 
MmsValueMmsConnection_readArrayElements (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t startIndex, uint32_t numberOfElements)
 Read an element of a single array variable from the server. More...
 
MmsValueMmsConnection_readMultipleVariables (MmsConnection self, MmsError *mmsError, const char *domainId, LinkedListitems)
 Read multiple variables of a domain from the server with one request message. More...
 
MmsDataAccessError MmsConnection_writeVariable (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *value)
 Write a single variable to the server. More...
 
MmsDataAccessError MmsConnection_writeArrayElements (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, int index, int numberOfElements, MmsValue *value)
 Write a single array element or a sub array to an array type variable. More...
 
void MmsConnection_writeMultipleVariables (MmsConnection self, MmsError *mmsError, const char *domainId, LinkedListitems, LinkedListvalues, LinkedList *accessResults)
 Write multiple variables to the server. More...
 
void MmsConnection_writeNamedVariableList (MmsConnection self, MmsError *mmsError, bool isAssociationSpecific, const char *domainId, const char *itemId, LinkedList values, LinkedList *accessResults)
 Write named variable list values to the server. More...
 
MmsVariableSpecification * MmsConnection_getVariableAccessAttributes (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId)
 Get the variable access attributes of a MMS named variable of the server. More...
 
MmsValueMmsConnection_readNamedVariableListValues (MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName, bool specWithResult)
 Read the values of a domain specific named variable list. More...
 
MmsValueMmsConnection_readNamedVariableListValuesAssociationSpecific (MmsConnection self, MmsError *mmsError, const char *listName, bool specWithResult)
 Read the values of a association specific named variable list. More...
 
void MmsConnection_defineNamedVariableList (MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName, LinkedList variableSpecs)
 Define a new VMD or domain scoped named variable list at the server. More...
 
void MmsConnection_defineNamedVariableListAssociationSpecific (MmsConnection self, MmsError *mmsError, const char *listName, LinkedList variableSpecs)
 Define a new association specific named variable list at the server. More...
 
LinkedList MmsConnection_readNamedVariableListDirectory (MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName, bool *deletable)
 Read the entry list of a named variable list at the server. More...
 
LinkedList MmsConnection_readNamedVariableListDirectoryAssociationSpecific (MmsConnection self, MmsError *mmsError, const char *listName, bool *deletable)
 Read the entry list of an association specific named variable list at the server. More...
 
bool MmsConnection_deleteNamedVariableList (MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName)
 Delete a named variable list at the server. More...
 
bool MmsConnection_deleteAssociationSpecificNamedVariableList (MmsConnection self, MmsError *mmsError, const char *listName)
 Delete an association specific named variable list at the server. More...
 
MmsVariableAccessSpecificationMmsVariableAccessSpecification_create (char *domainId, char *itemId)
 Create a new MmsVariableSpecification that can be used to define named variable lists. More...
 
MmsVariableAccessSpecificationMmsVariableAccessSpecification_createAlternateAccess (char *domainId, char *itemId, int32_t index, char *componentName)
 Create a new MmsVariableSpecification that can be used to define named variable lists. More...
 
void MmsVariableAccessSpecification_destroy (MmsVariableAccessSpecification *self)
 Delete the MmsVariableAccessSpecification data structure. More...
 
void MmsConnection_setLocalDetail (MmsConnection self, int32_t localDetail)
 Get the MMS local detail parameter (local detail means maximum MMS PDU size). More...
 
int32_t MmsConnection_getLocalDetail (MmsConnection self)
 
MmsServerIdentityMmsConnection_identify (MmsConnection self, MmsError *mmsError)
 get the identity of the connected server More...
 
void MmsServerIdentity_destroy (MmsServerIdentity *self)
 Destroy (free) an MmsServerIdentity object. More...
 
void MmsConnection_getServerStatus (MmsConnection self, MmsError *mmsError, int *vmdLogicalStatus, int *vmdPhysicalStatus, bool extendedDerivation)
 get the VMD status of the connected server (is MMS status service) More...
 
int32_t MmsConnection_fileOpen (MmsConnection self, MmsError *mmsError, const char *filename, uint32_t initialPosition, uint32_t *fileSize, uint64_t *lastModified)
 open a file for read More...
 
bool MmsConnection_fileRead (MmsConnection self, MmsError *mmsError, int32_t frsmId, MmsFileReadHandler handler, void *handlerParameter)
 read the next data block from the file More...
 
void MmsConnection_fileClose (MmsConnection self, MmsError *mmsError, int32_t frsmId)
 close the file with the specified frsmID More...
 
void MmsConnection_fileDelete (MmsConnection self, MmsError *mmsError, const char *fileName)
 delete the file with the specified name More...
 
void MmsConnection_fileRename (MmsConnection self, MmsError *mmsError, const char *currentFileName, const char *newFileName)
 rename the file with the specified name More...
 
void MmsConnection_obtainFile (MmsConnection self, MmsError *mmsError, const char *sourceFile, const char *destinationFile)
 Send an obtainFile request to the server (used to initiate file download to server) More...
 
bool MmsConnection_getFileDirectory (MmsConnection self, MmsError *mmsError, const char *fileSpecification, const char *continueAfter, MmsFileDirectoryHandler handler, void *handlerParameter)
 get the file directory of the server. More...
 
void MmsJournalEntry_destroy (MmsJournalEntry self)
 Destroy a single MmsJournalEntry instance. More...
 
const MmsValueMmsJournalEntry_getEntryID (MmsJournalEntry self)
 
const MmsValueMmsJournalEntry_getOccurenceTime (MmsJournalEntry self)
 
const LinkedList MmsJournalEntry_getJournalVariables (MmsJournalEntry self)
 
const char * MmsJournalVariable_getTag (MmsJournalVariable self)
 
const MmsValueMmsJournalVariable_getValue (MmsJournalVariable self)
 
LinkedList MmsConnection_readJournalTimeRange (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *startingTime, MmsValue *endingTime, bool *moreFollows)
 
LinkedList MmsConnection_readJournalStartAfter (MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *timeSpecification, MmsValue *entrySpecification, bool *moreFollows)