libiec61850  1.6.0
mms_client_connection.h
Go to the documentation of this file.
1 /*
2  * mms_client_connection.h
3  *
4  * Copyright 2013-2018 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef MMS_CLIENT_CONNECTION_H_
25 #define MMS_CLIENT_CONNECTION_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
36 #include "libiec61850_common_api.h"
37 
38 #include "mms_common.h"
39 #include "mms_type_spec.h"
40 #include "mms_value.h"
42 #include "linked_list.h"
43 #include "tls_config.h"
44 
48 typedef struct sMmsConnectionParameters {
52  int maxPduSize; /* local detail */
53  uint8_t servicesSupported[11];
55 
56 typedef struct {
57  char* vendorName;
58  char* modelName;
59  char* revision;
61 
62 typedef enum {
68 
69 typedef void (*MmsInformationReportHandler) (void* parameter, char* domainName,
70  char* variableListName, MmsValue* value, bool isVariableListName);
71 
75 typedef struct sMmsConnection* MmsConnection;
76 
77 
78 /*******************************************************************************
79  * Connection management functions
80  *******************************************************************************/
81 
87 LIB61850_API MmsConnection
89 
97 LIB61850_API MmsConnection
98 MmsConnection_createSecure(TLSConfiguration tlsConfig);
99 
111 LIB61850_API MmsConnection
112 MmsConnection_createNonThreaded(TLSConfiguration tlsConfig);
113 
125 typedef void (*MmsRawMessageHandler) (void* parameter, uint8_t* message, int messageLength, bool received);
126 
138 LIB61850_API void
140 
151 LIB61850_API void
153 
160 LIB61850_API void
161 MmsConnection_setRequestTimeout(MmsConnection self, uint32_t timeoutInMs);
162 
170 LIB61850_API void
172 
180 LIB61850_API uint32_t
182 
189 LIB61850_API void
190 MmsConnection_setConnectTimeout(MmsConnection self, uint32_t timeoutInMs);
191 
203 LIB61850_API void
205  void* parameter);
206 
213 LIB61850_API IsoConnectionParameters
215 
222 LIB61850_API MmsConnectionParameters
224 
225 typedef void (*MmsConnectionStateChangedHandler) (MmsConnection connection, void* parameter, MmsConnectionState newState);
226 
227 LIB61850_API void
229 
236 typedef void (*MmsConnectionLostHandler) (MmsConnection connection, void* parameter);
237 
244 LIB61850_API void
246 
253 LIB61850_API void
254 MmsConnection_setIsoConnectionParameters(MmsConnection self, IsoConnectionParameters* params);
255 
261 LIB61850_API void
263 
264 /*******************************************************************************
265  * Blocking functions for connection establishment and data access
266  *******************************************************************************/
267 
268 
281 LIB61850_API bool
282 MmsConnection_connect(MmsConnection self, MmsError* mmsError, const char* serverName, int serverPort);
283 
284 
285 
286 LIB61850_API void
287 MmsConnection_connectAsync(MmsConnection self, MmsError* mmsError, const char* serverName, int serverPort);
288 
297 LIB61850_API bool
299 
300 /* NOTE: This function is for test purposes! */
301 LIB61850_API void
302 MmsConnection_sendRawData(MmsConnection self, MmsError* mmsError, uint8_t* buffer, int bufSize);
303 
312 LIB61850_API void
314 
315 typedef void
316 (*MmsConnection_ConcludeAbortHandler) (void* parameter, MmsError mmsError, bool success);
317 
329 LIB61850_API void
331 
332 LIB61850_API void
334 
346 LIB61850_API void
348 
349 LIB61850_API void
351 
352 typedef void
353 (*MmsConnection_GenericServiceHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, bool success);
354 
355 typedef void
356 (*MmsConnection_GetNameListHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList nameList, bool moreFollows);
357 
368 LIB61850_API LinkedList /* <char*> */
370 
371 LIB61850_API void
372 MmsConnection_getVMDVariableNamesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* continueAfter,
373  MmsConnection_GetNameListHandler handler, void* parameter);
374 
386 LIB61850_API LinkedList /* <char*> */
388 
400 LIB61850_API void
401 MmsConnection_getDomainNamesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* continueAfter, LinkedList result,
402  MmsConnection_GetNameListHandler handler, void* parameter);
403 
415 LIB61850_API LinkedList /* <char*> */
416 MmsConnection_getDomainVariableNames(MmsConnection self, MmsError* mmsError, const char* domainId);
417 
432 LIB61850_API void
433 MmsConnection_getDomainVariableNamesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId,
434  const char* continueAfter, LinkedList result, MmsConnection_GetNameListHandler handler, void* parameter);
435 
447 LIB61850_API LinkedList /* <char*> */
448 MmsConnection_getDomainVariableListNames(MmsConnection self, MmsError* mmsError, const char* domainId);
449 
450 LIB61850_API void
451 MmsConnection_getDomainVariableListNamesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId,
452  const char* continueAfter, LinkedList result, MmsConnection_GetNameListHandler handler, void* parameter);
453 
465 LIB61850_API LinkedList /* <char*> */
466 MmsConnection_getDomainJournals(MmsConnection self, MmsError* mmsError, const char* domainId);
467 
468 LIB61850_API void
469 MmsConnection_getDomainJournalsAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId,
470  const char* continueAfter, MmsConnection_GetNameListHandler handler, void* parameter);
471 
482 LIB61850_API LinkedList /* <char*> */
484 
485 LIB61850_API void
487  const char* continueAfter, MmsConnection_GetNameListHandler handler, void* parameter);
488 
489 
502 LIB61850_API MmsValue*
503 MmsConnection_readVariable(MmsConnection self, MmsError* mmsError, const char* domainId, const char* itemId);
504 
505 
506 typedef void
507 (*MmsConnection_ReadVariableHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsValue* value);
508 
518 LIB61850_API void
519 MmsConnection_readVariableAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId, const char* itemId,
520  MmsConnection_ReadVariableHandler handler, void* parameter);
521 
535 LIB61850_API MmsValue*
537  const char* domainId, const char* itemId, const char* componentId);
538 
551 LIB61850_API void
552 MmsConnection_readVariableComponentAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
553  const char* domainId, const char* itemId, const char* componentId,
554  MmsConnection_ReadVariableHandler handler, void* parameter);
555 
570 LIB61850_API MmsValue*
571 MmsConnection_readArrayElements(MmsConnection self, MmsError* mmsError, const char* domainId, const char* itemId,
572  uint32_t startIndex, uint32_t numberOfElements);
573 
588 LIB61850_API void
589 MmsConnection_readArrayElementsAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId, const char* itemId,
590  uint32_t startIndex, uint32_t numberOfElements,
591  MmsConnection_ReadVariableHandler handler, void* parameter);
592 
593 
606 LIB61850_API MmsValue*
608  const char* domainId, const char* itemId, uint32_t index, const char* componentId);
609 
610 LIB61850_API void
612  const char* domainId, const char* itemId,
613  uint32_t index, const char* componentId,
614  MmsConnection_ReadVariableHandler handler, void* parameter);
615 
628 LIB61850_API MmsValue*
629 MmsConnection_readMultipleVariables(MmsConnection self, MmsError* mmsError, const char* domainId,
630  LinkedList /*<char*>*/ items);
631 
632 LIB61850_API void
633 MmsConnection_readMultipleVariablesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
634  const char* domainId, LinkedList /*<char*>*/items,
635  MmsConnection_ReadVariableHandler handler, void* parameter);
636 
650 LIB61850_API MmsDataAccessError
652  const char* domainId, const char* itemId, MmsValue* value);
653 
654 typedef void
655 (*MmsConnection_WriteVariableHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError);
656 
657 LIB61850_API void
658 MmsConnection_writeVariableAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
659  const char* domainId, const char* itemId, MmsValue* value,
660  MmsConnection_WriteVariableHandler handler, void* parameter);
661 
662 
675 LIB61850_API MmsDataAccessError
677  const char* domainId, const char* itemId,
678  const char* componentId, MmsValue* value);
679 
693 LIB61850_API MmsDataAccessError
695  const char* domainId, const char* itemId,
696  uint32_t arrayIndex, const char* componentId, MmsValue* value);
697 
698 LIB61850_API void
700  const char* domainId, const char* itemId,
701  uint32_t arrayIndex, const char* componentId, MmsValue* value,
702  MmsConnection_WriteVariableHandler handler, void* parameter);
703 
704 LIB61850_API void
705 MmsConnection_writeVariableComponentAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
706  const char* domainId, const char* itemId, const char* componentId, MmsValue* value,
707  MmsConnection_WriteVariableHandler handler, void* parameter);
708 
727 LIB61850_API MmsDataAccessError
729  const char* domainId, const char* itemId, int index, int numberOfElements,
730  MmsValue* value);
731 
732 LIB61850_API void
733 MmsConnection_writeArrayElementsAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
734  const char* domainId, const char* itemId, int index, int numberOfElements,
735  MmsValue* value,
736  MmsConnection_WriteVariableHandler handler, void* parameter);
737 
738 
739 typedef void
740 (*MmsConnection_WriteMultipleVariablesHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* <MmsValue*> */ accessResults);
741 
742 
760 LIB61850_API void
761 MmsConnection_writeMultipleVariables(MmsConnection self, MmsError* mmsError, const char* domainId,
762  LinkedList /*<char*>*/ items, LinkedList /* <MmsValue*> */ values,
763  LinkedList* /* <MmsValue*> */ accessResults);
764 
765 LIB61850_API void
766 MmsConnection_writeMultipleVariablesAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId,
767  LinkedList /*<char*>*/ items, LinkedList /* <MmsValue*> */ values,
768  MmsConnection_WriteMultipleVariablesHandler handler, void* parameter);
769 
786 LIB61850_API void
787 MmsConnection_writeNamedVariableList(MmsConnection self, MmsError* mmsError, bool isAssociationSpecific,
788  const char* domainId, const char* itemId, LinkedList /* <MmsValue*> */values,
789  LinkedList* /* <MmsValue*> */accessResults);
790 
791 
792 LIB61850_API void
793 MmsConnection_writeNamedVariableListAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, bool isAssociationSpecific,
794  const char* domainId, const char* itemId, LinkedList /* <MmsValue*> */values,
795  MmsConnection_WriteMultipleVariablesHandler handler, void* parameter);
796 
807 LIB61850_API MmsVariableSpecification*
809  const char* domainId, const char* itemId);
810 
811 typedef void
812 (*MmsConnection_GetVariableAccessAttributesHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsVariableSpecification* spec);
813 
814 
815 LIB61850_API void
817  const char* domainId, const char* itemId,
819 
836 LIB61850_API MmsValue*
838  const char* listName, bool specWithResult);
839 
840 LIB61850_API void
842  const char* domainId, const char* listName, bool specWithResult,
843  MmsConnection_ReadVariableHandler handler, void* parameter);
844 
845 
858 LIB61850_API MmsValue*
860  const char* listName, bool specWithResult);
861 
862 LIB61850_API void
864  const char* listName, bool specWithResult,
865  MmsConnection_ReadVariableHandler handler, void* parameter);
866 
880 LIB61850_API void
881 MmsConnection_defineNamedVariableList(MmsConnection self, MmsError* mmsError, const char* domainId,
882  const char* listName, LinkedList variableSpecs);
883 
884 LIB61850_API void
885 MmsConnection_defineNamedVariableListAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId,
886  const char* listName, LinkedList variableSpecs,
887  MmsConnection_GenericServiceHandler handler, void* parameter);
888 
889 
890 
900 LIB61850_API void
902  const char* listName, LinkedList variableSpecs);
903 
904 LIB61850_API void
906  const char* listName, LinkedList variableSpecs,
907  MmsConnection_GenericServiceHandler handler, void* parameter);
908 
924 LIB61850_API LinkedList /* <MmsVariableAccessSpecification*> */
926  const char* domainId, const char* listName, bool* deletable);
927 
928 
929 typedef void
930 (*MmsConnection_ReadNVLDirectoryHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* <MmsVariableAccessSpecification*> */ specs, bool deletable);
931 
932 
933 LIB61850_API void
935  const char* domainId, const char* listName,
936  MmsConnection_ReadNVLDirectoryHandler handler, void* parameter);
937 
938 
948 LIB61850_API LinkedList /* <MmsVariableAccessSpecification*> */
950  const char* listName, bool* deletable);
951 
952 LIB61850_API void
954  const char* listName,
955  MmsConnection_ReadNVLDirectoryHandler handler, void* parameter);
956 
970 LIB61850_API bool
971 MmsConnection_deleteNamedVariableList(MmsConnection self, MmsError* mmsError, const char* domainId, const char* listName);
972 
973 
974 LIB61850_API void
975 MmsConnection_deleteNamedVariableListAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId, const char* listName,
976  MmsConnection_GenericServiceHandler handler, void* parameter);
977 
987 LIB61850_API bool
989  const char* listName);
990 
991 
992 LIB61850_API void
993 MmsConnection_deleteAssociationSpecificNamedVariableListAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* listName,
994  MmsConnection_GenericServiceHandler handler, void* parameter);
995 
1007 LIB61850_API MmsVariableAccessSpecification*
1008 MmsVariableAccessSpecification_create(char* domainId, char* itemId);
1009 
1026 LIB61850_API MmsVariableAccessSpecification*
1027 MmsVariableAccessSpecification_createAlternateAccess(char* domainId, char* itemId, int32_t index,
1028  char* componentName);
1029 
1035 LIB61850_API void
1037 
1047 LIB61850_API void
1048 MmsConnection_setLocalDetail(MmsConnection self, int32_t localDetail);
1049 
1050 LIB61850_API int32_t
1052 
1062 LIB61850_API MmsServerIdentity*
1064 
1065 typedef void
1066 (*MmsConnection_IdentifyHandler) (uint32_t invokeId, void* parameter, MmsError mmsError,
1067  char* vendorName, char* modelName, char* revision);
1068 
1069 LIB61850_API void
1070 MmsConnection_identifyAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError,
1071  MmsConnection_IdentifyHandler handler, void* parameter);
1072 
1078 LIB61850_API void
1080 
1093 LIB61850_API void
1094 MmsConnection_getServerStatus(MmsConnection self, MmsError* mmsError, int* vmdLogicalStatus, int* vmdPhysicalStatus,
1095  bool extendedDerivation);
1096 
1097 typedef void
1098 (*MmsConnection_GetServerStatusHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus);
1099 
1100 LIB61850_API void
1101 MmsConnection_getServerStatusAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, bool extendedDerivation,
1102  MmsConnection_GetServerStatusHandler handler, void* parameter);
1103 
1104 /*******************************************************************************
1105  * functions for MMS file services
1106  *******************************************************************************/
1107 
1108 typedef void
1109 (*MmsFileDirectoryHandler) (void* parameter, char* filename, uint32_t size, uint64_t lastModified);
1110 
1118 typedef void
1119 (*MmsConnection_FileDirectoryHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, char* filename, uint32_t size, uint64_t lastModfified,
1120  bool moreFollows);
1121 
1122 typedef void
1123 (*MmsFileReadHandler) (void* parameter, int32_t frsmId, uint8_t* buffer, uint32_t bytesReceived);
1124 
1138 typedef void
1139 (*MmsConnection_FileReadHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint8_t* buffer, uint32_t byteReceived,
1140  bool moreFollows);
1141 
1142 
1151 LIB61850_API int32_t
1152 MmsConnection_fileOpen(MmsConnection self, MmsError* mmsError, const char* filename, uint32_t initialPosition,
1153  uint32_t* fileSize, uint64_t* lastModified);
1154 
1155 typedef void
1156 (*MmsConnection_FileOpenHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified);
1157 
1158 LIB61850_API void
1159 MmsConnection_fileOpenAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* filename, uint32_t initialPosition, MmsConnection_FileOpenHandler handler,
1160  void* parameter);
1161 
1162 
1174 LIB61850_API bool
1175 MmsConnection_fileRead(MmsConnection self, MmsError* mmsError, int32_t frsmId, MmsFileReadHandler handler, void* handlerParameter);
1176 
1177 LIB61850_API void
1178 MmsConnection_fileReadAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, int32_t frsmId, MmsConnection_FileReadHandler handler, void* parameter);
1179 
1187 LIB61850_API void
1188 MmsConnection_fileClose(MmsConnection self, MmsError* mmsError, int32_t frsmId);
1189 
1190 LIB61850_API void
1191 MmsConnection_fileCloseAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, uint32_t frsmId, MmsConnection_GenericServiceHandler handler, void* parameter);
1192 
1200 LIB61850_API void
1201 MmsConnection_fileDelete(MmsConnection self, MmsError* mmsError, const char* fileName);
1202 
1203 LIB61850_API void
1204 MmsConnection_fileDeleteAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* fileName,
1205  MmsConnection_GenericServiceHandler handler, void* parameter);
1206 
1215 LIB61850_API void
1216 MmsConnection_fileRename(MmsConnection self, MmsError* mmsError, const char* currentFileName, const char* newFileName);
1217 
1218 LIB61850_API void
1219 MmsConnection_fileRenameAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* currentFileName, const char* newFileName,
1220  MmsConnection_GenericServiceHandler handler, void* parameter);
1221 
1230 LIB61850_API void
1231 MmsConnection_obtainFile(MmsConnection self, MmsError* mmsError, const char* sourceFile, const char* destinationFile);
1232 
1233 LIB61850_API void
1234 MmsConnection_obtainFileAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* sourceFile, const char* destinationFile,
1235  MmsConnection_GenericServiceHandler handler, void* parameter);
1236 
1253 LIB61850_API bool
1254 MmsConnection_getFileDirectory(MmsConnection self, MmsError* mmsError, const char* fileSpecification, const char* continueAfter,
1255  MmsFileDirectoryHandler handler, void* handlerParameter);
1256 
1257 LIB61850_API void
1258 MmsConnection_getFileDirectoryAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* fileSpecification, const char* continueAfter,
1259  MmsConnection_FileDirectoryHandler handler, void* parameter);
1260 
1261 typedef struct sMmsJournalEntry* MmsJournalEntry;
1262 
1263 typedef struct sMmsJournalVariable* MmsJournalVariable;
1264 
1266  MmsValue* entryID; /* type MMS_OCTET_STRING */
1267  MmsValue* occurenceTime; /* type MMS_BINARY_TIME */
1268  LinkedList journalVariables;
1269 };
1270 
1272  char* tag;
1274 };
1275 
1289 LIB61850_API void
1290 MmsJournalEntry_destroy(MmsJournalEntry self);
1291 
1292 LIB61850_API MmsValue*
1293 MmsJournalEntry_getEntryID(MmsJournalEntry self);
1294 
1295 LIB61850_API MmsValue*
1296 MmsJournalEntry_getOccurenceTime(MmsJournalEntry self);
1297 
1298 LIB61850_API LinkedList /* <MmsJournalVariable> */
1300 
1301 LIB61850_API const char*
1302 MmsJournalVariable_getTag(MmsJournalVariable self);
1303 
1304 LIB61850_API MmsValue*
1305 MmsJournalVariable_getValue(MmsJournalVariable self);
1306 
1307 typedef void
1308 (*MmsConnection_ReadJournalHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* <MmsJournalEntry> */ journalEntries, bool moreFollows);
1309 
1310 
1311 LIB61850_API LinkedList /* <MmsJournalEntry> */
1312 MmsConnection_readJournalTimeRange(MmsConnection self, MmsError* mmsError, const char* domainId, const char* itemId,
1313  MmsValue* startTime, MmsValue* endTime, bool* moreFollows);
1314 
1315 LIB61850_API void
1316 MmsConnection_readJournalTimeRangeAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId, const char* itemId,
1317  MmsValue* startTime, MmsValue* endTime, MmsConnection_ReadJournalHandler handler, void* parameter);
1318 
1319 LIB61850_API LinkedList /* <MmsJournalEntry> */
1320 MmsConnection_readJournalStartAfter(MmsConnection self, MmsError* mmsError, const char* domainId, const char* itemId,
1321  MmsValue* timeSpecification, MmsValue* entrySpecification, bool* moreFollows);
1322 
1323 LIB61850_API void
1324 MmsConnection_readJournalStartAfterAsync(MmsConnection self, uint32_t* usedInvokeId, MmsError* mmsError, const char* domainId, const char* itemId,
1325  MmsValue* timeSpecification, MmsValue* entrySpecification, MmsConnection_ReadJournalHandler handler, void* parameter);
1326 
1329 #ifdef __cplusplus
1330 }
1331 #endif
1332 
1333 #endif /* MMS_CLIENT_CONNECTION_H_ */
struct sMmsValue MmsValue
Definition: mms_value.h:68
MmsDataAccessError
Definition: mms_value.h:46
MmsError
Definition: mms_common.h:39
LIB61850_API uint32_t MmsConnection_getRequestTimeout(MmsConnection self)
Get the request timeout in ms for this connection.
void(* MmsFileDirectoryHandler)(void *parameter, char *filename, uint32_t size, uint64_t lastModified)
Definition: mms_client_connection.h:1109
LIB61850_API 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
LIB61850_API MmsConnection MmsConnection_createSecure(TLSConfiguration tlsConfig)
Create a new secure (TLS enabled) MmsConnection instance.
LIB61850_API void MmsConnection_setRequestTimeout(MmsConnection self, uint32_t timeoutInMs)
Set the request timeout in ms for this connection.
LIB61850_API void MmsConnection_getVariableAccessAttributesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, MmsConnection_GetVariableAccessAttributesHandler, void *parameter)
LIB61850_API void MmsConnection_fileDelete(MmsConnection self, MmsError *mmsError, const char *fileName)
delete the file with the specified name
LIB61850_API MmsValue * MmsConnection_readMultipleVariables(MmsConnection self, MmsError *mmsError, const char *domainId, LinkedList items)
Read multiple variables of a domain from the server with one request message.
LIB61850_API MmsValue * MmsConnection_readSingleArrayElementWithComponent(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t index, const char *componentId)
Read a single element (with optional component specification) from the server.
LIB61850_API void MmsConnection_readVariableAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, MmsConnection_ReadVariableHandler handler, void *parameter)
Read a single variable from the server (asynchronous version)
LIB61850_API void MmsConnection_getDomainNamesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *continueAfter, LinkedList result, MmsConnection_GetNameListHandler handler, void *parameter)
Get the domain names of the server (asynchronous version).
LIB61850_API void MmsServerIdentity_destroy(MmsServerIdentity *self)
Destroy (free) an MmsServerIdentity object.
LIB61850_API void MmsConnection_getDomainVariableListNamesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *continueAfter, LinkedList result, MmsConnection_GetNameListHandler handler, void *parameter)
void(* MmsConnection_FileOpenHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified)
Definition: mms_client_connection.h:1156
LIB61850_API MmsDataAccessError MmsConnection_writeVariableComponent(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, const char *componentId, MmsValue *value)
Write a single variable to the server (using component alternate access)
LIB61850_API void MmsConnection_sendRawData(MmsConnection self, MmsError *mmsError, uint8_t *buffer, int bufSize)
LIB61850_API 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.
LIB61850_API LinkedList MmsConnection_getDomainJournals(MmsConnection self, MmsError *mmsError, const char *domainId)
Get the names of all journals present in a MMS domain of the server.
LIB61850_API void MmsConnection_getVariableListNamesAssociationSpecificAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *continueAfter, MmsConnection_GetNameListHandler handler, void *parameter)
LIB61850_API void MmsConnection_writeMultipleVariables(MmsConnection self, MmsError *mmsError, const char *domainId, LinkedList items, LinkedList values, LinkedList *accessResults)
Write multiple variables to the server.
LIB61850_API void MmsConnection_readNamedVariableListDirectoryAssociationSpecificAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *listName, MmsConnection_ReadNVLDirectoryHandler handler, void *parameter)
LIB61850_API void MmsConnection_deleteNamedVariableListAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *listName, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API void MmsConnection_defineNamedVariableListAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *listName, LinkedList variableSpecs, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API void MmsConnection_writeVariableAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *value, MmsConnection_WriteVariableHandler handler, void *parameter)
LIB61850_API const char * MmsJournalVariable_getTag(MmsJournalVariable self)
LIB61850_API void MmsConnection_fileDeleteAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *fileName, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API void MmsConnection_setConnectionStateChangedHandler(MmsConnection self, MmsConnectionStateChangedHandler handler, void *parameter)
LIB61850_API bool MmsConnection_connect(MmsConnection self, MmsError *mmsError, const char *serverName, int serverPort)
Connect to an MMS server.
LIB61850_API bool MmsConnection_tick(MmsConnection self)
Call MmsConnection state machine and connection handling code (for non-threaded mode only)
MmsConnectionState
Definition: mms_client_connection.h:62
LIB61850_API MmsVariableAccessSpecification * MmsVariableAccessSpecification_create(char *domainId, char *itemId)
Create a new MmsVariableSpecification that can be used to define named variable lists.
LIB61850_API MmsValue * MmsConnection_readNamedVariableListValues(MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName, bool specWithResult)
Read the values of a domain specific named variable list.
LIB61850_API MmsValue * MmsJournalEntry_getEntryID(MmsJournalEntry self)
LIB61850_API void MmsConnection_obtainFileAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *sourceFile, const char *destinationFile, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API void MmsConnection_writeNamedVariableListAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, bool isAssociationSpecific, const char *domainId, const char *itemId, LinkedList values, MmsConnection_WriteMultipleVariablesHandler handler, void *parameter)
LIB61850_API void MmsConnection_fileCloseAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, uint32_t frsmId, MmsConnection_GenericServiceHandler handler, void *parameter)
void(* MmsInformationReportHandler)(void *parameter, char *domainName, char *variableListName, MmsValue *value, bool isVariableListName)
Definition: mms_client_connection.h:69
LIB61850_API MmsValue * MmsJournalVariable_getValue(MmsJournalVariable self)
LIB61850_API void MmsConnection_setFilestoreBasepath(MmsConnection self, const char *basepath)
Set the virtual filestore basepath for the MMS obtain file services.
LIB61850_API void MmsConnection_readNamedVariableListValuesAssociationSpecificAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *listName, bool specWithResult, MmsConnection_ReadVariableHandler handler, void *parameter)
LIB61850_API void MmsConnection_fileReadAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, int32_t frsmId, MmsConnection_FileReadHandler handler, void *parameter)
LIB61850_API MmsVariableAccessSpecification * MmsVariableAccessSpecification_createAlternateAccess(char *domainId, char *itemId, int32_t index, char *componentName)
Create a new MmsVariableSpecification that can be used to define named variable lists.
LIB61850_API void MmsConnection_writeVariableComponentAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, const char *componentId, MmsValue *value, MmsConnection_WriteVariableHandler handler, void *parameter)
LIB61850_API void MmsConnection_readArrayElementsAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t startIndex, uint32_t numberOfElements, MmsConnection_ReadVariableHandler handler, void *parameter)
Read one or more elements of a single array variable from the server (asynchronous version)
LIB61850_API void MmsConnection_readJournalTimeRangeAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *startTime, MmsValue *endTime, MmsConnection_ReadJournalHandler handler, void *parameter)
LIB61850_API void MmsConnection_conclude(MmsConnection self, MmsError *mmsError)
Uses the MMS conclude service to close the connection to the server.
LIB61850_API void MmsConnection_writeArrayElementsAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, int index, int numberOfElements, MmsValue *value, MmsConnection_WriteVariableHandler handler, void *parameter)
LIB61850_API MmsServerIdentity * MmsConnection_identify(MmsConnection self, MmsError *mmsError)
get the identity of the connected server
LIB61850_API MmsValue * MmsConnection_readVariable(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId)
Read a single variable from the server.
LIB61850_API MmsConnection MmsConnection_createNonThreaded(TLSConfiguration tlsConfig)
Create a new MmsConnection instance configured for non-threaded mode.
LIB61850_API void MmsConnection_readNamedVariableListValuesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *listName, bool specWithResult, MmsConnection_ReadVariableHandler handler, void *parameter)
void(* MmsConnectionLostHandler)(MmsConnection connection, void *parameter)
User provided handler function that will be called if the connection to the server is lost.
Definition: mms_client_connection.h:236
LIB61850_API LinkedList MmsConnection_getVMDVariableNames(MmsConnection self, MmsError *mmsError)
Get the names of all VMD scope variables of the server.
LIB61850_API void MmsConnection_writeSingleArrayElementWithComponentAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t arrayIndex, const char *componentId, MmsValue *value, MmsConnection_WriteVariableHandler handler, void *parameter)
LIB61850_API void MmsConnection_setInformationReportHandler(MmsConnection self, MmsInformationReportHandler handler, void *parameter)
Install a handler function for MMS information reports (unsolicited messages from the server).
LIB61850_API void MmsJournalEntry_destroy(MmsJournalEntry self)
Destroy a single MmsJournalEntry instance.
LIB61850_API LinkedList MmsConnection_getDomainNames(MmsConnection self, MmsError *mmsError)
Get the domains names for all domains of the server.
LIB61850_API LinkedList MmsConnection_readJournalStartAfter(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *timeSpecification, MmsValue *entrySpecification, bool *moreFollows)
LIB61850_API 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.
LIB61850_API void MmsConnection_setIsoConnectionParameters(MmsConnection self, IsoConnectionParameters *params)
Set the ISO connection parameters for a MmsConnection instance.
LIB61850_API void MmsConnection_close(MmsConnection self)
Close the connection - not recommended.
LIB61850_API 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)
LIB61850_API LinkedList MmsConnection_getDomainVariableNames(MmsConnection self, MmsError *mmsError, const char *domainId)
Get the names of all variables present in a MMS domain of the server.
LIB61850_API void MmsConnection_fileRenameAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *currentFileName, const char *newFileName, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API MmsConnection MmsConnection_create(void)
Create a new MmsConnection instance.
LIB61850_API void MmsVariableAccessSpecification_destroy(MmsVariableAccessSpecification *self)
Delete the MmsVariableAccessSpecification data structure.
LIB61850_API void MmsConnection_readVariableComponentAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, const char *componentId, MmsConnection_ReadVariableHandler handler, void *parameter)
Read a component of a single variable from the server (asynchronous version)
LIB61850_API bool MmsConnection_deleteAssociationSpecificNamedVariableList(MmsConnection self, MmsError *mmsError, const char *listName)
Delete an association specific named variable list at the server.
LIB61850_API void MmsConnection_fileOpenAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *filename, uint32_t initialPosition, MmsConnection_FileOpenHandler handler, void *parameter)
void(* MmsConnection_GenericServiceHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, bool success)
Definition: mms_client_connection.h:353
LIB61850_API bool MmsConnection_getFileDirectory(MmsConnection self, MmsError *mmsError, const char *fileSpecification, const char *continueAfter, MmsFileDirectoryHandler handler, void *handlerParameter)
get the file directory of the server.
LIB61850_API LinkedList MmsConnection_getVariableListNamesAssociationSpecific(MmsConnection self, MmsError *mmsError)
Get the names of all named variable lists associated with this client connection.
void(* MmsConnection_IdentifyHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, char *vendorName, char *modelName, char *revision)
Definition: mms_client_connection.h:1066
LIB61850_API void MmsConnection_setLocalDetail(MmsConnection self, int32_t localDetail)
Get the MMS local detail parameter (local detail means maximum MMS PDU size).
LIB61850_API 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.
LIB61850_API void MmsConnection_setRawMessageHandler(MmsConnection self, MmsRawMessageHandler handler, void *parameter)
Set the callback handler to intercept the raw MMS messages of the connection.
LIB61850_API bool MmsConnection_deleteNamedVariableList(MmsConnection self, MmsError *mmsError, const char *domainId, const char *listName)
Delete a named variable list at the server.
void(* MmsConnection_FileDirectoryHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, char *filename, uint32_t size, uint64_t lastModfified, bool moreFollows)
Callback handler for the get file directory service.
Definition: mms_client_connection.h:1119
LIB61850_API void MmsConnection_destroy(MmsConnection self)
Destroy an MmsConnection instance and release all resources.
LIB61850_API bool MmsConnection_fileRead(MmsConnection self, MmsError *mmsError, int32_t frsmId, MmsFileReadHandler handler, void *handlerParameter)
read the next data block from the file
LIB61850_API 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.
LIB61850_API int32_t MmsConnection_getLocalDetail(MmsConnection self)
LIB61850_API void MmsConnection_writeMultipleVariablesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, LinkedList items, LinkedList values, MmsConnection_WriteMultipleVariablesHandler handler, void *parameter)
void(* MmsConnection_WriteVariableHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, MmsDataAccessError accessError)
Definition: mms_client_connection.h:655
LIB61850_API void MmsConnection_readSingleArrayElementWithComponentAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t index, const char *componentId, MmsConnection_ReadVariableHandler handler, void *parameter)
LIB61850_API LinkedList MmsJournalEntry_getJournalVariables(MmsJournalEntry self)
LIB61850_API void MmsConnection_abortAsync(MmsConnection self, MmsError *mmsError)
LIB61850_API MmsDataAccessError MmsConnection_writeSingleArrayElementWithComponent(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t arrayIndex, const char *componentId, MmsValue *value)
Write a single array element with a component to an array type variable.
struct sMmsConnection * MmsConnection
Definition: mms_client_connection.h:75
void(* MmsRawMessageHandler)(void *parameter, uint8_t *message, int messageLength, bool received)
Callback function to intercept raw MMS messages.
Definition: mms_client_connection.h:125
void(* MmsConnection_FileReadHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, int32_t frsmId, uint8_t *buffer, uint32_t byteReceived, bool moreFollows)
Callback handler for the file read service.
Definition: mms_client_connection.h:1139
void(* MmsConnection_ReadNVLDirectoryHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, LinkedList specs, bool deletable)
Definition: mms_client_connection.h:930
LIB61850_API MmsDataAccessError MmsConnection_writeVariable(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *value)
Write a single variable to the server.
LIB61850_API MmsValue * MmsConnection_readNamedVariableListValuesAssociationSpecific(MmsConnection self, MmsError *mmsError, const char *listName, bool specWithResult)
Read the values of a association specific named variable list.
LIB61850_API void MmsConnection_deleteAssociationSpecificNamedVariableListAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *listName, MmsConnection_GenericServiceHandler handler, void *parameter)
LIB61850_API void MmsConnection_readNamedVariableListDirectoryAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *listName, MmsConnection_ReadNVLDirectoryHandler handler, void *parameter)
LIB61850_API void MmsConnection_getFileDirectoryAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *fileSpecification, const char *continueAfter, MmsConnection_FileDirectoryHandler handler, void *parameter)
void(* MmsConnection_GetVariableAccessAttributesHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, MmsVariableSpecification *spec)
Definition: mms_client_connection.h:812
LIB61850_API void MmsConnection_readMultipleVariablesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, LinkedList items, MmsConnection_ReadVariableHandler handler, void *parameter)
LIB61850_API void MmsConnection_setConnectTimeout(MmsConnection self, uint32_t timeoutInMs)
Set the connect timeout in ms for this connection instance.
LIB61850_API void MmsConnection_identifyAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, MmsConnection_IdentifyHandler handler, void *parameter)
LIB61850_API 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 serv...
void(* MmsFileReadHandler)(void *parameter, int32_t frsmId, uint8_t *buffer, uint32_t bytesReceived)
Definition: mms_client_connection.h:1123
LIB61850_API void MmsConnection_concludeAsync(MmsConnection self, MmsError *mmsError, MmsConnection_ConcludeAbortHandler handler, void *parameter)
LIB61850_API void MmsConnnection_setMaxOutstandingCalls(MmsConnection self, int calling, int called)
Set the maximum number outstanding calls allowed for this connection.
LIB61850_API void MmsConnection_defineNamedVariableListAssociationSpecific(MmsConnection self, MmsError *mmsError, const char *listName, LinkedList variableSpecs)
Define a new association specific named variable list at the server.
void(* MmsConnection_ReadJournalHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, LinkedList journalEntries, bool moreFollows)
Definition: mms_client_connection.h:1308
LIB61850_API 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.
void(* MmsConnection_GetNameListHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, LinkedList nameList, bool moreFollows)
Definition: mms_client_connection.h:356
LIB61850_API void MmsConnection_defineNamedVariableListAssociationSpecificAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *listName, LinkedList variableSpecs, MmsConnection_GenericServiceHandler handler, void *parameter)
void(* MmsConnectionStateChangedHandler)(MmsConnection connection, void *parameter, MmsConnectionState newState)
Definition: mms_client_connection.h:225
void(* MmsConnection_WriteMultipleVariablesHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, LinkedList accessResults)
Definition: mms_client_connection.h:740
LIB61850_API void MmsConnection_getVMDVariableNamesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *continueAfter, MmsConnection_GetNameListHandler handler, void *parameter)
void(* MmsConnection_ReadVariableHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, MmsValue *value)
Definition: mms_client_connection.h:507
void(* MmsConnection_ConcludeAbortHandler)(void *parameter, MmsError mmsError, bool success)
Definition: mms_client_connection.h:316
LIB61850_API void MmsConnection_getDomainJournalsAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *continueAfter, MmsConnection_GetNameListHandler handler, void *parameter)
LIB61850_API 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)
LIB61850_API MmsValue * MmsConnection_readVariableComponent(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, const char *componentId)
Read a component of a single variable from the server.
void(* MmsConnection_GetServerStatusHandler)(uint32_t invokeId, void *parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus)
Definition: mms_client_connection.h:1098
LIB61850_API void MmsConnection_abort(MmsConnection self, MmsError *mmsError)
Uses the MMS/ACSE abort service to close the connection to the server.
LIB61850_API 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.
LIB61850_API LinkedList MmsConnection_readJournalTimeRange(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *startTime, MmsValue *endTime, bool *moreFollows)
LIB61850_API void MmsConnection_getDomainVariableNamesAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *continueAfter, LinkedList result, MmsConnection_GetNameListHandler handler, void *parameter)
Get the names of all variables present in a MMS domain of the server (asynchronous version).
LIB61850_API void MmsConnection_connectAsync(MmsConnection self, MmsError *mmsError, const char *serverName, int serverPort)
LIB61850_API 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.
LIB61850_API MmsConnectionParameters MmsConnection_getMmsConnectionParameters(MmsConnection self)
Get the MMS specific connection parameters for an MmsConnection instance.
LIB61850_API void MmsConnection_getServerStatusAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, bool extendedDerivation, MmsConnection_GetServerStatusHandler handler, void *parameter)
LIB61850_API IsoConnectionParameters MmsConnection_getIsoConnectionParameters(MmsConnection self)
Get the ISO connection parameters for an MmsConnection instance.
LIB61850_API MmsValue * MmsJournalEntry_getOccurenceTime(MmsJournalEntry self)
LIB61850_API void MmsConnection_fileClose(MmsConnection self, MmsError *mmsError, int32_t frsmId)
close the file with the specified frsmID
LIB61850_API MmsValue * MmsConnection_readArrayElements(MmsConnection self, MmsError *mmsError, const char *domainId, const char *itemId, uint32_t startIndex, uint32_t numberOfElements)
Read one or more elements of a single array variable from the server.
LIB61850_API void MmsConnection_fileRename(MmsConnection self, MmsError *mmsError, const char *currentFileName, const char *newFileName)
rename the file with the specified name
LIB61850_API void MmsConnection_readJournalStartAfterAsync(MmsConnection self, uint32_t *usedInvokeId, MmsError *mmsError, const char *domainId, const char *itemId, MmsValue *timeSpecification, MmsValue *entrySpecification, MmsConnection_ReadJournalHandler handler, void *parameter)
@ MMS_CONNECTION_STATE_CLOSING
Definition: mms_client_connection.h:66
@ MMS_CONNECTION_STATE_CONNECTING
Definition: mms_client_connection.h:64
@ MMS_CONNECTION_STATE_CLOSED
Definition: mms_client_connection.h:63
@ MMS_CONNECTION_STATE_CONNECTED
Definition: mms_client_connection.h:65
Definition: mms_client_connection.h:48
int maxServOutstandingCalled
Definition: mms_client_connection.h:50
int maxServOutstandingCalling
Definition: mms_client_connection.h:49
int dataStructureNestingLevel
Definition: mms_client_connection.h:51
int maxPduSize
Definition: mms_client_connection.h:52
Definition: mms_client_connection.h:56
char * vendorName
Definition: mms_client_connection.h:57
char * revision
Definition: mms_client_connection.h:59
char * modelName
Definition: mms_client_connection.h:58
Definition: mms_common.h:148
Definition: mms_client_connection.h:1265
LinkedList journalVariables
Definition: mms_client_connection.h:1268
MmsValue * entryID
Definition: mms_client_connection.h:1266
MmsValue * occurenceTime
Definition: mms_client_connection.h:1267
Definition: mms_client_connection.h:1271
MmsValue * value
Definition: mms_client_connection.h:1273
char * tag
Definition: mms_client_connection.h:1272