/// <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)); } }
/// <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(); }