示例#1
0
        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);
        }
示例#2
0
        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);
        }