@ -837,6 +837,9 @@ namespace IEC61850
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr ClientConnection_getPeerAddress ( IntPtr self ) ;
static extern IntPtr ClientConnection_getPeerAddress ( IntPtr self ) ;
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr ClientConnection_getLocalAddress ( IntPtr self ) ;
internal IntPtr self ;
internal IntPtr self ;
internal ClientConnection ( IntPtr self ) {
internal ClientConnection ( IntPtr self ) {
@ -852,6 +855,16 @@ namespace IEC61850
else
else
return null ;
return null ;
}
}
public string GetLocalAddress ( )
{
IntPtr localAddrPtr = ClientConnection_getLocalAddress ( self ) ;
if ( localAddrPtr ! = IntPtr . Zero )
return Marshal . PtrToStringAnsi ( localAddrPtr ) ;
else
return null ;
}
}
}
/// <summary>
/// <summary>
@ -1065,6 +1078,9 @@ namespace IEC61850
[return: MarshalAs(UnmanagedType.Bool)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IedServer_isRunning ( IntPtr self ) ;
static extern bool IedServer_isRunning ( IntPtr self ) ;
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern int IedServer_getNumberOfOpenConnections ( IntPtr self ) ;
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern void IedServer_lockDataModel ( IntPtr self ) ;
static extern void IedServer_lockDataModel ( IntPtr self ) ;
@ -1395,6 +1411,15 @@ namespace IEC61850
return IedServer_isRunning ( self ) ;
return IedServer_isRunning ( self ) ;
}
}
/// <summary>
/// Get number of open MMS connections
/// </summary>
/// <returns>the number of open and accepted MMS connections</returns>
public int GetNumberOfOpenConnections ( )
{
return IedServer_getNumberOfOpenConnections ( self ) ;
}
private ControlHandlerInfo GetControlHandlerInfo ( DataObject controlObject )
private ControlHandlerInfo GetControlHandlerInfo ( DataObject controlObject )
{
{
ControlHandlerInfo info ;
ControlHandlerInfo info ;