protected override ServiceResult Call(
ISystemContext context,
NodeId objectId,
IList<object> inputArguments,
IList<object> outputArguments)
{
if (OnCall == null)
{
return base.Call(context, objectId, inputArguments, outputArguments);
}
ServiceResult result = null;
byte[] communicationRelationId = (byte[])inputArguments[0];
string header = (string)inputArguments[1];
byte[] requestData = (byte[])inputArguments[2];
EddDataTypeInfo[] requestDataTypes = (EddDataTypeInfo[])ExtensionObject.ToArray(inputArguments[3], typeof(EddDataTypeInfo));
EddDataTypeInfo[] responseDataTypes = (EddDataTypeInfo[])ExtensionObject.ToArray(inputArguments[4], typeof(EddDataTypeInfo));
byte[] responseData = (byte[])outputArguments[0];
byte[] rESPONSE_CODES = (byte[])outputArguments[1];
object serviceError = (object)outputArguments[2];
if (OnCall != null)
{
result = OnCall(
context,
this,
objectId,
communicationRelationId,
header,
requestData,
requestDataTypes,
responseDataTypes,
ref responseData,
ref rESPONSE_CODES,
ref serviceError);
}
outputArguments[0] = responseData;
outputArguments[1] = rESPONSE_CODES;
outputArguments[2] = serviceError;
return result;
}