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];
ushort appID = (ushort)outputArguments[0];
ushort objectID = (ushort)outputArguments[1];
byte[] alarmEventData = (byte[])outputArguments[2];
ushort alarmEventType = (ushort)outputArguments[3];
DateTime timeStamp = (DateTime)outputArguments[4];
object serviceError = (object)outputArguments[5];
if (OnCall != null)
{
result = OnCall(
context,
this,
objectId,
communicationRelationId,
ref appID,
ref objectID,
ref alarmEventData,
ref alarmEventType,
ref timeStamp,
ref serviceError);
}
outputArguments[0] = appID;
outputArguments[1] = objectID;
outputArguments[2] = alarmEventData;
outputArguments[3] = alarmEventType;
outputArguments[4] = timeStamp;
outputArguments[5] = serviceError;
return result;
}