diff --git a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs index 374d3a8..98d1bad 100644 --- a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs +++ b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs @@ -823,7 +823,7 @@ namespace IEC61850 return QueryLogByTime (logRef, startTimeMs, stopTimeMs, out moreFollows); } - /// Read the variable specification (type description of a DA or FDCO + /// Read the variable specification (type description of a DA or FCDO /// The object reference of a DA or FCDO. /// The functional constraint (FC) of the object /// This exception is thrown if there is a connection or service error diff --git a/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj b/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj index 1c22e5a..dc2a4dc 100644 --- a/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj +++ b/dotnet/IEC61850forCSharp/IEC61850forCSharp.csproj @@ -7,8 +7,6 @@ Library iec61850dotnet iec61850dotnet - 8.0.30703 - 2.0 true diff --git a/examples/iec61850_client_example1/client_example1.c b/examples/iec61850_client_example1/client_example1.c index e20a232..1142c76 100644 --- a/examples/iec61850_client_example1/client_example1.c +++ b/examples/iec61850_client_example1/client_example1.c @@ -50,6 +50,8 @@ int main(int argc, char** argv) { if (error == IED_ERROR_OK) { + IedConnection_getServerDirectory(con, &error, false); + /* read an analog measurement value from server */ MmsValue* value = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.AnIn1.mag.f", IEC61850_FC_MX); diff --git a/src/iec61850/client/ied_connection.c b/src/iec61850/client/ied_connection.c index 29ba1b4..ac91bf6 100644 --- a/src/iec61850/client/ied_connection.c +++ b/src/iec61850/client/ied_connection.c @@ -1981,13 +1981,9 @@ getDataDirectoryByFc(IedConnection self, IedClientError* error, int elementNameLen = strlen(subElementName); - char* elementName = (char*) GLOBAL_MALLOC(elementNameLen + 5); + char* elementName = (char*) GLOBAL_MALLOC(elementNameLen + 1); memcpy(elementName, subElementName, elementNameLen); - elementName[elementNameLen] = '['; - elementName[elementNameLen + 1] = *(fcPos + 1); - elementName[elementNameLen + 2] = *(fcPos + 2); - elementName[elementNameLen + 3] = ']'; - elementName[elementNameLen + 4] = 0; + elementName[elementNameLen] = 0; if (!addToStringSet(dataDirectory, elementName)) GLOBAL_FREEMEM(elementName); diff --git a/src/iec61850/inc/iec61850_client.h b/src/iec61850/inc/iec61850_client.h index c72784a..254abb6 100644 --- a/src/iec61850/inc/iec61850_client.h +++ b/src/iec61850/inc/iec61850_client.h @@ -1740,8 +1740,10 @@ IedConnection_getDataDirectoryFC(IedConnection self, IedClientError* error, cons * \brief returns the directory of the given data object/data attribute with the given FC * * Implementation of the GetDataDirectory ACSI service. This will return the list of - * C strings with all data attributes or sub data objects as elements. The returned - * strings will contain the functional constraint appended in square brackets when appropriate. + * C strings with all data attributes or sub data objects as elements. + * + * WARNING: Starting with version 1.0.3 the functional constraint will no longer be appended to + * the name string. * * \param self the connection object * \param error the error code if an error occurs