protected override object Read(uint attributeId)
{
switch (attributeId)
{
case Attributes.DataType: return m_dataType;
case Attributes.ValueRank: return m_valueRank;
case Attributes.AccessLevel: return m_accessLevel;
case Attributes.UserAccessLevel: return m_userAccessLevel;
case Attributes.MinimumSamplingInterval: return m_minimumSamplingInterval;
case Attributes.Historizing: return m_historizing;
// values are copied when the are written so then can be safely returned.
case Attributes.Value:
{
return m_value.Value;
}
// array dimensions attribute is not support if it is empty.
case Attributes.ArrayDimensions:
{
if (m_arrayDimensions == null || m_arrayDimensions.Count == 0)
{
return StatusCodes.BadAttributeIdInvalid;
}
return m_arrayDimensions.ToArray();
}
}
return base.Read(attributeId);
}