diff --git a/dotnet/IEC61850forCSharp/IEC61850ServerAPI.cs b/dotnet/IEC61850forCSharp/IEC61850ServerAPI.cs
index 3cd8b548..ebb61dbd 100644
--- a/dotnet/IEC61850forCSharp/IEC61850ServerAPI.cs
+++ b/dotnet/IEC61850forCSharp/IEC61850ServerAPI.cs
@@ -2136,6 +2136,9 @@ namespace IEC61850
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr IedServer_getAttributeValue(IntPtr self, IntPtr dataAttribute);
+ [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
+ static extern IntPtr IedServer_getFunctionalConstrainedData(IntPtr self, IntPtr dataObject, int fc);
+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int InternalControlPerformCheckHandler (IntPtr action, IntPtr parameter, IntPtr ctlVal, [MarshalAs(UnmanagedType.I1)] bool test, [MarshalAs(UnmanagedType.I1)] bool interlockCheck);
@@ -2757,6 +2760,22 @@ namespace IEC61850
return null;
}
+ ///
+ /// Get the MmsValue object related to a functional constrained data object (FCD)
+ ///
+ /// the data object to specify the FCD
+ /// the FC to specify the FCD
+ /// FCDO corresponding MmsValue object cached by the server
+ public MmsValue GetFunctionalConstrainedData(DataObject dataObject, FunctionalConstraint fc)
+ {
+ IntPtr mmsValuePtr = IedServer_getFunctionalConstrainedData(self, dataObject.self, (int)fc);
+
+ if (mmsValuePtr != IntPtr.Zero)
+ return new MmsValue(mmsValuePtr);
+ else
+ return null;
+ }
+
///
/// Enable all GOOSE control blocks.
///
diff --git a/src/iec61850/inc/iec61850_server.h b/src/iec61850/inc/iec61850_server.h
index 902e4de3..5a3dd29d 100644
--- a/src/iec61850/inc/iec61850_server.h
+++ b/src/iec61850/inc/iec61850_server.h
@@ -911,9 +911,8 @@ IedServer_getBitStringAttributeValue(IedServer self, const DataAttribute* dataAt
LIB61850_API const char*
IedServer_getStringAttributeValue(IedServer self, const DataAttribute* dataAttribute);
-
/**
- * \brief Get the MmsValue object related to a FunctionalConstrainedData object
+ * \brief Get the MmsValue object related to a functional constrained data object (FCD)
*
* Get the MmsValue from the server cache that is associated with the Functional Constrained Data (FCD)
* object that is specified by the DataObject and the given Function Constraint (FC).