Merge branch 'master' of github/libiec61850

This commit is contained in:
Michael Zillgith 2017-07-11 08:15:28 +02:00
commit 180673ebfa

View file

@ -659,7 +659,9 @@ namespace IEC61850
private IntPtr self = IntPtr.Zero;
private InternalControlHandler internalControlHandlerRef = null;
private InternalControlPerformCheckHandler internalControlPerformCheckHandlerRef = null;
private InternalControlWaitForExecutionHandler internalControlWaitForExecutionHandlerRef = null;
private class ControlHandlerInfo {
public DataObject controlObject = null;
@ -884,7 +886,10 @@ namespace IEC61850
info.controlHandler = handler;
info.controlHandlerParameter = parameter;
IedServer_setControlHandler(self, controlObject.self, internalControlHandler, GCHandle.ToIntPtr(info.handle));
if (internalControlHandlerRef == null)
internalControlHandlerRef = new InternalControlHandler (internalControlHandler);
IedServer_setControlHandler(self, controlObject.self, internalControlHandlerRef, GCHandle.ToIntPtr(info.handle));
}
public void SetCheckHandler (DataObject controlObject, CheckHandler handler, object parameter)
@ -894,7 +899,10 @@ namespace IEC61850
info.checkHandler = handler;
info.checkHandlerParameter = parameter;
IedServer_setPerformCheckHandler(self, controlObject.self, internalCheckHandler, GCHandle.ToIntPtr(info.handle));
if (internalControlPerformCheckHandlerRef == null)
internalControlPerformCheckHandlerRef = new InternalControlPerformCheckHandler (internalCheckHandler);
IedServer_setPerformCheckHandler(self, controlObject.self, internalControlPerformCheckHandlerRef, GCHandle.ToIntPtr(info.handle));
}
public void SetWaitForExecutionHandler (DataObject controlObject, ControlWaitForExecutionHandler handler, object parameter)
@ -904,7 +912,10 @@ namespace IEC61850
info.waitForExecHandler = handler;
info.waitForExecHandlerParameter = parameter;
IedServer_setWaitForExecutionHandler(self, controlObject.self, internalControlWaitForExecutionHandler, GCHandle.ToIntPtr(info.handle));
if (internalControlWaitForExecutionHandlerRef == null)
internalControlWaitForExecutionHandlerRef = new InternalControlWaitForExecutionHandler (internalControlWaitForExecutionHandler);
IedServer_setWaitForExecutionHandler(self, controlObject.self, internalControlWaitForExecutionHandlerRef, GCHandle.ToIntPtr(info.handle));
}
public void HandleWriteAccess (DataAttribute dataAttr, WriteAccessHandler handler, object parameter)