Example #1
0
        /// <summary>
        /// Converts a UA value to an HDA attribute value.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="attributeId">The attribute id.</param>
        /// <param name="values">The values.</param>
        /// <param name="index">The index.</param>
        /// <returns></returns>
        private DaValue GetAttributeValue(Session session, uint attributeId, DataValueCollection values, int index)
        {
            switch (attributeId)
            {
            case Constants.OPCHDA_DATA_TYPE:
            {
                DaValue   result = new DaValue();
                DataValue value  = values[index];

                // check for valid node.
                if (StatusCode.IsBad(value.StatusCode))
                {
                    result.Error = ResultIds.E_UNKNOWNITEMID;
                    return(result);
                }

                // covert to var type.
                NodeId dataTypeId = value.GetValue <NodeId>(DataTypeIds.BaseDataType);
                int    valueRank  = values[index + 1].GetValue <int>(ValueRanks.Scalar);

                BuiltInType builtInType = DataTypes.GetBuiltInType(dataTypeId, session.TypeTree);
                TypeInfo    typeInfo    = new TypeInfo(builtInType, valueRank);
                short       varType     = (short)ComUtils.GetVarType(typeInfo);

                result.Value     = varType;
                result.Quality   = ComUtils.GetQualityCode(value.StatusCode);
                result.Timestamp = value.ServerTimestamp;
                result.Error     = ResultIds.S_OK;

                return(result);
            }

            case Constants.OPCHDA_DESCRIPTION:
            {
                DataValue value = values[index];

                if (value.StatusCode == StatusCodes.BadAttributeIdInvalid)
                {
                    DaValue result = new DaValue();
                    result.Error = ResultIds.E_INVALIDATTRID;
                    return(result);
                }

                return(m_mapper.GetLocalDataValue(value));
            }

            default:
            {
                return(ComHdaProxy.GetAttributeValue(session, m_mapper, attributeId, values[index]));
            }
            }
        }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ComHdaBrowser"/> class.
 /// </summary>
 /// <param name="server">The server.</param>
 /// <param name="browseManager">The browse manager.</param>
 public ComHdaBrowser(ComHdaProxy server, ComDaBrowseManager browseManager)
 {
     m_server        = server;
     m_browseManager = browseManager;
 }