From 44d8ad8d156a522e9b3c80748094561e109c0be8 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Thu, 25 Oct 2018 08:40:16 +0200 Subject: [PATCH] - IEC 61850/MMS client: changed all invokeId parameters in async callbacks to uint32_t --- dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs | 12 + .../client_example1.c | 213 ++++-------------- .../client_example_async.c | 8 +- src/iec61850/client/client_report_control.c | 6 +- src/iec61850/client/ied_connection.c | 17 +- src/iec61850/inc/iec61850_client.h | 14 +- src/mms/inc/mms_client_connection.h | 26 +-- .../iso_mms/client/mms_client_connection.c | 28 +-- 8 files changed, 105 insertions(+), 219 deletions(-) diff --git a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs index 8fc72a1d..99945820 100644 --- a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs +++ b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs @@ -386,6 +386,18 @@ namespace IEC61850 [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] static extern void IedConnection_uninstallReportHandler(IntPtr connection, string rcbReference); + /********************* + * Async functions + *********************/ + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + private delegate void IedConnection_ReadObjectHandler (UInt32 invokeId, IntPtr parameter, int err, IntPtr value); + + [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)] + static extern UInt32 + IedConnection_readObjectAsync(IntPtr self, out int error, string objRef, int fc, + IedConnection_ReadObjectHandler handler, IntPtr parameter); + /******************** * FileDirectoryEntry diff --git a/examples/iec61850_client_example1/client_example1.c b/examples/iec61850_client_example1/client_example1.c index c695ba7c..f5b23575 100644 --- a/examples/iec61850_client_example1/client_example1.c +++ b/examples/iec61850_client_example1/client_example1.c @@ -29,30 +29,6 @@ reportCallbackFunction(void* parameter, ClientReport report) } } -static void -printValue(char* name, MmsValue* value) -{ - char buf[1000]; - - MmsValue_printToBuffer(value, buf, 1000); - - printf("Received value for %s: %s\n", name, buf); -} - -static void -readVariableHandler (int invokeId, void* parameter, MmsError mmsError, MmsValue* value) -{ - if (mmsError == MMS_ERROR_NONE) { - - printValue((char*) parameter, value); - - MmsValue_delete(value); - } - else { - printf("Failed to read %s (err=%i)\n", parameter, mmsError); - } -} - int main(int argc, char** argv) { char* hostname; @@ -74,171 +50,76 @@ int main(int argc, char** argv) { if (error == IED_ERROR_OK) { - MmsConnection mmsCon = IedConnection_getMmsConnection(con); - - MmsError mmsErr; + /* read an analog measurement value from server */ + MmsValue* value = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.AnIn1.mag.f", IEC61850_FC_MX); - MmsValue* val1 = MmsConnection_readVariable(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn1$mag$f"); + if (value != NULL) { + float fval = MmsValue_toFloat(value); + printf("read float value: %f\n", fval); + MmsValue_delete(value); + } - if (mmsErr != MMS_ERROR_NONE) - printf("Request 0 failed\n"); - else - printValue("sync read", val1); + /* write a variable to the server */ + value = MmsValue_newVisibleString("libiec61850.com"); + IedConnection_writeObject(con, &error, "simpleIOGenericIO/GGIO1.NamPlt.vendor", IEC61850_FC_DC, value); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn1$mag$f", readVariableHandler, "GGIO1$MX$AnIn1$mag$f"); + if (error != IED_ERROR_OK) + printf("failed to write simpleIOGenericIO/GGIO1.NamPlt.vendor!\n"); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 1 failed\n"); + MmsValue_delete(value); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn2$mag$f", readVariableHandler, "GGIO1$MX$AnIn2$mag$f"); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 2 failed\n"); + /* read data set */ + ClientDataSet clientDataSet = IedConnection_readDataSetValues(con, &error, "simpleIOGenericIO/LLN0.Events", NULL); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn3$mag$f", readVariableHandler, "GGIO1$MX$AnIn3$mag$f"); + if (clientDataSet == NULL) + printf("failed to read dataset\n"); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 3 failed\n"); + /* Read RCB values */ + ClientReportControlBlock rcb = + IedConnection_getRCBValues(con, &error, "simpleIOGenericIO/LLN0.RP.EventsRCB01", NULL); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn4$mag$f", readVariableHandler, "GGIO1$MX$AnIn4$mag$f"); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 4 failed\n"); + bool rptEna = ClientReportControlBlock_getRptEna(rcb); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn1$mag$f", readVariableHandler, "GGIO1$MX$AnIn1$mag$f"); + printf("RptEna = %i\n", rptEna); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 1 failed\n"); + /* Install handler for reports */ + IedConnection_installReportHandler(con, "simpleIOGenericIO/LLN0.RP.EventsRCB01", + ClientReportControlBlock_getRptId(rcb), reportCallbackFunction, NULL); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn2$mag$f", readVariableHandler, "GGIO1$MX$AnIn2$mag$f"); + /* Set trigger options and enable report */ + ClientReportControlBlock_setTrgOps(rcb, TRG_OPT_DATA_UPDATE | TRG_OPT_INTEGRITY | TRG_OPT_GI); + ClientReportControlBlock_setRptEna(rcb, true); + ClientReportControlBlock_setIntgPd(rcb, 5000); + IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_RPT_ENA | RCB_ELEMENT_TRG_OPS | RCB_ELEMENT_INTG_PD, true); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 2 failed\n"); + if (error != IED_ERROR_OK) + printf("report activation failed (code: %i)\n", error); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn3$mag$f", readVariableHandler, "GGIO1$MX$AnIn3$mag$f"); + Thread_sleep(1000); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 3 failed\n"); + /* trigger GI report */ + ClientReportControlBlock_setGI(rcb, true); + IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_GI, true); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn4$mag$f", readVariableHandler, "GGIO1$MX$AnIn4$mag$f"); + if (error != IED_ERROR_OK) + printf("Error triggering a GI report (code: %i)\n", error); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 4 failed\n"); + Thread_sleep(60000); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn1$mag$f", readVariableHandler, "GGIO1$MX$AnIn1$mag$f"); + /* disable reporting */ + ClientReportControlBlock_setRptEna(rcb, false); + IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_RPT_ENA, true); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 1 failed\n"); + if (error != IED_ERROR_OK) + printf("disable reporting failed (code: %i)\n", error); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn2$mag$f", readVariableHandler, "GGIO1$MX$AnIn2$mag$f"); + ClientDataSet_destroy(clientDataSet); - if (mmsErr != MMS_ERROR_NONE) - printf("Request 2 failed\n"); + ClientReportControlBlock_destroy(rcb); - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn3$mag$f", readVariableHandler, "GGIO1$MX$AnIn3$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 3 failed\n"); - - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn4$mag$f", readVariableHandler, "GGIO1$MX$AnIn4$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 4 failed\n"); - - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn1$mag$f", readVariableHandler, "GGIO1$MX$AnIn1$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 1 failed\n"); - - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn2$mag$f", readVariableHandler, "GGIO1$MX$AnIn2$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 2 failed\n"); - - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn3$mag$f", readVariableHandler, "GGIO1$MX$AnIn3$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 3 failed\n"); - - MmsConnection_readVariableAsync(mmsCon, &mmsErr, "simpleIOGenericIO", "GGIO1$MX$AnIn4$mag$f", readVariableHandler, "GGIO1$MX$AnIn4$mag$f"); - - if (mmsErr != MMS_ERROR_NONE) - printf("Request 4 failed\n"); - - - Thread_sleep(10000); - - -// /* read an analog measurement value from server */ -// MmsValue* value = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.AnIn1.mag.f", IEC61850_FC_MX); -// -// if (value != NULL) { -// float fval = MmsValue_toFloat(value); -// printf("read float value: %f\n", fval); -// MmsValue_delete(value); -// } -// -// /* write a variable to the server */ -// value = MmsValue_newVisibleString("libiec61850.com"); -// IedConnection_writeObject(con, &error, "simpleIOGenericIO/GGIO1.NamPlt.vendor", IEC61850_FC_DC, value); -// -// if (error != IED_ERROR_OK) -// printf("failed to write simpleIOGenericIO/GGIO1.NamPlt.vendor!\n"); -// -// MmsValue_delete(value); -// -// -// /* read data set */ -// ClientDataSet clientDataSet = IedConnection_readDataSetValues(con, &error, "simpleIOGenericIO/LLN0.Events", NULL); -// -// if (clientDataSet == NULL) -// printf("failed to read dataset\n"); -// -// /* Read RCB values */ -// ClientReportControlBlock rcb = -// IedConnection_getRCBValues(con, &error, "simpleIOGenericIO/LLN0.RP.EventsRCB01", NULL); -// -// -// bool rptEna = ClientReportControlBlock_getRptEna(rcb); -// -// printf("RptEna = %i\n", rptEna); -// -// /* Install handler for reports */ -// IedConnection_installReportHandler(con, "simpleIOGenericIO/LLN0.RP.EventsRCB01", -// ClientReportControlBlock_getRptId(rcb), reportCallbackFunction, NULL); -// -// /* Set trigger options and enable report */ -// ClientReportControlBlock_setTrgOps(rcb, TRG_OPT_DATA_UPDATE | TRG_OPT_INTEGRITY | TRG_OPT_GI); -// ClientReportControlBlock_setRptEna(rcb, true); -// ClientReportControlBlock_setIntgPd(rcb, 5000); -// IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_RPT_ENA | RCB_ELEMENT_TRG_OPS | RCB_ELEMENT_INTG_PD, true); -// -// if (error != IED_ERROR_OK) -// printf("report activation failed (code: %i)\n", error); -// -// Thread_sleep(1000); -// -// /* trigger GI report */ -// ClientReportControlBlock_setGI(rcb, true); -// IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_GI, true); -// -// if (error != IED_ERROR_OK) -// printf("Error triggering a GI report (code: %i)\n", error); -// -// Thread_sleep(60000); -// -// /* disable reporting */ -// ClientReportControlBlock_setRptEna(rcb, false); -// IedConnection_setRCBValues(con, &error, rcb, RCB_ELEMENT_RPT_ENA, true); -// -// if (error != IED_ERROR_OK) -// printf("disable reporting failed (code: %i)\n", error); -// -// ClientDataSet_destroy(clientDataSet); -// -// ClientReportControlBlock_destroy(rcb); -// -// close_connection: + close_connection: IedConnection_close(con); } diff --git a/examples/iec61850_client_example_async/client_example_async.c b/examples/iec61850_client_example_async/client_example_async.c index ed8627de..a6b4cafe 100644 --- a/examples/iec61850_client_example_async/client_example_async.c +++ b/examples/iec61850_client_example_async/client_example_async.c @@ -42,7 +42,7 @@ printValue(char* name, MmsValue* value) } static void -readObjectHandler (int invokeId, void* parameter, IedClientError err, MmsValue* value) +readObjectHandler (uint32_t invokeId, void* parameter, IedClientError err, MmsValue* value) { if (err == IED_ERROR_OK) { printValue((char*) parameter, value); @@ -50,12 +50,12 @@ readObjectHandler (int invokeId, void* parameter, IedClientError err, MmsValue* MmsValue_delete(value); } else { - printf("Failed to read object %s (err=%i)\n", parameter, err); + printf("Failed to read object %s (err=%i)\n", (char*) parameter, err); } } static void -getVarSpecHandler (int invokeId, void* parameter, IedClientError err, MmsVariableSpecification* spec) +getVarSpecHandler (uint32_t invokeId, void* parameter, IedClientError err, MmsVariableSpecification* spec) { if (err == IED_ERROR_OK) { printf("variable: %s has type %d\n", (char*) parameter, MmsVariableSpecification_getType(spec)); @@ -63,7 +63,7 @@ getVarSpecHandler (int invokeId, void* parameter, IedClientError err, MmsVariabl MmsVariableSpecification_destroy(spec); } else { - printf("Failed to get variable specification for object %s (err=%i)\n", parameter, err); + printf("Failed to get variable specification for object %s (err=%i)\n", (char*) parameter, err); } } diff --git a/src/iec61850/client/client_report_control.c b/src/iec61850/client/client_report_control.c index a4672efc..7f3377ab 100644 --- a/src/iec61850/client/client_report_control.c +++ b/src/iec61850/client/client_report_control.c @@ -512,7 +512,7 @@ clientReportControlBlock_updateValues(ClientReportControlBlock self, MmsValue* v } static void -readObjectHandlerInternal(int invokeId, void* parameter, MmsError err, MmsValue* value) +readObjectHandlerInternal(uint32_t invokeId, void* parameter, MmsError err, MmsValue* value) { IedConnection self = (IedConnection) parameter; @@ -696,7 +696,7 @@ IedConnection_getRCBValues(IedConnection self, IedClientError* error, const char } static void -writeMultipleVariablesHandler(int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults) +writeMultipleVariablesHandler(uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults) { IedConnection self = (IedConnection) parameter; @@ -763,7 +763,7 @@ releaseWriteCall(IedConnection self, IedConnectionOutstandingCall call, struct s } static void -writeVariableHandler(int invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError) +writeVariableHandler(uint32_t invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError) { IedConnection self = (IedConnection) parameter; diff --git a/src/iec61850/client/ied_connection.c b/src/iec61850/client/ied_connection.c index ad9d4fae..88e9e691 100644 --- a/src/iec61850/client/ied_connection.c +++ b/src/iec61850/client/ied_connection.c @@ -808,7 +808,7 @@ cleanup_and_exit: } static void -getAccessAttrHandler(int invokeId, void* parameter, MmsError err, MmsVariableSpecification* typeSpec) +getAccessAttrHandler(uint32_t invokeId, void* parameter, MmsError err, MmsVariableSpecification* typeSpec) { IedConnection self = (IedConnection) parameter; @@ -890,7 +890,7 @@ IedConnection_getLogicalDeviceVariables(IedConnection self, IedClientError* erro } static void -readObjectHandlerInternal(int invokeId, void* parameter, MmsError err, MmsValue* value) +readObjectHandlerInternal(uint32_t invokeId, void* parameter, MmsError err, MmsValue* value) { IedConnection self = (IedConnection) parameter; @@ -1293,7 +1293,7 @@ IedConnection_writeObject(IedConnection self, IedClientError* error, const char* } static void -writeVariableHandler(int invokeId, void* parameter, MmsError err, MmsDataAccessError accessError) +writeVariableHandler(uint32_t invokeId, void* parameter, MmsError err, MmsDataAccessError accessError) { IedConnection self = (IedConnection) parameter; @@ -1649,12 +1649,8 @@ struct sClientProvidedFileReadHandler { uint32_t byteReceived; }; -typedef void -(*IedConnection_FileDirectoryHandler) (int invokeId, void* parameter, IedClientError err, char* filename, uint32_t size, uint64_t lastModfified, - bool moreFollows); - static void -fileDirectoryHandler(int invokeId, void* parameter, MmsError err, char* filename, uint32_t size, uint64_t lastModfified, +fileDirectoryHandler(uint32_t invokeId, void* parameter, MmsError err, char* filename, uint32_t size, uint64_t lastModfified, bool moreFollows) { IedConnection self = (IedConnection) parameter; @@ -2969,11 +2965,8 @@ IedConnection_queryLogByTime(IedConnection self, IedClientError* error, const ch } -typedef void -(*IedConnection_QueryLogHandler) (int invokeId, void* parameter, IedClientError mmsError, LinkedList /* */ journalEntries, bool moreFollows); - static void -readJournalHandler(int invokeId, void* parameter, MmsError err, LinkedList /* */ journalEntries, bool moreFollows) +readJournalHandler(uint32_t invokeId, void* parameter, MmsError err, LinkedList /* */ journalEntries, bool moreFollows) { IedConnection self = (IedConnection) parameter; diff --git a/src/iec61850/inc/iec61850_client.h b/src/iec61850/inc/iec61850_client.h index ea56d804..d59f05d1 100644 --- a/src/iec61850/inc/iec61850_client.h +++ b/src/iec61850/inc/iec61850_client.h @@ -716,7 +716,7 @@ LIB61850_API MmsValue* IedConnection_readObject(IedConnection self, IedClientError* error, const char* dataAttributeReference, FunctionalConstraint fc); typedef void -(*IedConnection_ReadObjectHandler) (int invokeId, void* parameter, IedClientError err, MmsValue* value); +(*IedConnection_ReadObjectHandler) (uint32_t invokeId, void* parameter, IedClientError err, MmsValue* value); LIB61850_API uint32_t IedConnection_readObjectAsync(IedConnection self, IedClientError* error, const char* objRef, FunctionalConstraint fc, @@ -736,7 +736,7 @@ IedConnection_writeObject(IedConnection self, IedClientError* error, const char* MmsValue* value); typedef void -(*IedConnection_WriteObjectHandler) (int invokeId, void* parameter, IedClientError err); +(*IedConnection_WriteObjectHandler) (uint32_t invokeId, void* parameter, IedClientError err); LIB61850_API uint32_t IedConnection_writeObjectAsync(IedConnection self, IedClientError* error, const char* objectReference, @@ -961,7 +961,7 @@ IedConnection_getRCBValues(IedConnection self, IedClientError* error, const char ClientReportControlBlock updateRcb); typedef void -(*IedConnection_GetRCBValuesHandler) (int invokeId, void* parameter, IedClientError err, ClientReportControlBlock rcb); +(*IedConnection_GetRCBValuesHandler) (uint32_t invokeId, void* parameter, IedClientError err, ClientReportControlBlock rcb); LIB61850_API uint32_t IedConnection_getRCBValuesAsync(IedConnection self, IedClientError* error, const char* rcbReference, ClientReportControlBlock updateRcb, @@ -2016,7 +2016,7 @@ IedConnection_getVariableSpecification(IedConnection self, IedClientError* error *****************************************/ typedef void -(*IedConnection_GetNameListHandler) (int invokeId, void* parameter, IedClientError err, LinkedList nameList, bool moreFollows); +(*IedConnection_GetNameListHandler) (uint32_t invokeId, void* parameter, IedClientError err, LinkedList nameList, bool moreFollows); LIB61850_API uint32_t IedConnection_getServerDirectoryAsync(IedConnection self, IedClientError* error, const char* continueAfter, bool getFileNames, @@ -2028,7 +2028,7 @@ IedConnection_getLogicalDeviceVariables(IedConnection self, IedClientError* erro typedef void -(*IedConnection_GetVariableSpecificationHandler) (int invokeId, void* parameter, IedClientError err, MmsVariableSpecification* spec); +(*IedConnection_GetVariableSpecificationHandler) (uint32_t invokeId, void* parameter, IedClientError err, MmsVariableSpecification* spec); LIB61850_API uint32_t IedConnection_getVariableSpecificationAsync(IedConnection self, IedClientError* error, const char* dataAttributeReference, @@ -2086,7 +2086,7 @@ IedConnection_queryLogAfter(IedConnection self, IedClientError* error, const cha typedef void -(*IedConnection_QueryLogHandler) (int invokeId, void* parameter, IedClientError mmsError, LinkedList /* */ journalEntries, bool moreFollows); +(*IedConnection_QueryLogHandler) (uint32_t invokeId, void* parameter, IedClientError mmsError, LinkedList /* */ journalEntries, bool moreFollows); LIB61850_API uint32_t IedConnection_queryLogByTimeAsync(IedConnection self, IedClientError* error, const char* logReference, @@ -2214,7 +2214,7 @@ IedConnection_getFileDirectoryEx(IedConnection self, IedClientError* error, cons * \ref err != IED_ERROR_OK and moreFollows = false. */ typedef void -(*IedConnection_FileDirectoryHandler) (int invokeId, void* parameter, IedClientError err, char* filename, uint32_t size, uint64_t lastModfified, +(*IedConnection_FileDirectoryHandler) (uint32_t invokeId, void* parameter, IedClientError err, char* filename, uint32_t size, uint64_t lastModfified, bool moreFollows); LIB61850_API uint32_t diff --git a/src/mms/inc/mms_client_connection.h b/src/mms/inc/mms_client_connection.h index 4a27e521..02fd0774 100644 --- a/src/mms/inc/mms_client_connection.h +++ b/src/mms/inc/mms_client_connection.h @@ -327,10 +327,10 @@ LIB61850_API void MmsConnection_concludeAsync(MmsConnection self, MmsError* mmsError, MmsConnection_ConcludeAbortHandler handler, void* parameter); typedef void -(*MmsConnection_GenericServiceHandler) (int invokeId, void* parameter, MmsError mmsError, bool success); +(*MmsConnection_GenericServiceHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, bool success); typedef void -(*MmsConnection_GetNameListHandler) (int invokeId, void* parameter, MmsError mmsError, LinkedList nameList, bool moreFollows); +(*MmsConnection_GetNameListHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList nameList, bool moreFollows); /** * \brief Get the names of all VMD scope variables of the server. @@ -456,7 +456,7 @@ MmsConnection_readVariable(MmsConnection self, MmsError* mmsError, const char* d typedef void -(*MmsConnection_ReadVariableHandler) (int invokeId, void* parameter, MmsError mmsError, MmsValue* value); +(*MmsConnection_ReadVariableHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsValue* value); /** * \brief Read a single variable from the server (asynchronous version) @@ -572,7 +572,7 @@ MmsConnection_writeVariable(MmsConnection self, MmsError* mmsError, const char* domainId, const char* itemId, MmsValue* value); typedef void -(*MmsConnection_WriteVariableHandler) (int invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError); +(*MmsConnection_WriteVariableHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError); LIB61850_API uint32_t MmsConnection_writeVariableAsync(MmsConnection self, MmsError* mmsError, @@ -635,7 +635,7 @@ MmsConnection_writeArrayElementsAsync(MmsConnection self, MmsError* mmsError, typedef void -(*MmsConnection_WriteMultipleVariablesHandler) (int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults); +(*MmsConnection_WriteMultipleVariablesHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults); /** @@ -707,7 +707,7 @@ MmsConnection_getVariableAccessAttributes(MmsConnection self, MmsError* mmsError const char* domainId, const char* itemId); typedef void -(*MmsConnection_GetVariableAccessAttributesHandler) (int invokeId, void* parameter, MmsError mmsError, MmsVariableSpecification* spec); +(*MmsConnection_GetVariableAccessAttributesHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, MmsVariableSpecification* spec); LIB61850_API uint32_t @@ -825,7 +825,7 @@ MmsConnection_readNamedVariableListDirectory(MmsConnection self, MmsError* mmsEr typedef void -(*MmsConnection_ReadNVLDirectoryHandler) (int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ specs, bool deletable); +(*MmsConnection_ReadNVLDirectoryHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ specs, bool deletable); LIB61850_API uint32_t @@ -961,7 +961,7 @@ LIB61850_API MmsServerIdentity* MmsConnection_identify(MmsConnection self, MmsError* mmsError); typedef void -(*MmsConnection_IdentifyHandler) (int invokeId, void* parameter, MmsError mmsError, +(*MmsConnection_IdentifyHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, char* vendorName, char* modelName, char* revision); LIB61850_API uint32_t @@ -988,7 +988,7 @@ MmsConnection_getServerStatus(MmsConnection self, MmsError* mmsError, int* vmdLo bool extendedDerivation); typedef void -(*MmsConnection_GetServerStatusHandler) (int invokeId, void* parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus); +(*MmsConnection_GetServerStatusHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus); LIB61850_API uint32_t MmsConnection_getServerStatusAsync(MmsConnection self, MmsError* mmsError, bool extendedDerivation, @@ -1009,14 +1009,14 @@ typedef void * \ref mmsError != MMS_ERROR_NONE and moreFollows = false. */ typedef void -(*MmsConnection_FileDirectoryHandler) (int invokeId, void* parameter, MmsError mmsError, char* filename, uint32_t size, uint64_t lastModfified, +(*MmsConnection_FileDirectoryHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, char* filename, uint32_t size, uint64_t lastModfified, bool moreFollows); typedef void (*MmsFileReadHandler) (void* parameter, int32_t frsmId, uint8_t* buffer, uint32_t bytesReceived); typedef void -(*MmsConnection_FileReadHandler) (int invokeId, void* parameter, MmsError mmsError, uint8_t* buffer, uint32_t byteReceived, +(*MmsConnection_FileReadHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, uint8_t* buffer, uint32_t byteReceived, bool moreFollows); @@ -1033,7 +1033,7 @@ MmsConnection_fileOpen(MmsConnection self, MmsError* mmsError, const char* filen uint32_t* fileSize, uint64_t* lastModified); typedef void -(*MmsConnection_FileOpenHandler) (int invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified); +(*MmsConnection_FileOpenHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified); LIB61850_API uint32_t MmsConnection_fileOpenAsync(MmsConnection self, MmsError* mmsError, const char* filename, uint32_t initialPosition, MmsConnection_FileOpenHandler handler, @@ -1185,7 +1185,7 @@ LIB61850_API const MmsValue* MmsJournalVariable_getValue(MmsJournalVariable self); typedef void -(*MmsConnection_ReadJournalHandler) (int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ journalEntries, bool moreFollows); +(*MmsConnection_ReadJournalHandler) (uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ journalEntries, bool moreFollows); LIB61850_API LinkedList /* */ diff --git a/src/mms/iso_mms/client/mms_client_connection.c b/src/mms/iso_mms/client/mms_client_connection.c index 3bb10924..14a54efe 100644 --- a/src/mms/iso_mms/client/mms_client_connection.c +++ b/src/mms/iso_mms/client/mms_client_connection.c @@ -1870,7 +1870,7 @@ struct getNameListParameters }; static void -getNameListHandler(int invokeId, void* parameter, MmsError mmsError, LinkedList nameList, bool moreFollows) +getNameListHandler(uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList nameList, bool moreFollows) { struct getNameListParameters* parameters = (struct getNameListParameters*) parameter; @@ -2036,7 +2036,7 @@ struct readNVParameters }; static void -readVariableHandler(int invokeId, void* parameter, MmsError mmsError, MmsValue* value) +readVariableHandler(uint32_t invokeId, void* parameter, MmsError mmsError, MmsValue* value) { struct readNVParameters* parameters = (struct readNVParameters*) parameter; @@ -2430,7 +2430,7 @@ struct readNVLDirectoryParameters }; static void -readNVLDirectoryHandler(int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ specs, bool deletable) +readNVLDirectoryHandler(uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ specs, bool deletable) { struct readNVLDirectoryParameters* parameters = (struct readNVLDirectoryParameters*) parameter; @@ -2580,7 +2580,7 @@ struct defineNVLParameters }; static void -defineNVLHandler(int invokeId, void* parameter, MmsError mmsError, bool success) +defineNVLHandler(uint32_t invokeId, void* parameter, MmsError mmsError, bool success) { struct defineNVLParameters* parameters = (struct defineNVLParameters*) parameter; @@ -2825,7 +2825,7 @@ struct getVarAccessAttrParameters }; static void -getAccessAttrHandler(int invokeId, void* parameter, MmsError mmsError, MmsVariableSpecification* typeSpec) +getAccessAttrHandler(uint32_t invokeId, void* parameter, MmsError mmsError, MmsVariableSpecification* typeSpec) { struct getVarAccessAttrParameters* parameters = (struct getVarAccessAttrParameters*) parameter; @@ -2902,7 +2902,7 @@ struct identifyParameters }; static void -identifyHandler(int invokeId, void* parameter, MmsError mmsError, char* vendorName, char* modelName, char* revision) +identifyHandler(uint32_t invokeId, void* parameter, MmsError mmsError, char* vendorName, char* modelName, char* revision) { struct identifyParameters* parameters = (struct identifyParameters*) parameter; @@ -2985,7 +2985,7 @@ struct getServerStatusParameters }; static void -getServerStatusHandler(int invokeId, void* parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus) +getServerStatusHandler(uint32_t invokeId, void* parameter, MmsError mmsError, int vmdLogicalStatus, int vmdPhysicalStatus) { struct getServerStatusParameters* parameters = (struct getServerStatusParameters*) parameter; @@ -3120,7 +3120,7 @@ struct readJournalParameters }; static void -readJournalHandler(int invokeId, void* parameter, MmsError mmsError, LinkedList entries, bool moreFollows) +readJournalHandler(uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList entries, bool moreFollows) { struct readJournalParameters* parameters = (struct readJournalParameters*) parameter; @@ -3279,7 +3279,7 @@ struct fileOpenParameters }; static void -fileOpenHandler(int invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified) +fileOpenHandler(uint32_t invokeId, void* parameter, MmsError mmsError, int32_t frsmId, uint32_t fileSize, uint64_t lastModified) { struct fileOpenParameters* parameters = (struct fileOpenParameters*) parameter; @@ -3383,7 +3383,7 @@ struct fileOperationParameters }; static void -fileOperationHandler(int invokeId, void* parameter, MmsError mmsError, bool success) +fileOperationHandler(uint32_t invokeId, void* parameter, MmsError mmsError, bool success) { struct fileOperationParameters* parameters = (struct fileOperationParameters*) parameter; @@ -3546,7 +3546,7 @@ struct fileReadParameters }; static void -fileReadHandler(int invokeId, void* parameter, MmsError mmsError, uint8_t* buffer, uint32_t byteReceived, +fileReadHandler(uint32_t invokeId, void* parameter, MmsError mmsError, uint8_t* buffer, uint32_t byteReceived, bool moreFollows) { struct fileReadParameters* parameters = (struct fileReadParameters*) parameter; @@ -3649,7 +3649,7 @@ struct getFileDirParameters }; static void -getFileDirHandler(int invokeId, void* parameter, MmsError mmsError, char* filename, uint32_t size, uint64_t lastModified, +getFileDirHandler(uint32_t invokeId, void* parameter, MmsError mmsError, char* filename, uint32_t size, uint64_t lastModified, bool moreFollows) { struct getFileDirParameters* parameters = (struct getFileDirParameters*) parameter; @@ -3892,7 +3892,7 @@ exit_function: } static void -writeVariableHandler(int invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError) +writeVariableHandler(uint32_t invokeId, void* parameter, MmsError mmsError, MmsDataAccessError accessError) { struct writeVariableParameters* parameters = (struct writeVariableParameters*) parameter; @@ -4031,7 +4031,7 @@ struct writeMultipleVariablesParameter }; static void -writeMultipleVariablesHandler(int invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults) +writeMultipleVariablesHandler(uint32_t invokeId, void* parameter, MmsError mmsError, LinkedList /* */ accessResults) { struct writeMultipleVariablesParameter* parameters = (struct writeMultipleVariablesParameter*) parameter;