} // end HandleItemWriteRequest /// <summary> /// Executes the command /// </summary> /// <param name="anAddress"></param> /// <param name="aCommand"></param> /// <returns></returns> protected int ExecuteCommands( string anAddress, string aCommand, string aDescription) { try { // Delegate command execution to the application AddressSpaceElement targetElement; // TODO: replace the QueryAddressSpaceElementData call with BISDemo specific message BISDaRoot daRoot = Application.Instance.DaAddressSpaceRoot as BISDaRoot; daRoot.findAddressSpaceElementData(anAddress, out targetElement); DaBaseElement element = targetElement as DaBaseElement; if (element == null) { // the targeted element was not found return((int)EnumResultCode.E_FAIL); } // end if return(element.ExecuteCommand(anAddress, aCommand, aDescription)); } catch { return((int)EnumResultCode.E_FAIL); } // end try ... catch } // end ExecuteCommand
//--------------------------------- // TODO Implement this methods for string based address space using the DA address space elements /// <summary> /// Returns the corresponding namespace-element /// </summary> /// <param name="ElementID">Namespace path of the element</param> /// <param name="Element">returned element</param> /// <returns> /// EnumResultCode.E_NOTIMPL°Must be overridden /// </returns> public override int QueryAddressSpaceElementData(string anElementId, out AddressSpaceElement anElement) { anElement = null; BISDaRoot daRoot = Application.Instance.DaAddressSpaceRoot as BISDaRoot; AddressSpaceElement anAddressSpaceElement = null; daRoot.findAddressSpaceElementData(anElementId, out anAddressSpaceElement); if (anAddressSpaceElement != null) { DaBaseElement daElement = anAddressSpaceElement as DaBaseElement; if (daElement != null) { anElement = new AeAddressSpaceElement(); anElement.Name = daElement.Name; anElement.HasChildren = daElement.HasChildren; return((int)EnumResultCode.S_OK); } // end if } // end if .. else return((int)EnumResultCode.S_FALSE); } // end QueryAddressSpaceElementData
} // end QueryAddressSpaceElementData public override int QueryAddressSpaceElementChildren(string anElementId, ArrayList aChildrenList) { BISDaRoot daRoot = Application.Instance.DaAddressSpaceRoot as BISDaRoot; ArrayList elements = null; if (anElementId == "") { elements = ArrayList.Synchronized(daRoot.GetChildren()); } else { AddressSpaceElement anElement = null; daRoot.findAddressSpaceElementData(anElementId, out anElement); if (anElement != null) { DaBaseElement daElement = anElement as DaBaseElement; if (daElement != null) { elements = ArrayList.Synchronized(daElement.GetChildren()); } // end if } // end if } // end if .. else foreach (object element in elements) { DaBaseElement daElement = element as DaBaseElement; if (daElement != null && daElement.Name != "CMD") { AeAddressSpaceElement anElement = new AeAddressSpaceElement(); anElement.Name = daElement.Name; anElement.HasChildren = daElement.HasChildren; aChildrenList.Add(anElement); } // end if } // end foreach return((int)EnumResultCode.S_OK); } // end QueryAddressSpaceElementChildren