protected override DataValue Read( RequestContext context, NodeAttributeHandle nodeHandle, string indexRange, QualifiedName dataEncoding) { DataValue baseValue = base.Read(context, nodeHandle, indexRange, dataEncoding); if (nodeHandle.AttributeId != 13) { return(baseValue); } var processVariable = nodeHandle.UserData as VariableNode; var processVariableData = processVariable?.UserData as VariableNodeData; if (processVariableData == null) { return(baseValue); } var v = new DataValue(processVariableData.ReadValue()); return(v); }
protected override StatusCode?Write( RequestContext context, NodeAttributeHandle nodeHandle, string indexRange, DataValue value) { StatusCode?statusCode = base.Write(context, nodeHandle, indexRange, value); var processVariable = nodeHandle?.UserData as VariableNode; var processVariableData = processVariable?.UserData as VariableNodeData; if (processVariableData == null) { return(statusCode); } return(processVariableData.WriteValue(value.Value) && statusCode != null && StatusCode.IsGood((StatusCode)statusCode) ? StatusCodes.Good : StatusCodes.Bad); }