Esempio n. 1
0
        /// <summary>
        /// Writes the value of the specified item property.
        /// </summary>
        public Opc.IdentifiedResult Write(
            string itemID,
            PropertyID propertyID,
            Opc.Da.ItemValue value)
        {
            lock (this)
            {
                // lookup item.
                DeviceItem item = (DeviceItem)m_items[itemID];

                if (item == null)
                {
                    return(new IdentifiedResult(itemID, ResultID.Da.E_UNKNOWN_ITEM_NAME));
                }

                // write value.
                return(item.Write(propertyID, value));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Reads a browse element from the XML stream.
        /// </summary>
        private void ReadElement(XmlTextReader reader, string browsePath)
        {
            string itemID = (browsePath == null)?"":browsePath + "/";

            if (reader.MoveToAttribute(ELEMENT_NAME))
            {
                itemID += reader.Value;
            }

            reader.ReadStartElement(BROWSE_ELEMENT);

            // create item.
            if (reader.IsStartElement(ITEM))
            {
                DeviceItem item = new DeviceItem(itemID);

                if (item.Initialize(reader))
                {
                    m_items[itemID] = item;
                    m_itemList.Add(item);
                }
            }

            // read child elements.
            if (reader.IsStartElement(CHILDREN))
            {
                reader.ReadStartElement();

                while (reader.IsStartElement(BROWSE_ELEMENT))
                {
                    ReadElement(reader, itemID);
                }

                reader.ReadEndElement();
            }

            reader.ReadEndElement();
        }