<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Fdt3</name>
    </assembly>
    <members>
        <member name="T:Fdt.ApplicationId">
            <summary>
            Identifies type of an application or function. 
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.AdjustSetValue">
            <summary>
            Enables the actor to adjust the SetValues of a device (e.g. positioner, controllers).
            This may involve change of the modes on the device (e.g. change of block mode (MODE_BLK) or change of device mode).
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.AssetManagement">
            <summary>
            Frame Application provides mechanism for asset management.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.AuditTrail">
            <summary>
            Use case to enable the actor viewing and deleting audit trail data.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Configuration">
            <summary>
            This use case enables the “Engineer” actor to configure a complex device (this may include configuration of modules).
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Diagnosis">
            <summary>
            Use case for viewing and analyzing the current device status.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Force">
            <summary>
            This use case simulates the behavior of a device.   
            Therefore the actor is allowed to perform temporary changes within the device parameters, 
            like forcing the device to set a fixed current analog output.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Observe">
            <summary>
            Enables the actor to load parameters from the device for viewing and documenting (printing).
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.OfflineCompare">
            <summary>
            Allows the user to compare the offline parameter set with parameter sets of other instances, of device default or of project default parameter sets.
            The datasets may be editable and data may be transferred from one dataset to the other.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.OfflineParameterize">
            <summary>
            The user may change parameter values. The changes will only affect data in the Frame Application database after stored as persistent data. 
            Data should be signed as transient data until they are stored.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.OnlineCompare">
            <summary>
            This use case gives the user the possibility to compare persistent and device data. 
            The user may edit data and copy between these two sources.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.OnlineParameterize">
            <summary>
            When this use case starts all parameters are read from the device and exposed to the user within a GUI. Within the GUI the user may change parameters, depending on the user level. 
            The device is updated immediately if the changed parameterization is in a verified state.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Identify">
            <summary>
            Displays identification of device instance information e.g. address, TAG, Fieldbus-Rev., DD-Rev., Firmware. This information is protocol dependent. It also may contain device type specific information. Further information may be provided: references to documentation, area to add comments to the device instance. 
            Refer to Device Identification chapter in protocol specific Annex specifications.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.Calibration">
            <summary>
            This use case invokes calibration procedures to adjust the input for e.g. pressure transmitters or the current for the output.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.MainOperation">
            <summary>
            This use case is the composition of all use cases that are available for the respective user level. It allows that a DTM provides a compact User Interface integrating all functions. This use case has the DTM applicationId: MainOperation.
            The DTM should provide all the integrated functions also as separate functions, which can be invoked by the Frame Application for individual use cases.
            </summary>
        </member>
        <member name="F:Fdt.ApplicationId.NetworkManagement">
            <summary>
            Use case for network management purposes involves activities between different FDT Objects (e.g. Communication DTM and Device DTM). Related activities are for example address setting or setting of device identity information.
            A Communication DTM may offer functions to manage a network.
            </summary>
        </member>
        <member name="T:Fdt.FdtDatatype`1">
            <summary>
            Generic FDT data type base class
            </summary>
            <typeparam name="T">
            Type of the class derived from this class. 
            The type information is used in the <see cref="M:Fdt.FdtDatatype`1.Verify"/> and <see cref="M:Fdt.FdtDatatype`1.Clone"/> methods. 
            </typeparam>
            <remarks>
            The equals method is NOT overwritten. 
            Therefore the equals method compares the identity of objects. 
            It cannot be used to compare the contents of different objects. 
            In order to compare contents of objects developers need to implement the comparison.
            </remarks>
        </member>
        <member name="M:Fdt.FdtDatatype`1.Verify">
            <summary>
            Verifies that all properties are valid (e.g. mandatory properties have a value).
            </summary>
            <exception cref="T:Fdt.VerifyException">Exception thrown if one or more properties have invalid values.</exception>
        </member>
        <member name="M:Fdt.FdtDatatype`1.VerifyPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Runtime.Serialization.DataMemberAttribute)">
            <summary>
            Verifies that specified property is valid (e.g. has value if mandatory).
            Called by <see cref="M:Fdt.FdtDatatype`1.Verify"/> method for each property with the <see cref="T:System.Runtime.Serialization.DataMemberAttribute"/>.
            </summary>
            <param name="propertyInfo">The property to validate.</param>
            <param name="propertyValue">The property value to validate.</param>
            <param name="dataMemberAttribute">The <see cref="T:System.Runtime.Serialization.DataMemberAttribute"/> of the property.</param>
            <exception cref="T:Fdt.VerifyException">Exception thrown if property value is invalid.</exception>
        </member>
        <member name="M:Fdt.FdtDatatype`1.Clone">
            <summary>
            Creates a new object that is a deep-copy of the current instance.
            All objects are duplicated - the top-level objects are duplicated as well as all the lower levels.
            The cloned object can be modified without affecting the original object.
            </summary>
            <returns>A new object that is a deep-copy of this instance.</returns>
            <exception cref="T:Fdt.CloneException">Exception thrown if cloning of an FDT datatype failed</exception>
        </member>
        <member name="M:Fdt.FdtDatatype`1.CloneValue(System.Object)">
            <summary>
            Clone a property
            </summary>
            <param name="propertyValue">Value of a property</param>
            <returns>Cloned object</returns>
        </member>
        <member name="T:Fdt.FdtList`1">
            <summary>
            Generic list of <see cref="T:Fdt.FdtDatatype`1"/>s, which can be cloned.
            </summary>
            <remarks>
            <para>
            The list shall not be empty. 
            </para>
            <para>
            The <see cref="M:Fdt.FdtList`1.Verify"/> method enforces that the list is not empty.
            </para>
            </remarks>
            <typeparam name="T">Any class derived from <see cref="T:Fdt.FdtDatatype`1"/>.</typeparam>
        </member>
        <member name="M:Fdt.FdtList`1.Clone">
            <summary>
            Clones the list and all included items (deep copy).
            </summary>
            <returns>Copy of this list and all included items.</returns>
            <exception cref="T:Fdt.VerifyException">Verification of list failed.</exception>
        </member>
        <member name="M:Fdt.FdtList`1.Verify">
            <summary>
            Verifies if list is not empty and that all included items are valid 
            (e.g. mandatory properties have a value).
            </summary>
            <exception cref="T:Fdt.VerifyException">Verification of list failed.</exception>
        </member>
        <member name="T:Fdt.IVerifiable">
            <summary>
            Interface implemented by <see cref="T:Fdt.FdtList`1"/> and <see cref="T:Fdt.FdtDatatype`1"/>.
            Interface is used to verify whether content of an instance is valid. 
            </summary>
        </member>
        <member name="M:Fdt.IVerifiable.Verify">
            <summary>
            Verifies that all properties are valid (e.g. mandatory properties have a value).
            </summary>
            <exception cref="T:Fdt.VerifyException">Exception thrown if one or more properties have invalid values.</exception>
        </member>
        <member name="T:Fdt.BusCategory">
            <summary>
            A bus category is a Universally Unique Identifier for a fieldbus protocol 
            (or a point-to-point communication). 
            </summary>
            <remarks>
            The FDT concept distinguishes between supported and required bus categories: 
            <list type="bullet">
                <item>
                Supported bus categories refer to the protocol specific communication services 
                provided by a DTM (corresponding Communication Channels) to access a fieldbus.
                </item>
                <item>
                Required bus categories refer to the protocol specific communication services 
                required by a DTM to exchange data with its device. 
                </item>
            </list>
            </remarks>
        </member>
        <member name="T:Fdt.BusCategory.CategoryType">
            <summary>
            Defines whether BusCategory is supported or required.
            </summary>
        </member>
        <member name="F:Fdt.BusCategory.CategoryType.Required">
            <summary>
            Marks a required BusCategory
            </summary>
        </member>
        <member name="F:Fdt.BusCategory.CategoryType.Supported">
            <summary>
            Marks a supported BusCategory
            </summary>
        </member>
        <member name="P:Fdt.BusCategory.ProtocolId">
            <summary>
            Unique identifier of the protocol
            </summary>
        </member>
        <member name="P:Fdt.BusCategory.ProtocolName">
            <summary>
            Human readable name of the protocol
            </summary>
        </member>
        <member name="P:Fdt.BusCategory.CommunicationType">
            <summary>
            Defines whether DTM supports or requires protocol services.
            </summary>
        </member>
        <member name="M:Fdt.BusCategory.#ctor(System.Guid,System.String,Fdt.BusCategory.CategoryType)">
            <summary>
            Constructor with mandatory properties
            </summary>
            <param name="protocolId">Unique identifier of the protocol</param>
            <param name="protocolName">Human readable name of the protocol</param>
            <param name="communicationType">Defines whether DTM supports or requires protocol services.</param>
        </member>
        <member name="T:Fdt.CloneException">
            <summary>
            Exception thrown if cloning of an FDT datatype failed. 
            </summary>
            <remarks>
            This exception does not inherit from FdtException to avoid cyclic dependencies between the assemblies for datatypes and interfaces.
            </remarks>
        </member>
        <member name="M:Fdt.CloneException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.CloneException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.CloneException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.CloneException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.Communication.AbortDetails">
            <summary>
            Details about an abort of a communication action.
            </summary>
        </member>
        <member name="P:Fdt.Communication.AbortDetails.Cause">
            <summary>
            A human readable description of the cause of the abort (e.g. "cable unplugged of COM 3").
            </summary>
        </member>
        <member name="P:Fdt.Communication.AbortDetails.DtmSystemGuiLabel">
            <summary>
            Unique human readable identifier of the DTM instance which caused the abort in the context of the Frame Application.
            </summary>
        </member>
        <member name="T:Fdt.Communication.AbortMessage">
            <summary>
            Information to specify an abort of a communication link.
            </summary>
        </member>
        <member name="P:Fdt.Communication.AbortMessage.Details">
            <summary>
            Details about the cause and source of the Abort.
            </summary>
            <remarks>
            <para>
            If an abort is received by a gateway DTM then it shall append details about itself to the list such
            that it is possible to trace the abort.
            </para>
            <para>
            In a mixed topology it is the task of the transformers to add default details
            because the details did not exist in FDT 1.2.x. 
            </para>
            <para>
            The details are intended for debugging purpose. They should not be displayed to the end user of the FDT system.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.AbortMessage.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.ChannelReference">
            <summary>
            Unique identifier of a Communication Channel provided by a DTM. 
            </summary>
            <remarks>
            The DTM has to guarantee that the path is unique for an instance. It consists of the
            DTM System TAG and the channel ID. 
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ChannelReference.DtmSystemTag">
            <summary>
            System TAG of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Communication.ChannelReference.ChannelId">
            <summary>
            Unique identifier of the communication channel. 
            </summary>
        </member>
        <member name="T:Fdt.Communication.CommunicationError">
            <summary>
            Description of a fieldbus protocol independent error occurred during nested communication.
            </summary>
            <remarks>
            <para>
            This kind of error is used especially if an error occurred during nested communication. 
            Communication errors detected by a communication component, e.g. a Communication DTM, 
            shall be handled within the data returned to the child component.
            </para>
            <para>
            If a device returns an error in response to a fieldbus transaction request, 
            it is recommended that the protocol specific <see cref="T:Fdt.Communication.TransactionResponse"/> provides the 
            fieldbus specific status and error attributes. 
            </para>
            <para>
            All errors detected by the Communication Channel shall be mapped to one of the 
            <see cref="T:Fdt.Communication.CommunicationErrors"/> enumeration values and returned as 
            a <see cref="T:Fdt.Communication.CommunicationError"/> to the Child DTM. 
            </para>
            <para>
            A DTM shall be able to handle both types of error responses for a transaction 
            request sent to the parent component.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.CommunicationError.Error">
            <summary>
            Fieldbus protocol independent error information.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationError.DtmSystemGuiLabel">
            <summary>
            Unique human readable identifier of the DTM instance which reports the error.
            </summary>
            <remarks>
            In a mixed topology with FDT 1.2.x and FDT3 DTMs connected to each other this property might be unknown.
            In such a case the value shall be "not available".
            </remarks>
        </member>
        <member name="P:Fdt.Communication.CommunicationError.ErrorCode">
            <summary>
            [Optional] Status information according to the IEC 61784 CPF 3 specification
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationError.ErrorDescriptor">
            <summary>
            [Optional] Human readable description.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationError.InnerError">
            <summary>
            [Optional] Communication Error in case of nested communication.
            </summary>
        </member>
        <member name="T:Fdt.Communication.CommunicationErrors">
            <summary>
            Fieldbus protocol independent error information for nested communication.
            </summary>
            <remarks>
            In a mixed topology with FDT 1.2.x and FDT3 DTMs connected to each other this property might be unknown.
            In such a case the value shall be set to UnknownError.
            </remarks>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.Abort">
            <summary>
            Abort call received.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.Busy">
            <summary>
            Service cannot be handled because of other ongoing activities.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.InvalidCommunicationReference">
            <summary>
            The communication reference (which was send with the request is not valid.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.NoConnection">
            <summary>
            Service was requested without an established connection.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.NoParallelServices">
            <summary>
            The requested service cannot be executed in parallel with an other services.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.NoPendingRequest">
            <summary>
            There are no pending requests.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.UnknownError">
            <summary>
            Unexpected error occurred.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.Timeout">
            <summary>
            The service failed because a necessary response did not arrived in time.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.DtmSpecific">
            <summary>
            The service failed because of a DTM specific error. More information will be 
            provided in the <see cref="P:Fdt.Communication.CommunicationError.ErrorDescriptor"/> property.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.Canceled">
            <summary>
            The transaction was canceled.
            </summary>
        </member>
        <member name="F:Fdt.Communication.CommunicationErrors.NotSupportedFeature">
            <summary>
            The requested service is not supported.
            </summary>
        </member>
        <member name="T:Fdt.Communication.CommunicationTypeAttribute">
            <summary>
            This attribute class exposes type information of protocol specific classes.
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.AbortMessageType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.AbortMessage"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.ConnectRequestType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.ConnectRequest"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.ConnectResponseType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.TransactionRequestType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.TransactionRequest"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.TransactionResponseType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.TransactionResponse"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.DisconnectRequestType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.DisconnectRequest"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.DisconnectResponseType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.DisconnectResponse"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.SubscribeRequestType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.SubscribeRequest"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.SubscribeResponseType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.SubscribeResponse"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.UnsubscribeRequestType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.UnsubscribeRequest"/>.
            </summary>
        </member>
        <member name="P:Fdt.Communication.CommunicationTypeAttribute.UnsubscribeResponseType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Communication.UnsubscribeResponse"/>.
            </summary>
        </member>
        <member name="T:Fdt.Communication.ConnectRequest">
            <summary>
            Fieldbus protocol independent base class for connection information used in BeginConnect.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from ConnectRequest (e.g. HartConnectRequest) 
            shall be used in ICommunication.BeginConnect.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ConnectRequest.ProtocolId">
            <summary>
            Unique identifier of the protocol.
            </summary>
        </member>
        <member name="P:Fdt.Communication.ConnectRequest.DtmSystemTag">
            <summary>
            Unique identification of DTM within the Frame Application.
            </summary>
            <remarks>   
            <para>
            This is the system tag of the communication client.  It can be used e.g. to
            retrieve further information from the DTM via <see cref="T:Fdt.Frame.IDtmProxy"/> interface.
            </para>
            <para>
            If the System Tag is <see cref="F:System.Guid.Empty"/>, the communication client is not a DTM 
            (may be the Frame Application or some other component).
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.ConnectResponse">
            <summary>
            Fieldbus protocol independent base class with connection information returned by EndConnect.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from ConnectResponse (e.g. HartConnectResponse) 
            shall be returned by EndConnect.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ConnectResponse.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is allocated by the communication component during the connect. 
            The communication reference has to be used for all following communication calls:
            <list type="bullet">
                <item><see cref="T:Fdt.Communication.TransactionRequest"/></item>
                <item><see cref="T:Fdt.Communication.DisconnectRequest"/></item>
                <item><see cref="T:Fdt.Communication.AbortMessage"/></item>
                <item><see cref="T:Fdt.Communication.SubscribeRequest"/></item>
                <item><see cref="T:Fdt.Communication.UnsubscribeRequest"/></item>
            </list>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.DeviceAddressInfo">
            <summary>
            Address information which is used to request the Communication Channel
            to set the address of its Child DTMs.
            </summary>
            <remarks>
            <note>
            ATTENTION: For serialization of this class special means need to be considered. 
            The property <see cref="P:Fdt.Communication.DeviceAddressInfo.Address"/> is set to protocol-specific <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> instance.
            For serialization the protocol-specific type needs to be added to the <see cref="P:System.Runtime.Serialization.DataContractSerializer.KnownTypes"/>
            manually.  
            </note>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DeviceAddressInfo.DtmSystemTag">
            <summary>
            Unique identification of the Child DTM within the Frame Application.
            </summary>
            <remarks>
            <para>
            The Communication Channel shall use the <see cref="P:Fdt.Communication.DeviceAddressInfo.DtmSystemTag"/> to get access to the 
            address information of the Child DTM.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DeviceAddressInfo.SettingResultInformation">
            <summary>
            Information about success or error during address setting.
            </summary>
            <remarks>
            <para>
            This property shall be set to <see cref="F:Fdt.Communication.DeviceAddressSettingResult.Ok"/> if no error occurred.
            Otherwise an appropriate value shall be set to indicate an error.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DeviceAddressInfo.Address">
            <summary>
            [Optional] Address of the Device.
            </summary>
            <remarks>
            <para>
            The protocol specific address <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> shall be used 
            for the <see cref="P:Fdt.Communication.DeviceAddressInfo.Address"/> property.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DeviceAddressInfo.ProtocolId">
            <summary>
            [Optional] Unique identifier of the protocol.
            </summary>
        </member>
        <member name="P:Fdt.Communication.DeviceAddressInfo.ErrorDescription">
            <summary>
            [Optional] Human readable error information.
            </summary>
            <remarks>
            <para>
            Detailed error information shall be provided in case of <see cref="P:Fdt.Communication.DeviceAddressInfo.SettingResultInformation"/> 
            is <see cref="F:Fdt.Communication.DeviceAddressSettingResult.DtmSpecificError"/> 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.SetDeviceAddressMethod">
            <summary>
            Indicates how the the Communication Channel shall select the address to set.
            </summary>
        </member>
        <member name="F:Fdt.Communication.SetDeviceAddressMethod.OpenUserInterface">
            <summary>
            User interface should be opened to request the address from the user.
            In this case the <see cref="P:Fdt.Communication.DeviceAddressInfo.Address"/> shall be ignored.
            </summary>
        </member>
        <member name="F:Fdt.Communication.SetDeviceAddressMethod.NoUserInterface">
            <summary>
            No user interface should be opened.
            In this case the <see cref="P:Fdt.Communication.DeviceAddressInfo.Address"/> shall be used.
            </summary>
        </member>
        <member name="F:Fdt.Communication.SetDeviceAddressMethod.SetNextValidAddress">
            <summary>
            Communication Channel has to set the next valid address without using a user interface.
            In this case the <see cref="P:Fdt.Communication.DeviceAddressInfo.Address"/> shall be ignored.
            </summary>
        </member>
        <member name="T:Fdt.Communication.DeviceAddressSettingResult">
            <summary>
            Information about errors that occurred during address setting.
            </summary>
        </member>
        <member name="F:Fdt.Communication.DeviceAddressSettingResult.Ok">
            <summary>
            Address was set successfully 
            </summary>
        </member>
        <member name="F:Fdt.Communication.DeviceAddressSettingResult.FailedToSet">
            <summary>
            Address setting failed
            </summary>
        </member>
        <member name="F:Fdt.Communication.DeviceAddressSettingResult.FailedDuplicateAddress">
            <summary>
            Address is already used by other device and couldn't be set.
            </summary>
        </member>
        <member name="F:Fdt.Communication.DeviceAddressSettingResult.Canceled">
            <summary>
            The setting was canceled by user.
            </summary>
        </member>
        <member name="F:Fdt.Communication.DeviceAddressSettingResult.DtmSpecificError">
            <summary>
            DTM specific error.
            </summary>
            <remarks>
            <para>
            In this case <see cref="P:Fdt.Communication.DeviceAddressInfo.ErrorDescription"/>  shall 
            be used to give more detailed error information.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.DisconnectRequest">
            <summary>
            Fieldbus protocol independent base class for disconnection information used in BeginDisconnect.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from DisconnectRequest (e.g. HartDisconnectRequest) 
            shall be used in BeginDisconnect.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DisconnectRequest.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DisconnectRequest.AbortPendingTransactions">
            <summary>
            Indicates whether pending transactions shall be aborted. 
            </summary>
            <remarks>
            <para>
            If AbortPendingTransactions is false the communication channel completes pending transactions before disconnecting.
            </para>
            <para>
            If AbortPendingTransactions is true the communication channel aborts pending transactions (depending on the protocol) and closes the connection.
            For each pending transaction a response with CommunicationError (Abort) is sent before the DisconnectResponse. 
            </para>
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.DisconnectResponse">
            <summary>
            Fieldbus protocol independent base class for connection information returned by EndDisconnect.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from DisconnectResponse class (e.g. HartDisconnectResponse) 
            shall be returned by EndDisconnect.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.DisconnectResponse.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.ScanRequest">
            <summary>
            This class is used to describe information for a request to scan the sub topology of a channel.
            </summary>
            <remarks>
            <para>
            <note>
            ATTENTION: For serialization of this class special means need to be considered. 
            The device addresses in property <see cref="P:Fdt.Communication.ScanRequest.Ranges"/> are set to protocol-specific <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> instances.
            For serialization the protocol-specific type needs to be added to the <see cref="P:System.Runtime.Serialization.DataContractSerializer.KnownTypes"/>
            manually.  
            </note>
            </para>
            <para>
            A Frame Application can request a scan of the underlying bus topology of a communication channel.
            Following options are provided to define the address range to be scanned <see cref="T:Fdt.Communication.ScanMode"/>:
            <list type="bullet">
            <item>All addresses provided by the fieldbus.</item>
            <item>Address range, which could be used also for one address only.</item>
            <item>DTM User interface to request an address selection from the user.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ScanRequest.ProtocolId">
            <summary>
            Unique identifier of the protocol.
            </summary>
            <remarks>
            <para>
            Protocol UUID to identify the protocol for which the scan result is expected,
            e.g. "036D1498-387B-11D4-86E1-00E0987270B9" for HART.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ScanRequest.ScanMode">
            <summary>
            Defines how the address range for the scan is defined.
            </summary>
        </member>
        <member name="P:Fdt.Communication.ScanRequest.Ranges">
            <summary>
            [Optional] Defines a list of address ranges that shall be used for
            bus scanning.
            </summary>
            <remarks>
            <para>
            This list shall contain one or more items if <see cref="P:Fdt.Communication.ScanRequest.ScanMode"/>
            is set to RangeOfAddresses. For other <see cref="P:Fdt.Communication.ScanRequest.ScanMode"/> values Ranges
            shall be null.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ScanRequest.Verify">
            <summary>
            Override. Verifies scan ranges.
            </summary>
        </member>
        <member name="T:Fdt.Communication.BusScanAddressRange">
            <summary>
            Contains start and end address of requested bus scan.
            </summary>
            <remarks>
            <para>
            It is possible to define that a single address shall be scanned. 
            In this case the address is defined in the attribute <see cref="P:Fdt.Communication.BusScanAddressRange.RangeBegin"/> 
            and the attribute <see cref="P:Fdt.Communication.BusScanAddressRange.RangeEnd"/> is empty.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.BusScanAddressRange.RangeBegin">
            <summary>
            Bus address to be used as start address for topology scanning.
            </summary>
            <remarks>
            <para>
            The address format is protocol specific
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.BusScanAddressRange.RangeEnd">
            <summary>
            [Opional] Bus address to be used as end address.
            </summary>
            <remarks>
            <para>
            The address format is protocol specific.
            </para>
            <para>
            This value shall be null if only a single address shall be scanned.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.ScanMode">
            <summary>
            This enumeration defines how the address range for the scan is defined.
            </summary>
        </member>
        <member name="F:Fdt.Communication.ScanMode.AllAddresses">
            <summary>
            The complete address range shall be scanned.
            </summary>
        </member>
        <member name="F:Fdt.Communication.ScanMode.RangeOfAddresses">
            <summary>
            One or many ranges of addresses shall be scanned.
            </summary>
        </member>
        <member name="F:Fdt.Communication.ScanMode.OpenGui">
            <summary>
            The DTM shall open a user interface to request 
            an address selection from the user.
            </summary>
        </member>
        <member name="T:Fdt.Communication.SubscribeRequest">
            <summary>
            Fieldbus protocol independent base class with information for initialization 
            of device initialized data transfer.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from SubscribeRequest (e.g. HartSubscribeRequest).
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.SubscribeRequest.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.SubscribeResponse">
            <summary>
            Fieldbus protocol independent base class for information about communication 
            data subscription returned by EndSubscriptionInitialization.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from SubscribeResponse (e.g. HartSubscribeResponse) 
            shall be returned by EndSubscriptionInitialization.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.SubscribeResponse.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.TransactionRequest">
            <summary>
            Fieldbus protocol independent base class for transaction information used in BeginCommunicationRequest.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from TransactionRequest (e.g. HartTransactionRequest) 
            shall be used in ICommunication.BeginCommunicationRequest.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.TransactionRequest.Id">
            <summary>
            [Conditional] Identifier for a single Transaction Request. 
            </summary>
            <remarks>
            If this property is used, then this identifier shall be returned by the corresponding Transaction Response.
            <see cref="T:Fdt.Communication.TransactionResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.TransactionResponse">
            <summary>
            Fieldbus protocol independent base class for transaction information returned by EndCommunicationRequest.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from TransactionResponse (e.g. HartTransactionResponse) 
            shall be returned by EndTransaction.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.TransactionResponse.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="P:Fdt.Communication.TransactionResponse.ErrorInformation">
            <summary>
            [Optional] Description of a fieldbus protocol independent error occurred during communication.
            </summary>
            <remarks>
            <para>
            The property <see cref="P:Fdt.Communication.TransactionResponse.ErrorInformation"/> is used when an error occures and multiple transaction 
            responses are returned to the communication client.
            </para>
            <para>
            All errors detected by the Communication Channel shall be mapped to one of the 
            <see cref="T:Fdt.Communication.CommunicationErrors"/> enumeration values and returned as 
            a <see cref="T:Fdt.Communication.CommunicationError"/> to the Child DTM. 
            </para>
            <para>
            If no error occurred ErrorInformation shall be null.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.TransactionResponse.Id">
            <summary>
            [Optional] Identifier for a single Transaction. 
            </summary>
            <remarks>
            This identifier is the same as the one used by the corresponding Transaction Request.
            <see cref="T:Fdt.Communication.TransactionRequest"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.UnsubscribeRequest">
            <summary>
            Fieldbus protocol independent base class for termination of subscription of device initiated data transfer.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from UnsubscribeRequest (e.g. HartUnsubscribeRequest).
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.UnsubscribeRequest.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.UnsubscribeResponse">
            <summary>
            Fieldbus protocol independent base class for termination of subscription of device initiated data transfer 
            returned by EndSubscriptionTermination.
            </summary>
            <remarks>
            <para>
            Fieldbus specific data types derived from UnsubscribeResponse (e.g. HartUnsubscribeResponse) 
            shall be returned by EndSubscriptionTermination.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Communication.UnsubscribeResponse.CommunicationReference">
            <summary>
            Identifier for a communication link to a device. 
            </summary>
            <remarks>
            This identifier is returned by the Communication Channel in the
            <see cref="T:Fdt.Communication.ConnectResponse"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Communication.AbortCallback">
            <summary>
            References a method to be called to notify that that the connection identified by 
            the passed <see cref="P:Fdt.Communication.AbortMessage.CommunicationReference"/> has been aborted. 
            </summary>
            <param name="abortMessage">Information about communication which is aborted.</param>
            <remarks>
            <para>
            The abort notification is sent to a connected communication component or to a connected DTM to inform
            that the connection is terminated. 
            </para>
            <para>
            <note>
            All pending requests on this connection are also terminated. 
            <list type="bullet">
                <item>All pending transactions must be aborted by calling the <see cref="T:System.AsyncCallback"/>.</item>
                <item>The client shall then call the <see cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/> method which will throw an <see cref="T:Fdt.FdtConnectionAbortedException"/>exception.</item>
                <item>Further calls (e.g. <see cref="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)"/> or <see cref="M:Fdt.Communication.ICommunication.BeginDisconnect(Fdt.Communication.DisconnectRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>) throw exceptions.</item>
            </list>
            </note>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.ICommunication">
            <summary>
            This interface is the communication entry point of a channel.
            </summary>
            <remarks>
            <para>
            The connection of this interface with a following component builds the
            chain for nested communication.  The communication pointer to the
            following communication component can be requested at the DTM  which
            owns the Communication Channel.
            </para>
            <para>
            A channel is able to support a number of different fieldbus protocols. 
            Objects of protocol specific data types are exchanged between
            Communication Channel and connected client  via this interface. The type
            of protocol to be used shall be specified with a 
            <see cref="T:Fdt.Communication.ConnectRequest"/>.
            </para>
            <para>
            All communication functions are executed asynchronously. A DTM may send
            one or several requests to the next communication component.  It is
            expected that the requests are processed in the order received if not
            specified otherwise by the protocol.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Establishes a new communication link to a device specified by the 
            <paramref name="request"/>
            </summary>
            <param name="request">Fieldbus-protocol-specific information which
            is needed to establish a connection to a device</param>
            <param name="abortCallback">The method to be called when the
            CommunicationChannel aborts an established connection.</param>
            <param name="progress">The method to be called on progress of the
            asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous
            operation is completed.
            </param>
            <param name="asyncState">A client-provided object that distinguishes
            this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the
            asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ICommunication.EndConnect(System.IAsyncResult)"/>
            <remarks>
            <para>
            The connection establishes a routing to a device as a peer-to-peer
            connection. The request is specified by a fieldbus specific data
            type, derived from <see cref="T:Fdt.Communication.ConnectRequest"/>The fieldbus protocol
            to be used is identified by the property 
            <see cref="P:Fdt.Communication.ConnectRequest.ProtocolId"/>. Based on this information
            the method sends the request to the next communication component or
            to the connected device. 
            </para>
            <para>
            A Communication DTM shall be prepared to handle more than one
            connect request  for a single device. It is protocol and/or
            implementation specific if there are more than one connections
            created to the physical device or if the communication  DTM creates
            logical connections.
            </para>
            <para>
            The result information will be provided by <see cref="M:Fdt.Communication.ICommunication.EndConnect(System.IAsyncResult)"/>
            </para>
            <para>
            The <paramref name="request"/> contains additional
            fieldbus-protocol-specific information for  the fieldbus master how
            to establish the connection. For example, information like  repeat
            counts or preamble counts in case of HART® sent by a DTM is a hint
            for the  HART® master. It is up to the environment to decide whether
            this information fits.
            </para>
            <para>
            Furthermore the <paramref name="request"/> contains
            fieldbus-protocol-specific information  how to address the device
            connected to a specific fieldbus.
            </para>
            <para>
            The property DtmSystemTag provided in the <see cref="T:Fdt.Communication.ConnectRequest"/> 
            is the System Tag of the communication client.  It can be used to
            retrieve further information from the DTM via 
            <see cref="T:Fdt.Frame.IDtmProxy"/> interface.
            <seealso cref="T:Fdt.Frame.ITopology"/>
            </para>
            <para>
            If the System Tag is <see cref="F:System.Guid.Empty"/>, the communication client is not a DTM 
            (may be the Frame Application or some other component).
            </para>
            <para>
            In case a connection is aborted then there might be pending
            Communication Requests. These requests shall be aborted and  the
            corresponding callback methods shall be called.  The EndMethods (
            <see cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/> and 
            <see cref="M:Fdt.Communication.ICommunication.EndDisconnect(System.IAsyncResult)"/>)  shall throw an 
            <see cref="T:Fdt.FdtConnectionAbortedException"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ICommunication.CancelConnect(System.IAsyncResult)">
            <summary>
            Cancels the active connect request
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
        </member>
        <member name="M:Fdt.Communication.ICommunication.EndConnect(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>Result information about the established connection
            </returns>
            <remarks>
            <para>
            <note>
            If the operation fails because a nested communication channel throws
            an exception, this exception shall be set to the property
            innerException of the <see cref="T:Fdt.FdtCommunicationErrorException"/>. 
            </note>
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Communication.ICommunication.CancelConnect(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The connection failed because of communication errors (Connection failed or wrong device attached).</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronously exchange of a data structure with a device
            specified by the <paramref name="request"/>.
            </summary>
            <param name="request">List of fieldbus-protocol-specific
            transactions to be transferred</param>
            <param name="communicationReference">The communication reference which identifies the connection which shall be used for the CommunicationRequest.</param>
            <param name="progress">The method to be called on progress of the
            asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous
            operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes
            this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the
            asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/>
            <remarks>
            <para>
            The <paramref name="request"/> parameter contains fieldbus specific
            data types derived from <see cref="T:Fdt.Communication.TransactionRequest"/>.  Based on
            this information the method sends the request for data exchange to
            the next communication component or to the connected device. The
            result information will be provided by <see cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/>
            </para>
            <para>
            It depends on the fieldbus protocol which internal communication
            methods are implemented at the Communication Channel.  For example
            HART® supports data exchange methods while Profibus offers
            read/write services.
            </para>
            <para>
            Developers of Communication Channels should not expect that there
            will be only one pending request for a certain device at one time.
            For instance several clients  (e.g. Frame Application and Device
            DTMs) are trying to retrieve information from same device. Even if
            the underlying fieldbus protocol allows sending only one request at
            a time to one or more devices,  Communication Channels shall be able
            to manage additional transaction requests while there is already one
            or more transaction requests ongoing. Developers of DeviceDTM’s
            should consider that the used communication infrastructure creates
            delays in the communication. So the DeviceDTM's should limit the
            number of communication requests. Also the DeviceDTM must be able to
            handle a refused request, since there may be a variety of reasons to
            refuse a transaction request. It is expected that the requests are
            processed by the Communication channel in the order received if not
            specified otherwise by the protocol.
            </para>
            <para>
            Developers of a Device DTM should consider that the used
            communication infrastructure creates delays in the communication.
            So a Device DTM should limit the number of communication requests. 
            Also the Device DTM shall be able to handle a refused request, 
            since there may be a variety of reasons to refuse a transaction
            request.
            </para>
            <para>
            It is expected that the requests are processed by the Communication
            Channel  in the order received if not specified otherwise by the
            communication protocol.
            </para>
            <para>
            The Communication Channel shall call <see cref="T:Fdt.Communication.AbortCallback"/>
            delegate (from <see cref="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> when the connection
            identified by the communicationReference has been aborted. All
            pending requests  on this connection are also terminated, this means
            that outstanding calls are completed and the respective 
            <see cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/> will throw an exception.
            </para>
            A termination of a connection can be result of an invoked function
            or can occur "spontaneous"  (e.g. if the absence of a device is
            noted automatically by the underlying communication infrastructure).
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ICommunication.CancelCommunicationRequest(System.IAsyncResult)">
            <summary>
            Cancels the active communication request.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <para>
            If a request is canceled there shall be no exception thrown by <see cref="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)"/>. 
            Instead the ErrorInformation property of <see cref="T:Fdt.Communication.TransactionResponse"/> shall be set to canceled 
            for each transaction that has been canceled.
            </para>
            <seealso cref="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
        </member>
        <member name="M:Fdt.Communication.ICommunication.EndCommunicationRequest(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>List of fieldbus specific received data, status and error
            codes</returns>
            <seealso cref="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)"/>
            <remarks>
            <para>
            The <see cref="T:Fdt.Communication.TransactionResponse"/> list shall contain an element
            for each element  in the <see cref="T:Fdt.Communication.TransactionRequest"/> list in
            the same order as provided with the <see cref="M:Fdt.Communication.ICommunication.BeginCommunicationRequest(Fdt.FdtList{Fdt.Communication.TransactionRequest},System.Guid,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Communication.TransactionResponse}},System.AsyncCallback,System.Object)"/>
            method.
            </para>
            <para>
            If one ore more (but not all) elements in the <see cref="T:Fdt.Communication.TransactionRequest"/> 
            list fails because of a communication error then no exception shall be thrown. 
            Instead the ErrorInformation property of <see cref="T:Fdt.Communication.TransactionResponse"/> shall 
            be set accordingly.
            </para>
            <para>
            The Method shall throw an <see cref="T:Fdt.FdtCommunicationErrorException"/> if
            all elements in the <see cref="T:Fdt.Communication.TransactionRequest"/> fail due to a communication error. 
            <note>
            If the complete CommunicationRequest fails because a nested
            communication channel throws an exception, this exception shall be
            set to the property innerException of the <see cref="T:Fdt.FdtCommunicationErrorException"/>. 
            </note>
            <note>
            In case the communication request is cancelled, no <see cref="T:Fdt.FdtOperationCancelledException"/> is thrown.
            This is because a communication request may include multiple transactions and the result of each transaction is reported. 
            </note>
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The complete CommunicationRequest failed because of communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ICommunication.BeginDisconnect(Fdt.Communication.DisconnectRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Releases a communication link to a device. The link is identified by
            the  communication reference which is part of the 
            <paramref name="request"/>
            </summary>
            <param name="request">Fieldbus-protocol-specific information how to
            release the connection.</param>
            <param name="progress">The method to be called on progress of the
            asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous
            operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes
            this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the
            asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ICommunication.EndDisconnect(System.IAsyncResult)"/>
            <remarks>
            <para>
            The method passes a <paramref name="request"/> with
            fieldbus-protocol-specific information how to release the
            connection. The request is specified by a fieldbus specific data
            type, derived from <see cref="T:Fdt.Communication.DisconnectRequest"/>Based on this
            information the method sends the request to the next communication
            component  or to the connected device, terminates all pending
            requests and returns without waiting for the result. The result
            information will be provided by <see cref="M:Fdt.Communication.ICommunication.EndDisconnect(System.IAsyncResult)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ICommunication.EndDisconnect(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ICommunication.BeginDisconnect(Fdt.Communication.DisconnectRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Fieldbus-protocol-specific information about the released connection</returns>
            <seealso cref="M:Fdt.Communication.ICommunication.BeginDisconnect(Fdt.Communication.DisconnectRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The disconnect failed with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Communication.ICommunicationChannel">
            <summary>
            This is the main interface of a communication channel. It provides access to all other
            channel related interfaces and to channel related information (e.g. supported protocols). 
            </summary>
        </member>
        <member name="P:Fdt.Communication.ICommunicationChannel.Communication">
            <summary>
            Provides access to the <see cref="T:Fdt.Communication.ICommunication"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ICommunicationChannel.Subscription">
            <summary>
            [Conditional] Provides access to the <see cref="T:Fdt.Communication.ISubscription"/> interface. 
            </summary>
            <remarks>
            This interface should be provided for communication protocols that support device initiated data transfer. 
            The corresponding protocol annex shall define whether this interface is mandatory or not.
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ICommunicationChannel.Scanning">
            <summary>
            Provides access to the <see cref="T:Fdt.Communication.IScanning"/> interface. 
            </summary>
            <remarks>
            If the corresponding protocol annex defines this interface as mandatory, then the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ICommunicationChannel.SubTopology">
            <summary>
            Provides access to the <see cref="T:Fdt.Communication.ISubTopology"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Communication.ICommunicationChannel.SupportedProtocols">
            <summary>
            Gets a list of the supported protocols of the communication channel.
            </summary>
            <remarks>
            <para>
            Via this property the DTM that wants to establish a connection asks the next communication component for the supported protocols.
            At least one protocol shall be supported by a communication channel.
            </para>
            <para>
            If a channel supports more than one protocol during runtime it has to support all protocols in parallel.
            The list of supported protocols for a communication channel may change during runtime depending on configuration (or depending on added Child DTMs).
            </para>
            <para>
            If a Child DTM is connected to the channel (i.e. after ChildAdded()) SupportedProtocols has to return static information because a change may cause an invalid topology.
            So if the Communication Channel can be configured to support different protocols, this can only be done if there are no connected children.
            </para>
            <para>
            A DTM, which wants to use more than one protocol, has to ask the channel for its supported protocols before it starts the communication.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Communication.IScanning">
            <summary>
            This interface is used to request a scan of the sub topology of a communication channel.
            </summary>
            <remarks>
            <para>
            This interface may be supported by communication channels if the fieldbus protocol supports scanning.
            The corresponding protocol annex shall define whether this interface is mandatory or not.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.IScanning.BeginScanRequest(Fdt.Communication.ScanRequest,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DeviceScanInfo}},System.AsyncCallback,System.Object)">
            <summary>
            Requests the asynchronous scan of the sub topology of a communication channel
            </summary>
            <param name="request">Information about the address range of the requested scan</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method is called by the Frame Application. 
            The DTM performs the scan asynchronously and sends the result to the Frame Application as the result 
            of the <see cref="M:Fdt.Communication.IScanning.EndScanRequest(System.IAsyncResult)"/> method.
            </para>
            <para>
            Progress callback shall be fired by Communication Channel while scanning is performed.
            The communication channel may include provisional results in the progress information. <see cref="T:Fdt.ProgressCallback`1"/>
            The ability to provide provisional scan responses is intended especially for "slow" fieldbus protocols. 
            The operator will see how the life list is growing. It is possible to stop the scan, if the operator received enough information.
            </para>
            <para>
            A Communication Channel of a protocol where the physical order of devices matters shall only send provisional results with the progress callback mechanism, 
            if it can ensure that successive callbacks deliver devices in their physical order. 
            This allows FAs to create the topology on-the-fly while the scan is still running. 
            </para>
            <para>
            If a scan is done on a Communication Channel that already has children a Frame Application shall always offer means to map the existing children to the devices found during the scan. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.IScanning.EndScanRequest(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.IScanning.CancelScanRequest(System.IAsyncResult)">
            <summary>
            Cancels an active asynchronous scan request
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Communication.IScanning.BeginScanRequest(Fdt.Communication.ScanRequest,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DeviceScanInfo}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Communication.IScanning.EndScanRequest(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
        </member>
        <member name="M:Fdt.Communication.IScanning.EndScanRequest(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.IScanning.BeginScanRequest(Fdt.Communication.ScanRequest,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DeviceScanInfo}},System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result information about the scanned sub topology.</returns>
            <remarks>
            <para>
            The returned result data shall contain a list of <see cref="T:Fdt.Dtm.DeviceScanInfo"/> objects or null if no device was found.
            The communication channel shall use the protocol specific derived classes <see cref="T:Fdt.Dtm.DeviceScanInfo`1"/> to return the results.
            <note>
            A Frame Application may use the protocol neutral properties of the base class to evaluate the scan results.
            </note>
            </para>
            <para>
            In case of a communication errors the returned <see cref="T:Fdt.Dtm.DeviceScanInfo"/> objects contain error information (<see cref="T:Fdt.Communication.CommunicationError"/>). 
            If all communications fail then an exception shall be thrown.
            </para>
            <para>
            Result information about the scanned sub topology shall be ordered according to the physical order (if any) of the devices found on the network.
            A Frame Application shall always insert devices exactly according to the order returned by this method.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.IScanning.BeginScanRequest(Fdt.Communication.ScanRequest,Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DeviceScanInfo}},System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Communication.IScanning.CancelScanRequest(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The scan operation fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Communication.ISubscription">
            <summary>
            This interface extends the communication entry point of a channel with device initiated data transfer functionality.
            </summary>
            <remarks>
            <para>
            Some protocols support data transfer services that are initiated by the device and not by the DTM. 
            In order to support such services, following general behavior is defined in FDT:
            <list type="bullet">
                <item>
                the infrastructure (filter, service queue) for such services is initiated by a protocol-specific 
                <see cref="M:Fdt.Communication.ISubscription.BeginSubscriptionInitialization(Fdt.Communication.SubscribeRequest,Fdt.ProgressCallback,Fdt.Communication.SubscriptionCallback,System.AsyncCallback,System.Object)"/> request of the DTM.
                </item>
                <item>the device initiated data transfer is transported by multiple <see cref="T:Fdt.Communication.SubscriptionCallback"/> responses.</item>
                <item>the infrastructure for these services is terminated by a protocol-specific <see cref="M:Fdt.Communication.ISubscription.BeginSubscriptionTermination(Fdt.Communication.UnsubscribeRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> request of the DTM.</item>
            </list>
            </para>
            <para>
            Device initiated data transfer needs management by the communication infrastructure. That is why it is necessary to unambiguously 
            identify the request to initialize and terminate this type of behavior.
            </para>
            <para>
            The requests to initiate or terminate device initiated data transfer is transport protocol specific. 
            The request to terminate the data transfer contains all the information necessary to terminate the 
            device initiated data transfer. 
            </para>
            <para>
            If a DTM starts device initiated data transfer service on the device, it shall also terminate this service. 
            The termination has to occur, before the DTM goes offline or aborts the connection. If the connection is 
            terminated by the parent Communication Channel (calling <see cref="T:Fdt.Communication.AbortCallback"/>) this service is terminated automatically.
            </para>
            <para>
            The support of such services is protocol-specific and device-specific. 
            If a Communication Channel is not able to support this type of service, 
            it shall return an error indicating that it is not able to support this feature.
            </para>
            <para>
            The concrete protocol specific data types are derived from the base classes <see cref="T:Fdt.Communication.SubscribeRequest"/>, <see cref="T:Fdt.Communication.SubscribeResponse"/>,
            <see cref="T:Fdt.Communication.UnsubscribeRequest"/> and <see cref="T:Fdt.Communication.UnsubscribeResponse"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ISubscription.BeginSubscriptionInitialization(Fdt.Communication.SubscribeRequest,Fdt.ProgressCallback,Fdt.Communication.SubscriptionCallback,System.AsyncCallback,System.Object)">
            <summary>
            Requests the initialization of the device initiated data transfer infrastructure
            </summary>
            <param name="request">Fieldbus-protocol-specific information which is needed to 
            establish a device initiated data transfer infrastructure</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="subscriptionCallback">The method to be called when new data from the device is received.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Communication.ISubscription.EndSubscriptionInitialization(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubscription.BeginSubscriptionInitialization(Fdt.Communication.SubscribeRequest,Fdt.ProgressCallback,Fdt.Communication.SubscriptionCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result information about the established device initiated data transfer infrastructure</returns>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The operation failed because of communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument request is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubscription.BeginSubscriptionTermination(Fdt.Communication.UnsubscribeRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Terminates a device initiated data transfer infrastructure
            </summary>
            <param name="request">Fieldbus-protocol-specific information about the device initiated data transfer infrastructure to terminate</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Communication.ISubscription.EndSubscriptionTermination(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubscription.BeginSubscriptionTermination(Fdt.Communication.UnsubscribeRequest,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result information about the established device initiated data transfer infrastructure</returns>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The operation failed because of communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference asyncResult is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Communication.ISubTopology">
            <summary>
            This interface provides methods for management of the sub-topology for a Communication Channel.    
            </summary>
            <remarks>
            <para>
            This interface shall be supported by Communication Channels. 
            It allows validating the sub-topology beneath a channel. 
            A Frame Application always is responsible for the sub-topology of a channel, 
            it has to call this interface so that the channel or at least the according 
            parent DTM can validate the configured connections.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            Validates if a given device, specified by its <paramref name="typeInfo"/>, can be added to the sub-topology.
            </summary>
            <param name="typeInfo">Information about the particular (physical) device type which shall be added. This can be
            <list type="bullet">
            <item>a <see cref="T:Fdt.Dtm.DeviceTypeInfo"/> for a Device.</item>
            <item>a <see cref="T:Fdt.Dtm.BlockTypeInfo"/> for a Block.</item>
            <item>a <see cref="T:Fdt.Dtm.ModuleTypeInfo"/> for a Module.</item>
            </list>
            </param>
            <param name="dtmSystemTag">The System Tag of the DTM which shall be added.</param>
            <param name="dtmSystemTagOfPredecessor">The System Tag of the DTM after which sibling node a new child is added, can be NULL to add device as first child</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndValidateAddChild(System.IAsyncResult)"/>
            <remarks>
            <para>
            If a Parent DTM needs specific information from the Child DTM which shall be added then it can access the Child DTM
            using <see cref="M:Fdt.Frame.ITopology.BeginGetDtm(System.Guid,System.AsyncCallback,System.Object)"/>. However, this shall be avoided if the <paramref name="typeInfo"/> is sufficient.
            </para>
            <para> 
            A Frame Application shall call this method at least one time before <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> can be called.
            A Parent DTM shall be prepared that this method is called without calling <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>"/> afterwards.
            </para>
            <para>
            If a Parent DTM accesses a Child DTM in this call then it shall not change data (e.g. Address) in the Child DTM. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndValidateAddChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>TRUE if addition of the Child DTM is possible.</returns>
            <remarks>
            <para>
            If an exception occurs then the Frame Application shall consider the Child DTM as not added.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginValidateRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            Validates if an existing device can be moved in its sub topology to a different position within its siblings.
            </summary>
            <param name="dtmSystemTag">The System Tag of the DTM which shall be repositioned.</param>
            <param name="dtmSystemTagOfPredecessor">The System Tag of the DTM after which the sibling node shall be repositioned.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndValidateRepositionChild(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndValidateRepositionChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>TRUE if repositioning of the Child DTM is possible.</returns>
            <remarks>
            <para>
            If an exception occurs then the Frame Application shall consider the Child DTM as not added.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginValidateRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            The channel is informed that a new device, specified by its <paramref name="dtmSystemTag"/>, 
            has been added to the sub-topology.
            </summary>
            <param name="typeInfo">Information about the particular (physical) device type which has been added. This can be
            <list type="bullet">
            <item>a <see cref="T:Fdt.Dtm.DeviceTypeInfo"/> for a Device.</item>
            <item>a <see cref="T:Fdt.Dtm.BlockTypeInfo"/> for a Block.</item>
            <item>a <see cref="T:Fdt.Dtm.ModuleTypeInfo"/> for a Module.</item>
            </list>
            </param>
            <param name="dtmSystemTag">The DTM System Tag of the DTM which shall be added.</param>
            <param name="dtmSystemTagOfPredecessor">The System Tag of the DTM after which sibling node a new child is added,
             can be NULL to add device as first child.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method will only be used in order to inform a parent DTM that the topology was changed. 
            In case of reloading, for example project related data, this method shall not be called.
            </para>
            <para> 
            The Frame Application shall only call <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> with the child which was validated
            by <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> before.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndChildAdded(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndChildAdded(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The dataset changes could not be committed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginChildRepositioned(System.Guid,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            The communication channel is informed that the position of a child in the sub topology was changed.
            </summary>
            <param name="dtmSystemTag">The DTM System Tag of the DTM which was repositioned.</param>
            <param name="dtmSystemTagOfPredecessor">The System Tag of the DTM after which the sibling was placed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method will only be used in order to inform a parent DTM that the topology was changed. 
            In case of reloading, for example project related data, this method shall not be called.
            </para>
            <para> 
            The Frame Application shall only call <see cref="M:Fdt.Communication.ISubTopology.BeginChildRepositioned(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> with the child which was validated
            by <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> before.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndChildRepositioned(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndChildRepositioned(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginChildRepositioned(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginChildRepositioned(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The dataset changes could not be committed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            Validates if a given device, specified by its <paramref name="dtmSystemTag"/>, 
            can be removed from the sub-topology.
            </summary>
            <param name="dtmSystemTag">The  DTM System Tag which identifies the DTM which shall be removed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndValidateRemoveChild(System.IAsyncResult)"/>
            <remarks>
            A DTM shall not return FALSE if the DTM which shall be removed is not available on the system 
            (e.g. the project was opened on another PC).
            </remarks>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndValidateRemoveChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>TRUE if removing of the Child DTM is possible.</returns>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginChildRemoved(System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            The channel is informed that a device, specified by its <paramref name="dtmSystemTag"/>, 
            was removed from the sub-topology.
            </summary>
            <param name="dtmSystemTag">The  DTM System Tag of the DTM which shall be added.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method will only be used in order to inform a parent DTM that the 
            topology was changed. In case of destruction, for example closing a project, 
            this method shall not be called.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndChildRemoved(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndChildRemoved(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginChildRemoved(System.Guid,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <remarks>
            <para>
            A DTM should release all references to the removed child before the method returns.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginChildRemoved(System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag of <see cref="M:Fdt.Communication.ISubTopology.BeginChildRemoved(System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The dataset changes could not be committed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.BeginSetChildrenAddresses(Fdt.FdtList{Fdt.Communication.DeviceAddressInfo},Fdt.Communication.SetDeviceAddressMethod,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Requests the Communication Channel to set the address of its Child DTMs.
            </summary>
            <param name="addressList">Contains a list of addresses to be set.</param>
            <param name="setAddressMode">Specified the address setting mode.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            Requests setting of bus address for one device or a list of devices of the corresponding Child DTMs. 
            The request may specify that the called Communication Channel shall open a user interface to request device address settings from user. 
            <para>
            To get a qualified response, error information is included in the returned data of <see cref="M:Fdt.Communication.ISubTopology.EndSetChildrenAddresses(System.IAsyncResult)"/>.
            </para>
            </para>
            <para>
            Setting the bus address on a Device DTM via the <see cref="T:Fdt.Dtm.Network.INetworkData"/> interface provides the Device DTM with information. 
            The Device DTM shall not use this information for execution of communication transactions, that set the address in the field device.
            </para>
            <para>
            As part of executing this operation the method <see cref="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUiModal(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)"/>  
            may be used to request address selection from the user.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.EndSetChildrenAddresses(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Communication.ISubTopology.EndSetChildrenAddresses(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Communication.ISubTopology.BeginSetChildrenAddresses(Fdt.FdtList{Fdt.Communication.DeviceAddressInfo},Fdt.Communication.SetDeviceAddressMethod,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result information about the performed address setting operation</returns>
            <remarks>
            If address setting fails for one or more children then the current address shall shall be returned in the list
            with result information.
            </remarks>
            <seealso cref="M:Fdt.Communication.ISubTopology.BeginSetChildrenAddresses(Fdt.FdtList{Fdt.Communication.DeviceAddressInfo},Fdt.Communication.SetDeviceAddressMethod,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument addressList of <see cref="M:Fdt.Communication.ISubTopology.BeginSetChildrenAddresses(Fdt.FdtList{Fdt.Communication.DeviceAddressInfo},Fdt.Communication.SetDeviceAddressMethod,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> contains an invalid ProtocolId or Address.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument addressList of <see cref="M:Fdt.Communication.ISubTopology.BeginSetChildrenAddresses(Fdt.FdtList{Fdt.Communication.DeviceAddressInfo},Fdt.Communication.SetDeviceAddressMethod,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() contains an invalid  DTM System Tag.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The dataset changes could not be committed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Communication.SubscriptionCallback">
            <summary>
            References a method to be called when a subscribed asynchronous transaction packet arrives.
            </summary>
            <param name="transcationInfo">Contains subscribed information.</param>
        </member>
        <member name="T:Fdt.Datatypes.ArrayDatatypeInfo">
            <summary>
            Information about type of data (see <see cref="T:Fdt.Datatypes.ArrayDataValue`1"/>).
            </summary>
        </member>
        <member name="M:Fdt.Datatypes.ArrayDatatypeInfo.#ctor(Fdt.Datatypes.Datatype)">
            <summary>
            Constructs a new instance of type <see cref="T:Fdt.Datatypes.ArrayDataValue`1"/>
            </summary>
            <param name="skalarDatatype">Array element type</param>
        </member>
        <member name="P:Fdt.Datatypes.ArrayDatatypeInfo.ArrayDimensions">
            <summary>
            Specifies the length of each dimension of the array value.
            </summary>
            <remarks>
            <list type="bullet">
            <item>
            Each element in <see cref="P:Fdt.Datatypes.ArrayDatatypeInfo.ArrayDimensions"/> may be set to 0 to indicate that the corresponding dimension has a variable length.
            </item>
            <item>
            A variable number of dimensions is not supported. DTMs shall provide array values with a fixed number of dimensions. Therefore, <see cref="P:Fdt.Datatypes.ArrayDatatypeInfo.ArrayDimensions"/> must have at least 1 element.
            </item>
            </list>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ArrayDataValue">
            <summary>
            Abstract base class for array data values provided by a DTM. 
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.ArrayDataValue`1">
            <summary>
            Generic base class for data values provided by a DTM. 
            </summary>
            <typeparam name="T">Skalar data type of the array elements.</typeparam>
        </member>
        <member name="M:Fdt.Datatypes.ArrayDataValue`1.GetValue">
            <summary>
            Override. Returns the property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            </summary>
            <returns>
            The property <see cref="P:Fdt.Datatypes.DataValue.Value"/> as an object.
            </returns>
        </member>
        <member name="M:Fdt.Datatypes.ArrayDataValue`1.SetValue(System.Object)">
            <summary>
            Override. Sets the value of property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            If the provided string or datatype can not be converted to the original 
            datatype, then the setting operation fails with an exception.
            </summary>
            <param name="value">
            The value to set as an object.
            </param>
            <exception cref="T:System.InvalidCastException">
            Thrown if setting of the value is not possible  (converting from string is not possible or wrong datatype is used).
            </exception>
        </member>
        <member name="T:Fdt.Datatypes.FloatArrayValue">
            <summary>
            An array of single-precision (32-bit) floating-point numbers.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Float"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DoubleArrayValue">
            <summary>
            An array of double-precision (64-bit) floating-point numbers.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Double"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ByteArrayValue">
            <summary>
            An array of 8-bit unsigned integers.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Byte"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.IntArrayValue">
            <summary>
            An array of 32-bit signed integers.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Int"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.UIntArrayValue">
            <summary>
            An array of 32-bit unsigned integers. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.UInt"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.LongArrayValue">
            <summary>
            An array of 64-bit signed integers.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Long"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ULongArrayValue">
            <summary>
            An array of 64-bit unsigned integers. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.ULong"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.SignedByteArrayValue">
            <summary>
            An array of 8-bit signed integers. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.SByte"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BooleanArrayValue">
            <summary>
            An array of boolean values. 
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Boolean"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DateTimeArrayValue">
            <summary>
            An array of values which represent both date and time information.
            </summary>
            <remarks>
            <para>
            This data value shall be used if both a date and a time information is available.
            </para>
            <para>
            If only date information is available then <see cref="T:Fdt.Datatypes.DateValue"/> shall be used.
            </para>
            <para>
            If only time information is available then <see cref="T:Fdt.Datatypes.TimeValue"/> shall be used.
            </para>
            <para>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.DateTime"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DateArrayValue">
            <summary>
            An array of values which represent a date.
            </summary>
            <remarks>
            <para>
            This data value shall be used if only date information is available.
            </para>
            <para>
            If both date and time information is available then <see cref="T:Fdt.Datatypes.DateTimeValue"/> shall be used instead. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.TimeArrayValue">
            <summary>
            Array of values which represent a time.
            </summary>
            <remarks>
            <para>
            This data value shall be used if only time (of day) information is available.
            </para>
            <para>
            If both date and time information is available then <see cref="T:Fdt.Datatypes.DateTimeValue"/> shall be used instead. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.TimeSpanArrayValue">
            <summary>
            An array of TimeSpan values.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.TimeSpan"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.StringArrayValue">
            <summary>
            An array if Unicode strings.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.String"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BinaryBitArrayArrayValue">
            <summary>
            An array of <see cref="T:System.Collections.BitArray"/> objects.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.BinaryBitArray"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BinaryByteArrayArrayValue">
            <summary>
            An array of compact byte arrays.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.BinaryByteArray"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.EnumArrayValue">
            <summary>
            An array of enumerator values.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/>,
            indicating the scalar type of the array members.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ByteOrder">
            <summary>
            Order of bytes (endianess).
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.ByteOrder.LittleEndian">
            <summary>
            Bype order is LittleEndian.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.ByteOrder.BigEndian">
            <summary>
            Bype order is BigEndian.
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.Datatype">
            <summary>
            List of possible data types. 
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Float">
            <summary>
            Data is of type <see cref="T:System.Single"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Double">
            <summary>
            Data is of type <see cref="T:System.Double"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Byte">
            <summary>
            Data is of type <see cref="T:System.Byte"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Int">
            <summary>
            Data is of type <see cref="T:System.Int32"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Long">
            <summary>
            Data is of type <see cref="T:System.Int64"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.UInt">
            <summary>
            Data is of type <see cref="T:System.UInt32"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.ULong">
            <summary>
            Data is of type <see cref="T:System.UInt64"/>
            </summary>       
        </member>
        <member name="F:Fdt.Datatypes.Datatype.DateTime">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.Datatype.DateTime"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Date">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.Datatype.Date"/>.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Time">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.Datatype.Time"/>.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.TimeSpan">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.Datatype.TimeSpan"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.String">
            <summary>
            Data is of type <see cref="T:System.String"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.BinaryByteArray">
            <summary>
            Data is of type <see cref="T:System.Byte"/> array.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.BinaryBitArray">
            <summary>
            Data is of type <see cref="T:System.Collections.BitArray"/> array.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Enumerator">
            <summary>
            <see cref="T:System.UInt32"/> that has a text string associated.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.Boolean">
            <summary>
            Data is of type  <see cref="F:Fdt.Datatypes.Datatype.Boolean"/>.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.Datatype.SByte">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.Datatype.SByte"/>
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.DatatypeInfo">
            <summary>
            Information about type of data (see <see cref="T:Fdt.Datatypes.DataValue"/>).
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.DatatypeInfo.Datatype">
            <summary>
            Information about the used data type.
            </summary>
            <remarks>
            <para>
            If this property returns <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/>, then
            the property <see cref="P:Fdt.Datatypes.DatatypeInfo.Enumerator"/> shall return further enumerator
            information. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Datatypes.DatatypeInfo.Enumerator">
            <summary>
            [Optional] Further information about an enumerator. 
            </summary>
            <remarks>
            This property shall be set if <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/>.
            Otherwise <see cref="M:Fdt.Datatypes.DatatypeInfo.Verify"/> throws an exception.
            </remarks>
        </member>
        <member name="M:Fdt.Datatypes.DatatypeInfo.Verify">
            <summary>
            Overrides. Checks the rules defined for the properties <see cref="P:Fdt.Datatypes.DatatypeInfo.Enumerator"/> 
            and <see cref="T:Fdt.SemanticInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.DataValue">
            <summary>
            Abstract base class for data values provided by a DTM. 
            </summary>
            <remarks>
            <para>
            The data types are based on the type definition in the .NET Framework. 
            See there for length definition (e.g. if it is a 2 or 4 byte integer).
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Datatypes.DataValue.Value">
            <summary>
            Value of the <see cref="T:Fdt.Datatypes.DataValue`1"/>.Value property as object.
            </summary>
            <remarks>
            <para>
            The format (<see cref="T:Fdt.Datatypes.Datatype"/>) of the value is defined by a derived class. 
            </para>
            <para>
            This property can for example be used to get the string representation of 
            the value. 
            </para>
            <para>
            Additionally, the value can be set. If the provided data can not be 
            converted (casted) to the original datatype, then the setting operation 
            fails with an exception.
            </para>
            </remarks>
            <exception cref="T:System.InvalidCastException">
            Thrown if setting of the value is not possible (wrong datatype is used).
            </exception>
        </member>
        <member name="P:Fdt.Datatypes.DataValue.SemanticInfo">
            <summary>
            [Optional] Further information about the used non-standard datatype. 
            Such types may be vendor specific or introduced by an FDT annex specification. 
            </summary>
        </member>
        <member name="M:Fdt.Datatypes.DataValue.GetValue">
            <summary>
            Returns the property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            </summary>
            <returns> 
            The property <see cref="P:Fdt.Datatypes.DataValue.Value"/> as an object.
            </returns>
        </member>
        <member name="M:Fdt.Datatypes.DataValue.SetValue(System.Object)">
            <summary>
            Override. Sets the value of property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            If the provided string or datatype can not be converted to the original 
            datatype, then the setting operation fails with an exception.
            </summary>
            <param name="value">
            The value to set as an object.
            </param>
            <exception cref="T:System.InvalidCastException">
            Thrown if setting of the value is not possible  (converting from string is not possible or wrong datatype is used).
            </exception>
        </member>
        <member name="T:Fdt.Datatypes.DataValue`1">
            <summary>
            Generic base class for data values provided by a DTM. 
            </summary>
            <typeparam name="T">Data type of the data value</typeparam>
        </member>
        <member name="M:Fdt.Datatypes.DataValue`1.GetValue">
            <summary>
            Override. Returns the property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            </summary>
            <returns>
            The property <see cref="P:Fdt.Datatypes.DataValue.Value"/> as an object.
            </returns>
        </member>
        <member name="M:Fdt.Datatypes.DataValue`1.SetValue(System.Object)">
            <summary>
            Override. Sets the value of property <see cref="P:Fdt.Datatypes.DataValue.Value"/>.
            If the provided string or datatype can not be converted to the original 
            datatype, then the setting operation fails with an exception.
            </summary>
            <param name="value">
            The value to set as an object.
            </param>
            <exception cref="T:System.InvalidCastException">
            Thrown if setting of the value is not possible  (converting from string is not possible or wrong datatype is used).
            </exception>
        </member>
        <member name="T:Fdt.Datatypes.FloatValue">
            <summary>
            A single-precision (32-bit) floating-point number.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Float"/>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DoubleValue">
            <summary>
            A double-precision (64-bit) floating-point number.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Double"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ByteValue">
            <summary>
            An 8-bit unsigned integer.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Byte"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.IntValue">
            <summary>
            A 32-bit signed integer.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Int"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.UIntValue">
            <summary>
            A 32-bit unsigned integer. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.UInt"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.LongValue">
            <summary>
            A 64-bit signed integer.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Long"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.ULongValue">
            <summary>
            A 64-bit unsigned integer. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.ULong"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.SignedByteValue">
            <summary>
            A 8-bit signed integer. Not CLS-compliant.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.SByte"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BooleanValue">
            <summary>
            A boolean value. 
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Boolean"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DateTimeValue">
            <summary>
            Value which represents both date and time information.
            </summary>
            <remarks>
            <para>
            This data value shall be used if both a date and a time information is available.
            </para>
            <para>
            If only date information is available then <see cref="T:Fdt.Datatypes.DateValue"/> shall be used.
            </para>
            <para>
            If only time information is available then <see cref="T:Fdt.Datatypes.TimeValue"/> shall be used.
            </para>
            <para>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.DateTime"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.DateValue">
            <summary>
            Value which represents a date.
            </summary>
            <remarks>
            <para>
            This data value shall be used if only date information is available.
            </para>
            <para>
            If both date and time information is available then <see cref="T:Fdt.Datatypes.DateTimeValue"/> shall be used instead. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.TimeValue">
            <summary>
            Value which represents time.
            </summary>
            <remarks>
            <para>
            This data value shall be used if only time (of day) information is available.
            </para>
            <para>
            If both date and time information is available then <see cref="T:Fdt.Datatypes.DateTimeValue"/> shall be used instead. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.TimeSpanValue">
            <summary>
            <see cref="T:Fdt.Datatypes.DataValue"/> with a TimeSpan value.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.TimeSpan"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.StringValue">
            <summary>
            A string of Unicode characters.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.String"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BinaryBitArrayValue">
            <summary>
            A compact array of bit values.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.BinaryBitArray"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.BinaryByteArrayValue">
            <summary>
            A compact array of byte values.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.BinaryByteArray"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.EnumValue">
            <summary>
            DataValue with an enumerator value.
            </summary>
            <remarks>
            The property <see cref="T:Fdt.Datatypes.Datatype"/> is set to <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Datatypes.EnumType">
            <summary>
            Type of the enumerator <see cref="T:Fdt.Datatypes.EnumInfo"/>.
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.EnumType.NumberEnumerator">
            <summary>
            Number enumerator (<see cref="P:Fdt.Datatypes.EnumEntry.Index"/> is a number).
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.EnumType.BitEnumerator">
            <summary>
            Bit enumerator (<see cref="P:Fdt.Datatypes.EnumEntry.Index"/> specifies a bit position).
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.EnumInfo">
            <summary>
            Description of an enumerator.
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.EnumInfo.Datatype">
            <summary>
            Information about the  data type used by the enumeration.
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.EnumInfo.Type">
            <summary>
            Type of the enumerator (defines how the <see cref="P:Fdt.Datatypes.EnumEntry.Index"/>
            shall be interpreted). 
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.EnumInfo.EnumEntries">
            <summary>
            List of possible values. 
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.EnumEntry">
            <summary>
            Description of a single enumerator entry. 
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.EnumEntry.Index">
            <summary>
            Index of the enumeration entry.
            </summary>
            <remarks>
            The <see cref="P:Fdt.Datatypes.EnumInfo.Type"/> defines how this index shall be interpreted:
            <list type="bullet">
                <item>
                <see cref="F:Fdt.Datatypes.EnumType.NumberEnumerator"/>: 
                Index specifies a number.
                </item>
                <item>
                <see cref="F:Fdt.Datatypes.EnumType.BitEnumerator"/>: 
                Index specifies a bit position (2^0, 2^1, 2^3...).
                </item>
            </list>
            </remarks>
        </member>
        <member name="P:Fdt.Datatypes.EnumEntry.Label">
            <summary>
            Human readable label of the enumerator entry. 
            </summary>
        </member>
        <member name="P:Fdt.Datatypes.EnumEntry.Descriptor">
            <summary>
            [Optional] Human readable string describing the entry. This text is typically used
            as a tool-tip text if the Frame Application displays the entry to the user. 
            </summary>
        </member>
        <member name="T:Fdt.Datatypes.IECDatatype">
            <summary>
            List of possible IEC data types. 
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.BOOL">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.BOOL"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.SINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.SINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.INT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.INT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.DINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.DINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.LINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.LINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.USINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.USINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.UINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.UINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.UDINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.UDINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.ULINT">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.ULINT"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.REAL">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.REAL"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.LREAL">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.LREAL"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.TIME">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.TIME"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.DATE">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.DATE"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.TimeOfDay">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.TimeOfDay"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.DateAndTime">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.DateAndTime"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.STRING">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.STRING"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.BYTE">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.BYTE"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.WORD">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.WORD"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.DWORD">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.DWORD"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.LWORD">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.LWORD"/>
            </summary>
        </member>
        <member name="F:Fdt.Datatypes.IECDatatype.WSTRING">
            <summary>
            Data is of type <see cref="F:Fdt.Datatypes.IECDatatype.WSTRING"/>
            </summary>
        </member>
        <member name="T:Fdt.Deployment.ArchiveInfo">
            <summary>
            Information about a .NET assembly.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ArchiveInfo.Name">
            <summary>
            File name of the archive.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ArchiveInfo.Path">
            <summary>
            [Optional] Path to the archive. The path shall be relative to the 
            FDT defined DTM installation path.
            </summary>
            <remarks>
            The returned path shall have a leading and trailing backslash. 
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.ContainerFileInfo">
            <summary>
            Information about an archive which contains one ore more DTM WebUis.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ContainerFileInfo.Name">
            <summary>
            File name of the archive.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ContainerFileInfo.Path">
            <summary>
            [Optional] Path to the archive. The path shall be relative to the 
            FDT defined DTM installation path.
            </summary>
            <remarks>
            The returned path shall have a leading and trailing backslash. 
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.DtmDeviceIdentManifest">
            <summary>
            A DtmDeviceIdentManifest describes additional physical device parameters that
            are required for device identification.
            </summary>
            <remarks>
            <para>Device identification manifest files are used only in setup. They are not
            required for installed DTM because the DtmInfoBuilder deliver same information.</para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmDeviceIdentManifest.BusCategory">
            <summary>
            Identifies the protocol for which the <see cref="P:Fdt.Deployment.DtmDeviceIdentManifest.DeviceIdentInfos"/> apply.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmDeviceIdentManifest.DeviceIdentInfos">
            <summary>
            This information is used to describe physical device types which are
            supported by a DTM Device Type. It contains identification elements of a physical device
            type or device type group.
            </summary>
        </member>
        <member name="T:Fdt.Deployment.DtmManifest">
            <summary>
            A DTM manifest describes the assembly of a DTM and the included DTM itself.
            The manifest is used to register an installed DTM in order to enable Frame Applications 
            to find it. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmManifest.DtmInfoBuilderRef">
            <summary>
            Information about DTMInfoBuilder class, which shall be used to 
            request <see cref="T:Fdt.Dtm.TypeInfo">Type Infos</see> and corresponding
            <see cref="T:Fdt.Dtm.DeviceIdentInfo">device identification information</see> supported by 
            the DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmManifest.UiManifestRefs">
            <summary>
            [Optional] References to DTM user interface manifest files. These files describe the 
            user interface functions belonging to the DTM described by this manifest. 
            </summary>
            <remarks>
            <para>
            This property shall return null, if the DTM does not support user interface functions. Otherwise
            it shall provide references to corresponding manifest files.
            <note>
            <see cref="T:Fdt.Deployment.UiManifestRef"/>.<see cref="P:Fdt.Deployment.UiManifestRef.ManifestType"/> defines the type of 
            the manifest. 
            <para>
            A DTM may also provide further manifest file types, for example for other user interface technologies
            or platforms introduced by FDT at a later point in time. Thus, the Frame Application shall
            check the type of the manifest file and only load the files it can handle. 
            </para>
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmManifest.DtmInitData">
            <summary>
            [Optional] DTM initialization information.
            This information may be used to pass some DTM specific information to the DTM
            during its initialization (see IDtm3.Init()).
            </summary>
        </member>
        <member name="T:Fdt.Deployment.UiManifestRef">
            <summary>
            Reference to a DTM user interface manifest file, for example <see cref="T:Fdt.Deployment.DtmWebUiManifest"/>. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.UiManifestRef.ManifestType">
            <summary>
            Unique identifier (string) for the type of the user interface manifest. 
            </summary>
            <remarks>
            This is the type name including namespace, e.g. 'Fdt.Deployment.DtmWebUiManifest'.
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.UiManifestRef.FileName">
            <summary>
            Name of the manifest file.
            </summary>
            <remarks>
            This is the file name including file extension, e.g. 'CommunicationDtmUI.dtmwebui.manifest'.
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.DtmPackageManifest">
            <summary>
            A package manifest describes the package of a DTM, including identification 
            of the product, the vendor, version and the included DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.VendorName">
            <summary>
            Name of the company which provides the setup. 
            </summary>
            <remarks>
            Human readable information about the DTM software setup which can be used for communication with DTM vendor.
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.PackageName">
            <summary>
            Name of the DTM product.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.ProductCode">
            <summary>
            Unique identifier of the DTM package.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.PackageVersion">
             <summary>
             Version of the DTM package. 
             </summary>
             <remarks>
            The version shall consist of 3 digits, e.g. 1.0.2
             </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.DtmInfo">
            <summary>
            Information about the DTM which is included in the package. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.Description">
            <summary>
            Provides the description of the package, which may be read by a user prior to installing the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.Dependencies">
            <summary>
            Provides the information about dependencies according to NuGet version 2.0. 
            </summary>
            <remarks>
            This field is used for describing the dependencies in regard to FDT library and protocol libraries only.
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.SupportedRuntimes">
            <summary>
            Provides the supported runtimes of the DTM.
            </summary>
            <remarks>
            <para>
            Allowed values for Runtime IDs are defined by the dotnet platform (see https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
            </para>
            <para>
            Runtime IDs are organized in a graph, so a certain ID can include several sub IDs which are then implicitly supported.
            The ID 'any' is the root of the graph and basically states that any runtime is supported by the packaged DTM.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.DtmPackageManifest.MinimumNetStandardVersion">
            <summary>
            [Optional] Minimum .NET Standard version that is required to be installed on the OS 
            in order for the DTM to function correctly.
            </summary>
        </member>
        <member name="T:Fdt.Deployment.DtmWebUiManifest">
            <summary>
            This manifest describes one or more DTM user interface functions.
            The manifest is used to register installed DTM user interface functions in order to enable 
            the Frame Applications to find and execute them. 
            </summary>
        </member>
        <member name="F:Fdt.Deployment.DtmWebUiManifest.ManifestType">
            <summary>
            Constant defining the string to be returned for this type of manifest in 
            <see cref="T:Fdt.Deployment.UiManifestRef"/>.<see cref="P:Fdt.Deployment.UiManifestRef.ManifestType"/>.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmWebUiManifest.ContainerFileInfo">
            <summary>
            Information about the DTM user interface assembly. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.DtmWebUiManifest.WebUiFunctionInfos">
            <summary>
            Information about the DTM Web UI functions included in the archive described by
            <see cref="P:Fdt.Deployment.DtmWebUiManifest.ContainerFileInfo"/>. 
            </summary>
        </member>
        <member name="T:Fdt.Deployment.AssemblyInfo">
            <summary>
            Information about a .NET assembly.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.AssemblyInfo.Name">
            <summary>
            File name of the .NET assembly (without .dll extension).
            </summary>
        </member>
        <member name="P:Fdt.Deployment.AssemblyInfo.Version">
            <summary>
            Version of the assembly.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.AssemblyInfo.PublicKeyToken">
            <summary>
            Specifies a 16-character hexadecimal string that represents the last 8 bytes of the 
            SHA-1 hash value of the public key under which the deployment manifest is signed. 
            The public key that is used to sign must be 2048 bits or greater.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.AssemblyInfo.SupportedNetStandardVersions">
            <summary>
            .NET Standard versions for which this assembly was released.
            </summary>
            <remarks> 
            <para>
            Frame Application shall use the minor and major version numbers to check whether
            the .NET object can be executed in the used .NET Runtime. If the supported .NET version is
            incompatible then a surrogate shall be used.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.AssemblyInfo.Path">
            <summary>
            [Optional] Path to the .NET assembly. The path shall be relative to the 
            FDT defined installation path.
            </summary>
        </member>
        <member name="T:Fdt.Deployment.OSVersion">
            <summary>
            This class represents a version of the operating system.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.OSVersion.OSVersionNumber">
            <summary>
            The Windows version number.
            </summary>
            <remarks>
            This is the version number as it would be returned by 
            Environment.OSVersion.Version property.
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.OSVersion.ServicePack">
            <summary>
            The service pack version. 
            </summary>
            <remarks>
            <para>
            The value "none" shall be used, if no ServicePack is installed.
            An empty string shall not be used because that would cause an exception in calls to the method <see cref="M:Fdt.FdtDatatype`1.Verify"/>.
            </para>
            <para>
            This is the service pack as it would be returned by 
            Environment.OSVersion.ServicePack property.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.PackageDependency">
            <summary>
            Provides the information about a dependency according to NuGet version 2.0.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.PackageDependency.Id">
            <summary>
            The nuget package ID of the dependency.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.PackageDependency.Version">
            <summary>
            The version of the dependency.
            </summary>
            <remarks>
            The Version property shall not specify version ranges or wildcards.
            It shall specify the exact version of the referenced nuget package.
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.ProtocolManifest">
            <summary>
            Information about an assembly containing the protocol-specific data types. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ProtocolManifest.ProtocolId">
            <summary>
            Unique identifier of the protocol
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ProtocolManifest.ProtocolName">
            <summary>
            Human readable name of the protocol
            </summary>
        </member>
        <member name="P:Fdt.Deployment.ProtocolManifest.AssemblyInfo">
            <summary>
            Information about the protocol assembly. AssemblyInfo.Path is not used for protocol assemblies.
            </summary>
        </member>
        <member name="T:Fdt.Deployment.StartPageInfo">
            <summary>
            Provides the path and the supported language of a DTM WebUi start page.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.StartPageInfo.Language">
            <summary>
            Provides the language of the start page.
            </summary>
            <remarks>
            <para>
            The string value representing the language corresponds to the <b>Name</b> property of a <see cref="T:System.Globalization.CultureInfo"/> instance.
            </para>
            <para>
            The string representation of the CultureInfo has been chosen here to avoid unnecessary data, especially in serialized manifests.
            </para>
            <para>
            A list of possible values is provided in the Microsoft NLS API reference:<br></br>
            https://msdn.microsoft.com/en-us/library/cc233982.aspx
            </para>
            <para>
            Example: "en-US" would represent English (U.S.).
            </para>
            <para>
            Example: "en" would represent English (neutral).
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.StartPageInfo.Path">
            <summary>
            Provides the path of the WebUi start page.
            </summary>
            <remarks>
            The path shall be relative within the container which contains this DTM WebUi.
            (<see cref="T:Fdt.Deployment.ContainerFileInfo"/>).
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.TargetNetStandard">
            <summary>
            This class represents a version for .NET Standard.
            </summary>
        </member>
        <member name="P:Fdt.Deployment.TargetNetStandard.NetStandardVersion">
            <summary>
            The Supported .Net Standard version number.
            </summary>
            <remarks>
            <para>
            Currently the following versions are supported:
            <list type="bullet">
                <item>2.0</item>
            </list>
            </para>
            <para>
            The major and minor digits are relevant only. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Deployment.WebUiFunctionInfo">
            <summary>
            Information about a web page that can be embedded into the 
            Frame Application user interface. 
            </summary>
        </member>
        <member name="P:Fdt.Deployment.WebUiFunctionInfo.FunctionId">
            <summary>
            Unique identifier for the function supported by the DTM WebUi.
            This shall be the same identifier as returned by a <see cref="T:Fdt.Dtm.Functions.UiFunction"/>
            element in <see cref="T:Fdt.Dtm.Functions.FunctionInfo"/>.
            </summary>
            <remarks>
            This identifier will be used to execute the corresponding function as UI function. 
            The DTM shall ensure that this property uniquely identifies the function to the Frame Application, even if the list of functions changes. 
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.WebUiFunctionInfo.StartPages">
            <summary>
            Specifies the HTML files within the package that represents 
            the DTM WebUi. 
            </summary>
            <remarks>
            <para>
            The DTM may specify different pages for different languages. The Frame Application can then choose the concrete start page based on the
            required language.
            </para>
            <para>
            A DTM WebUi shall support at least the language "en" for neutral English. This start page will be used by the Frame Application as a fallback in case
            the required language is not supported by the DTM WebUi.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Deployment.WebUiFunctionInfo.InitData">
            <summary>
            Initialization data of the ui function (optional).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.BlockTypeCategory">
            <summary>
            A block type category is a Universally Unique Identifier for a block category 
            (e.g. Analog Input, Digital Output).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.BlockTypeCategory.BlockCategory">
            <summary>
            Unique identifier for a block type like Analog Input, Resource Block.
            </summary>
            <remarks>
            <para>
            The BlockCategory is protocol specific and can be found in 
            the corresponding FDT protocol definition.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.BlockTypeCategory.BlockCategoryName">
            <summary>
            Human readable block type name (e.g. 'Analog Input').
            </summary>
        </member>
        <member name="T:Fdt.Dtm.BlockTypeInfo">
            <summary>
            The representation for a particular block type within the DTM is called DTM Block Type. 
            A DTM may contain one or more DTM Block Types. The concrete design and implementation 
            of the DTM Block Types is not in scope of FDT. This class provides only information about 
            these pieces of software like name, version, vendor, supported protocols etc.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.BlockTypeInfo.Category">
            <summary>
            Provides a categorization of Block Types. 
            </summary>
            <remarks>
            <para>
            The category may be used to group the Block Types in a catalog. The
            categories will be defined in the FDT protocol specifications.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.BlockTypeInfo.Profile">
            <summary>
            [Optional] Number assigned by the Fieldbus Foundation that uniquely identifies
            the profile on which the block is based.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.BlockTypeInfo.ProfileRevision">
            <summary>
            [Optional] The revision number of the profile on which the block definition is based.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Channels.ChannelItem">
            <summary>
            Abstract base class for module and communication channel information.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Channels.CommunicationChannelInfo">
            <summary>
            Information about communication channels (and modules) supported by a DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Channels.CommunicationChannelInfo.ChannelItems">
            <summary>
            [Optional] List of channels supported by the DTM. 
            The property shall return null, if currently no channels are supported (may depend
            on configuration).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Channels.ModuleChannelGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Channels.CommunicationChannelItem"/></item>
            </list>
            </para>
            <para>
            The <see cref="P:Fdt.Dtm.Channels.CommunicationChannelItem.Id">Channel Ids</see> shall be unique. 
            That means the same identifier shall not be used by more than once in this and all other sub-lists. 
            <note>
            The <see cref="M:Fdt.Dtm.Channels.CommunicationChannelInfo.Verify"/> method throws an exception if the channel ID is not unique. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Channels.CommunicationChannelInfo.Verify">
            <summary>
            Override. Verifies also that the channel IDs are unique.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Channels.CommunicationChannelInfo.VerifyList(Fdt.FdtList{Fdt.Dtm.Channels.ChannelItem},System.Collections.Generic.Dictionary{System.String,System.Int32})">
            <summary>
            Method used for recursive verification of the channel info lists.
            </summary>
            <param name="channelInfos"> information about the channels.
            </param>
            <param name="channelIds"> The id of the channels.
            </param>
        </member>
        <member name="T:Fdt.Dtm.Channels.CommunicationChannelItem">
            <summary>
            Information about a communication channel.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Channels.CommunicationChannelItem.Id">
            <summary>
            Unique identifier of the communication channel. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Channels.CommunicationChannelItem.Label">
            <summary>
            Human readable label of the communication channel.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Channels.CommunicationChannelItem.Descriptor">
            <summary>
            [Optional] Human readable description of the communication channel.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Channels.ModuleChannelGroup">
            <summary>
            Information about channels supported by a DTM module.
            </summary>
            <remarks>
            If this class is used, then the DTM shall also provide corresponding <see cref="T:Fdt.Dtm.Network.ModuleInfo"/> 
            in <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Channels.ModuleChannelGroup.ModuleId">
            <summary>
            Unique identifier of the <see cref="T:Fdt.Dtm.Network.ModuleInfo">module</see> described in 
            <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Channels.ModuleChannelGroup.ChannelItems">
            <summary>
            [Optional] List of channels supported by the module. 
            The property shall return null, if currently no channels are supported (may depend
            on configuration).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Channels.ModuleChannelGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Channels.CommunicationChannelItem"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Channels.IChannels">
            <summary>
            This interface is used for accessing the communication channel objects of a DTM.
            </summary>
            <remarks>
            <para>
            General communication channel information is provided by the property <see cref="P:Fdt.Dtm.Channels.IChannels.CommunicationChannelInfos"/>. 
            The channel objects itself are returned by the property <see cref="P:Fdt.Dtm.Channels.IChannels.CommunicationChannels"/>.
            </para>
            <para>
            The availability of channels may depend on the configuration. A DTM shall inform the Frame Application 
            about channel information changes (e.g. channel or module added or removed) by raising the event 
            <see cref="E:Fdt.Dtm.Channels.IChannels.ChannelsChanged"/>. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Channels.IChannels.CommunicationChannelInfos">
            <summary>
            Information about the communication channels supported by the DTM.
            </summary>
            <value>
            <para>
            This property shall provide information about communication channels provided by 
            the DTM. This information is available as soon as the DTM is instantiated but the 
            information may change if it is instance specific.
            </para>
            <para>
            The returned <see cref="T:Fdt.Dtm.Channels.CommunicationChannelInfo"/> may contain following information:
            <list type="bullet">
            	<listheader>
                    <term>Type</term>
                    <description>Description</description>
            	</listheader>
                <item>
                    <term><see cref="T:Fdt.Dtm.Channels.CommunicationChannelItem"/></term>
                    <description>
                    Provides information about a single communication channel, which can be 
                    accessed over the <see cref="P:Fdt.Dtm.Channels.IChannels.CommunicationChannels"/> property. 
                    </description>
                </item>
                <item>
                    <term><see cref="T:Fdt.Dtm.Channels.ModuleChannelGroup"/></term>
                    <description>
                    Group of communication channels provided by this DTM for a module 
                    (e.g. also returned by <see cref="T:Fdt.Dtm.IO.IProcessData"/>).
                    </description>
                </item>
            </list>
            </para>
            </value>
            <remarks>
            <para>
            A DTM shall inform the Frame Application about channel information changes 
            (e.g. channel or module added or removed) by raising the event 
            <see cref="E:Fdt.Dtm.Channels.IChannels.ChannelsChanged"/>. 
            </para>
            <para>
            The supported protocols are not provided via this property because the list of
            supported protocols can change dynamically.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Channels.IChannels.CommunicationChannels">
            <summary>
            Returns the communication channel objects of a DTM. 
            </summary>
            <remarks>
            The DTM shall provide information about the channels in the property <see cref="P:Fdt.Dtm.Channels.IChannels.CommunicationChannelInfos"/>.
            The <see cref="P:Fdt.Dtm.Channels.CommunicationChannelItem.Id"/> shall be used as key to find the corresponding item.
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.Channels.IChannels.ChannelsChanged">
            <summary>
            Notification by a DTM that the information about its currently available channels have changed.
            (see also <see cref="P:Fdt.Dtm.Channels.IChannels.CommunicationChannelInfos"/>. 
            </summary>
            <remarks>
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Channels.ChannelsChangedEventHandler">
            <summary>
            References a method to be called when DTM channel information has changed
            (e.g. channel or module added or removed).
            </summary>
            <param name="dtmSystemTag"> DTM System Tag of the DTM that have raised the event.</param>
            <param name="communicationChannelInfo">Information about the DTM channels and modules.</param>
        </member>
        <member name="T:Fdt.Dtm.Comparison.ComparisonDetails">
            <summary>
            Information about differences found during a comparison.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonDetails.Label">
            <summary>
            Label of the parameter.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonDetails.ValueInInstanceDataSet">
            <summary>
            Human readable representation of a value in the data set currently used by the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonDetails.ValueInReference">
            <summary>
            Human readable representation of a value in the reference.
            </summary>
            <remarks>
            In case of an online comparison the reference is the device data.
            In case of an offline comparison the reference is the passed data
            set.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonDetails.Descriptor">
            <summary>
            [Optional] Human readable description which can be used to provide
            additional information about a pair of 
            <see cref="P:Fdt.Dtm.Comparison.ComparisonDetails.ValueInInstanceDataSet"/> and 
            <see cref="P:Fdt.Dtm.Comparison.ComparisonDetails.ValueInReference"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Comparison.ComparisonResult">
            <summary>
            Information about the result of a comparison.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonResult.IsDifferent">
            <summary>
            Indication if data is different or not.
            </summary>
            <remarks>
            If TRUE then <see cref="P:Fdt.Dtm.Comparison.ComparisonResult.Details"/> shall be used to provide details
            about differences found during comparison. The <see cref="M:Fdt.Dtm.Comparison.ComparisonResult.Verify"/>
            method throws an exception if this rule is not followed. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Comparison.ComparisonResult.Details">
            <summary>
            [Optional] Lists details about the differences found during
            comparison. 
            </summary>
            <remarks>
            <para>
            If <see cref="P:Fdt.Dtm.Comparison.ComparisonResult.IsDifferent"/> is FALSE then this property shall
            return null.
            </para>
            <para>
            If <see cref="P:Fdt.Dtm.Comparison.ComparisonResult.IsDifferent"/> is TRUE then this property shall not
            return null.
            </para>
            <para>
            The <see cref="M:Fdt.Dtm.Comparison.ComparisonResult.Verify"/> method throws an exception if this rule is
            not followed. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Comparison.ComparisonResult.Verify">
            <summary>
            Override. Verifies also the special rules defined for the properties
            <see cref="P:Fdt.Dtm.Comparison.ComparisonResult.IsDifferent"/> and <see cref="P:Fdt.Dtm.Comparison.ComparisonResult.Details"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.AccessibleData">
            <summary>
            Abstract base class for data which is readable or writable. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.Id">
            <summary>
            This ID is the unique identifier of a specific data(parameter).        
            </summary>
            <remarks>
            If this ID is used in Read/Write, a specific piece of information is accessed.
            The same ID can occur several times in different data groups. (e.g.because the parameter is used in different context). 
            For the same ID the same other information (e.g.label, description, datatype) shall be provided.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.IsReadable">
            <summary>
            Specifies whether the value can be read from the device.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.IsWritable">
            <summary>
            Specifies whether the value can be written to the device.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.DatatypeInfo">
            <summary>
            Type of the data. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.DisplayFormat">
            <summary>
            [Optional] Format string for numerical data. 
            </summary>
            <remarks>
            <para>
            The provided string shall be compliant to the .NET framework string.Format definitions and 
            shall contain only standard numeric format strings. (e.g. F2 for a float value with two decimal digits or X2 for hexadecimal display of a byte.) 
            Additional information like units shall not be included. 
            </para>
            <para>
            The string may be used by the Frame Application to convert the data value
            to the specified format for displaying it to the user. 
            </para>
            <para>The DTM shall provide a DisplayFormat for all AccessibleData variables with numerical values.</para>
            <para>
            <note>
            It is recommended that the number of decimal digits corresponds to the precision of the value.
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.DataRefs">
            <summary>
            [Optional] References to other data entries in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            Information about the type of the reference shall be provided by
            <see cref="P:Fdt.Dtm.DataAccess.DataRef.SemanticInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.IOSignalRef">
            <summary>
            [Optional] Reference to a <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> corresponding
            to this data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleData.IsChangeEnabled">
            <summary>
            [Optional] Specifies whether the data item value is changeable.
            This property is mandatory if the DTM provides the "IInstanceCustomConfiguration / IDeviceCustomConfiguration interfaces.
            </summary>
            <para>
            The DTM only evaluates this property if the user level is "Custom" <see cref="T:Fdt.UserInfo.UserLevel"/>.
            This property can only be set by the Frame Application using ICustomConfiguration.
            The default value of this property shall be "false".
            If IsChangeEnabled is "false", the data item value shall not be changeable in the user interface of the DTM 
            and it shall not be changeable by IInstanceData or IDeviceData respectively.
            If IsChangeEnabled is "true", the data item value may be changeable. However, this depends on the business rules of the DTM.
            </para>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.AccessibleDataInfo">
            <summary>
            Contains information about a data item that is readable, writable or changeable. 
            </summary>
            <remarks>
            This class is used to provide information about data items that are configurable regarding their access rights.
            It is used in data access configuration for the Expert user level.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AccessibleDataInfo.Id">
            <summary>
            Reference to an AccessibleData in the <see cref="T:Fdt.Dtm.DataAccess.DataInfo" />.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.AlarmType">
            <summary>
            Identifier for the alarm type to show the association between 
            high- and low alarm and high-high- and low-low-alarm.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.AlarmType.HighHighAlarm">
            <summary>
            Alarm if a process value exceeds ‘highhigh’ limit.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.AlarmType.HighAlarm">
            <summary>
            Alarm if a process value exceeds ‘high’ limit.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.AlarmType.LowLowAlarm">
            <summary>
            Alarm if a process value falls below ‘lowlow’ limit.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.AlarmType.LowAlarm">
            <summary>
            Alarm if a process value falls below ‘low’ limit.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.AlarmData">
            <summary>
            Representation of an alarm parameter. An alarm shall always be of a numeric type (
            <see cref="F:Fdt.Datatypes.Datatype.Float"/>, <see cref="F:Fdt.Datatypes.Datatype.Double"/>, 
            <see cref="F:Fdt.Datatypes.Datatype.Int"/>, <see cref="F:Fdt.Datatypes.Datatype.Long"/>,
            <see cref="F:Fdt.Datatypes.Datatype.UInt"/>, <see cref="F:Fdt.Datatypes.Datatype.ULong"/>) or
            <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/> (checked by the <see cref="M:Fdt.Dtm.DataAccess.AlarmData.Verify"/> method).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AlarmData.AlarmType">
            <summary>
            Type of the Alarm
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.AlarmData.UnitDataRef">
            <summary>
            [Optional] Reference to <see cref="T:Fdt.Dtm.DataAccess.UnitData"/> element representing the unit
            of this device data.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.AlarmData.Verify">
            <summary>
            Override. Checks the datatype of the range (shall be numeric type or DateTime).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.Data">
            <summary>
            Describes a device parameter or a process value that can be read or written. 
            The information contains descriptive attributes like name as well as information 
            how the item is accessible.     
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.Data.UnitDataRef">
            <summary>
            [Optional] Reference to <see cref="T:Fdt.Dtm.DataAccess.UnitData"/> element representing the unit
            of this device data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.Data.RangeDataRefs">
            <summary>
            [Optional] References to <see cref="T:Fdt.Dtm.DataAccess.RangeData"/> elements representing the range
            for this device data.
            </summary>
            <remarks>
            The list may contain several sequences of a lower range followed by an upper range
            belonging together or just one single lower range or one upper range. 
            Two following lower ranges or upper ranges are not allowed.  
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.Data.AlarmDataRefs">
            <summary>
            [Optional] References to <see cref="T:Fdt.Dtm.DataAccess.AlarmData"/> elements representing the alarms
            for this device data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.Data.SubstituteDataRef">
            <summary>
            [Optional] Reference to <see cref="T:Fdt.Dtm.DataAccess.SubstituteData"/> element representing the substitute 
            value setting belonging to this device data.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataAccessError">
            <summary>
            Enumeration defining possible data access 
            (read or write) error.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.InvalidValue">
            <summary>
            The write request data value is invalid (e.g. out of range).
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.NotLongerValid">
            <summary>
            The addressed data is not longer valid. 
            This may happen due to configuration changes.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.OutOfResources">
            <summary>
            The DTM has no resources to perform the request. 
            This may happen if the DTM can not queue the request. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.CommunicationError">
            <summary>
            Communication error occurred. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.NoLock">
            <summary>
            Instance data set could not be locked.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.Canceled">
            <summary>
            The request was canceled.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.NoAccessRights">
            <summary>
            The data can't be accessed because insufficient privileges.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.DataAccessError.DtmSpecific">
            <summary>
            DTM specific error.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataAccessErrorInfo">
            <summary>
            Information about a data access error that occurred.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataAccessErrorInfo.ErrorType">
            <summary>
            Information about the type of occurred error. 
            </summary>
            <remarks>
            If this property is set to <see cref="F:Fdt.Dtm.DataAccess.DataAccessError.DtmSpecific"/>, 
            then property <see cref="P:Fdt.Dtm.DataAccess.DataAccessErrorInfo.Descriptor"/> shall return a human readable
            text describing the error.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataAccessErrorInfo.Descriptor">
            <summary>
            [Optional] Human readable string describing the error.
            </summary>
            <remarks>
            This string shall be provided in property <see cref="P:Fdt.Dtm.DataAccess.DataAccessErrorInfo.ErrorType"/> is set
            to <see cref="F:Fdt.Dtm.DataAccess.DataAccessError.DtmSpecific"/>, otherwise it optional. 
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.DataAccessErrorInfo.Verify">
            <summary>
            Override. Checks the rules defined for property <see cref="P:Fdt.Dtm.DataAccess.DataAccessErrorInfo.Descriptor"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataGroup">
            <summary>
            Groups information about available device specific parameters and process values.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataGroup.DataItems">
            <summary>
            Device parameters and process values included in this group. 
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.DataAccess.Data"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.UnitData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.RangeData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.AlarmData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.SubstituteData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.DataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.StructDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.ModuleDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.AccessibleDataInfo"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataGroup.ApplicationId">
            <summary>
            [Optional] Provides additional information for the data group.  
            </summary>
            <remarks>
            If a DTM exposes the data in DataGroups in the same organisation as presented in DTM-user interfaces, 
            the ApplicationId provides information in regard to the use of the  data.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataInfo">
            <summary>
            Contains information about available device specific parameters and process values.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataInfo.DeviceDataItems">
            <summary>
            [Optional] List of parameters and process values supported by the DTM (respectively corresponding device). 
            The property shall return null, if currently no device data is accessible (may depend
            on device configuration).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.DataAccess.Data"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.UnitData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.RangeData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.AlarmData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.SubstituteData"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.DataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.StructDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.ModuleDataGroup"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataItem">
            <summary>
            Abstract base class for device and instance data info classes.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataItem.Name">
            <summary>
            Name of data according to device specific documentation. This name
            shall be unique within a <see cref="T:Fdt.Dtm.DataAccess.DataGroup"/> or a <see cref="T:Fdt.Dtm.DataAccess.ModuleDataGroup"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataItem.Label">
            <summary>
            Human readable label of the data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataItem.Descriptor">
            <summary>
            [Optional] Human readable string describing the data. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataItem.SemanticInfos">
            <summary>
            [Optional] Semantic information.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataRef">
            <summary>
            Reference to an item in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> identified by its 
            <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id"/> and optionally also information about 
            the type (semantic) of the reference.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataRef.DataId">
            <summary>
            <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id"/> of item referenced in 
            <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.DataRef.SemanticInfo">
            <summary>
            [Optional] Semantic information about the type of the reference.
            </summary>
            <remarks>
            <para>
            This property can be used to describe the meaning of the reference. 
            The semantic may be protocol or device vendor specific. 
            </para>
            <para>
            Frame Applications aware of the definitions may use this information 
            for specific functions. Frame Applications not aware of the definitions
            may only display the information to the user. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ModuleDataGroup">
            <summary>
            Groups information about available module specific parameters and process values.
            </summary>
            <remarks>
            If this class is used, then the DTM shall also provide corresponding <see cref="T:Fdt.Dtm.Network.ModuleInfo"/> 
            in <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ModuleDataGroup.ModuleId">
            <summary>
            Unique identifier of the <see cref="T:Fdt.Dtm.Network.ModuleInfo">module</see> described in 
            <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.QualityIndicator">
            <summary>
            Quality status of device data. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.Bad">
            <summary>
            Quality is Bad.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadConfigurationError">
            <summary>
            Quality is BadConfigurationError.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadNotConnected">
            <summary>
            Quality is BadNotConnected.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadDeviceFailure">
            <summary>
            Quality is BadDeviceFailure.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadSensorFailure">
            <summary>
            Quality is BadSensorFailure.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadLastKnownValue">
            <summary>
            Quality is BadLastKnownValue.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadCommFailure">
            <summary>
            Quality is BadCommFailure.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadOutOfService">
            <summary>
            Quality is BadOutOfService.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.BadWaitingForInitialData">
            <summary>
            Quality is BadWaitingForInitialData.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.Uncertain">
            <summary>
            Quality is Uncertain.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.UncertainLastUsableValue">
            <summary>
            Quality is UncertainLastUsableValue.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.UncertainSensorNotAccurate">
            <summary>
            Quality is UncertainSensorNotAccurate.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.UncertainEUExceeded">
            <summary>
            Quality is UncertainEUExceeded.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.UncertainSubNormal">
            <summary>
            Quality is UncertainSubNormal.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.Good">
            <summary>
            Quality is Good.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.QualityIndicator.GoodLocalOverride">
            <summary>
            Quality is GoodLocalOverride.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.LimitState">
            <summary>
            Limit status of device data. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.LimitState.None">
            <summary>
            No limit reached. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.LimitState.Low">
            <summary>
            Low limit reached.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.LimitState.High">
            <summary>
            High limit reached.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.LimitState.Constant">
            <summary>
            Constant.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.QualityInfo">
            <summary>
            Description of the quality of device data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.QualityInfo.QualityIndicator">
            <summary>
            Quality status of device data. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.QualityInfo.LimitState">
            <summary>
            [Optional] Limit status of device data. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.RangeType">
            <summary>
            Type of a range device data.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.RangeType.LowerRange">
            <summary>
            Device data represents a lower range.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.RangeType.UpperRange">
            <summary>
            Device data represents a upper range.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.RangeData">
            <summary>
            Representation of a range parameter. A range shall always be of a numeric type (
            <see cref="F:Fdt.Datatypes.Datatype.Float"/>, <see cref="F:Fdt.Datatypes.Datatype.Double"/>, 
            <see cref="F:Fdt.Datatypes.Datatype.Int"/>, <see cref="F:Fdt.Datatypes.Datatype.Long"/>,
            <see cref="F:Fdt.Datatypes.Datatype.UInt"/>, <see cref="F:Fdt.Datatypes.Datatype.ULong"/>) or
            <see cref="F:Fdt.Datatypes.Datatype.DateTime"/> (checked by the <see cref="M:Fdt.Dtm.DataAccess.RangeData.Verify"/> method).
            </summary>
            <remarks>
            <para>
            The RangeData may provide a reference to a UnitData. If no reference is 
            provided, the same unit is applied as in the Data that references the RangeData.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.RangeData.RangeType">
            <summary>
            Defines the range type. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.RangeData.UnitDataRef">
            <summary>
            [Optional] Reference to <see cref="T:Fdt.Dtm.DataAccess.UnitData"/> element representing the unit
            of this range data.
            </summary>
            <remarks>
            If the property is not provided (null) then the unit is the same as the referencing data.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.RangeData.Verify">
            <summary>
            Override. Checks the datatype of the range (shall be numeric type or DateTime).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ReadRequest">
            <summary>
            Read request for a single entry in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> addressed
            by its <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ReadRequest.DataId">
            <summary>
            Unique identifier of data to be read 
            (see Id property of <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id">AccessibleData</see>).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ResponseInfo">
            <summary>
            Read or write response for a single entry in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> addressed
            by its <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ResponseInfo.DataId">
            <summary>
            Unique identifier of read data 
            (see Id property of <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id">AccessibleData</see>).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ResponseInfo.TimeStamp">
            <summary>
            Time stamp documenting when the data was read.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ResponseInfo.Quality">
            <summary>
            Quality of the read data. 
            </summary>
            <remarks>
            If there was an error reading the data then the quality shall
            indicate a "bad" value.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ResponseInfo.DataValue">
            <summary>
            [Optional] Value of the data in the specified format (see <see cref="T:Fdt.Datatypes.Datatype"/>) 
            or null in case of an error (see property <see cref="P:Fdt.Dtm.DataAccess.ResponseInfo.ErrorInfo"/>).
            </summary>
            <remarks>
            <para>
            The property uses the abstract base class. Following derived classes are defined
            for the standard data types:
            <list type="bullet">
                <item><see cref="T:Fdt.Datatypes.FloatValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DoubleValue"/></item>
                <item><see cref="T:Fdt.Datatypes.ByteValue"/></item>
                <item><see cref="T:Fdt.Datatypes.IntValue"/></item>
                <item><see cref="T:Fdt.Datatypes.UIntValue"/></item>
                <item><see cref="T:Fdt.Datatypes.LongValue"/></item>
                <item><see cref="T:Fdt.Datatypes.ULongValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DateTimeValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DateValue"/></item>
                <item><see cref="T:Fdt.Datatypes.TimeValue"/></item>
                <item><see cref="T:Fdt.Datatypes.TimeSpanValue"/></item>
                <item><see cref="T:Fdt.Datatypes.StringValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BinaryBitArrayValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BinaryByteArrayValue"/></item>
                <item><see cref="T:Fdt.Datatypes.EnumValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BooleanValue"/></item>
                <item><see cref="T:Fdt.Datatypes.SignedByteValue"/></item> 
            </list>
             </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.ResponseInfo.ErrorInfo">
            <summary>
            [Optional] Information about an error that occurred.
            </summary>
            <remarks>
            <para>
            Shall be null if no error occurred.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.ResponseInfo.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.ResponseInfo.#ctor(System.String,System.DateTime,Fdt.Dtm.DataAccess.QualityInfo)">
            <summary>
            Constructor for mandatory properties. 
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.ResponseInfo.Verify">
            <summary>
            Override. Checks the rules defined for property <see cref="P:Fdt.Dtm.DataAccess.ResponseInfo.DataValue"/> and <see cref="P:Fdt.Dtm.DataAccess.ResponseInfo.ErrorInfo"/>:
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.StructDataGroup">
            <summary>
            Represents a data structure containing specific parameters and/or process values.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.SubstitutionType">
            <summary>
            Type of substitution data.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.SubstitutionType.LastValue">
            <summary>
            The last known value shall be used.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.SubstitutionType.LastValidValue">
            <summary>
            The last valid value shall be used.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.SubstitutionType.UpperRange">
            <summary>
            The upper range shall be used.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.SubstitutionType.LowerRange">
            <summary>
            The lower range shall be used.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.SubstituteData">
            <summary>
            Describes the value which shall be used as a fall back e.g. in case there is a 
            disturbed communication.
            </summary>
            <remarks>
            <para>
            The SubstituteData may provide a reference to a UnitData. If no reference is 
            provided, the same unit is applied as in the Data that references the SubstituteData.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.SubstituteData.SubstitutionType">
            <summary>
            Specifies which value shall be used in case a fall back value is needed.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.SubstituteData.UnitDataRef">
            <summary>
            [Optional] Reference to <see cref="T:Fdt.Dtm.DataAccess.UnitData"/> element representing the unit
            of this substitute data.
            </summary>
            <remarks>
            If the property is not provided (null) then the unit is the same as the referencing data.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.UnitData">
            <summary>
            Representation of a unit parameter. 
            </summary>
            <remarks>
            Unit shall always be of type <see cref="F:Fdt.Datatypes.Datatype.Enumerator"/>
            (checked by the <see cref="M:Fdt.Dtm.DataAccess.UnitData.Verify"/> method).
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.UnitData.Verify">
            <summary>
            Override. Checks if "Enumerator" datatype is set. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.WriteRequest">
            <summary>
            Write request for a single entry in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> addressed
            by its <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.WriteRequest.DataId">
            <summary>
            Unique identifier of data to be written 
            (see Id property of <see cref="P:Fdt.Dtm.DataAccess.AccessibleData.Id">AccessibleData</see>).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.WriteRequest.DataValue">
            <summary>
            Value of the data in the specified format (see <see cref="T:Fdt.Datatypes.Datatype"/>) 
            </summary>
            <remarks>
            <para>
            The property uses the abstract base class. Following derived classes are defined
            for the standard datatypes:
            <list type="bullet">
                <item><see cref="T:Fdt.Datatypes.FloatValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DoubleValue"/></item>
                <item><see cref="T:Fdt.Datatypes.ByteValue"/></item>
                <item><see cref="T:Fdt.Datatypes.IntValue"/></item>
                <item><see cref="T:Fdt.Datatypes.UIntValue"/></item>
                <item><see cref="T:Fdt.Datatypes.LongValue"/></item>
                <item><see cref="T:Fdt.Datatypes.ULongValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DateTimeValue"/></item>
                <item><see cref="T:Fdt.Datatypes.TimeSpanValue"/></item>
                <item><see cref="T:Fdt.Datatypes.StringValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BinaryBitArrayValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BinaryByteArrayValue"/></item>
                <item><see cref="T:Fdt.Datatypes.EnumValue"/></item>
                <item><see cref="T:Fdt.Datatypes.BooleanValue"/></item>
                <item><see cref="T:Fdt.Datatypes.SignedByteValue"/></item>
                <item><see cref="T:Fdt.Datatypes.DateValue"/></item>
                <item><see cref="T:Fdt.Datatypes.TimeValue"/></item> 
            </list>
             </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.IData">
            <summary>
            Base interface for <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> and <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Requests information about available device specific data (e.g. parameters,  process values).
            </summary>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            The information about available device specific data is returned
            by <see cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/>. This list may contain items related to configuration 
            parameters, process values as well as asset management related data like a stroke counter. 
            Dependent on the user level, the contents of <see cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/> may change. 
            </para>
            <para>
            The returned <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> contains items that can be read by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>
            or written by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>. The source for this data is defined by the
            derived interfaces <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> and <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>. 
            <note>
            A DTM shall inform the Frame Application about changes in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> 
            by raising the event <see cref="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged"/>. 
            </note>
            </para>
            <para>
            Data provided within <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> may also be available in <see cref="T:Fdt.Dtm.IO.ProcessDataInfo"/>
            which can be requested by <see cref="T:Fdt.Dtm.IO.IProcessData"/> interface. 
            The related <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> can be identified by corresponding <see cref="T:Fdt.Dtm.IO.IOSignalRef"/> elements. 
            </para>
            </remarks>
            <see cref="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            Returns the requested data info.
            </returns>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The operation fails with communication errors (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">
            <summary>
            This method provides read access to the device or instance data.
            </summary>
            <param name="readRequests">List of device data read requests.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method enables to request data from a device or instance data set. 
            Error information shall be handed over by the related response.
            </para>
            <para>
            The DTM shall always accept the request. If the request cannot be processed, the reason for failure 
            shall be provided as part of the response. 
            </para>
            <para>
            The DTM shall be able to handle more than one request at a time. The DTM shall 
            enqueue requests and execute them one by one to avoid an inconsistent
            response.
            </para>
            <para>
            Reading may fail e.g. because a different user level has changed the access rights or because the 
            DTM state has changed.
            </para>
            <para>
            The exact order of execution in case of several requests is determined by the DTM.
            The caller can not expect that the DTM preserves the order. If the caller wants to 
            ensure a certain order it shall use single request one by one. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.CancelRead(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndRead(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.CancelRead(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/>
            <remarks>
            If a request is canceled then there shall be no FdtCancelException
            thrown. Instead the ErrorInfo property of the corresponding
            <see cref="T:Fdt.Dtm.DataAccess.ResponseInfo"/> shall be set to the enumeration value "Canceled".
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.EndRead(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult"> The reference to the pending asynchronous
            request to wait for.</param>
            <returns>
            Information about the result of the requested read operations.
            </returns>
            <remarks>
            <para>
            If there is a communication error reading one single item then there shall be no exception. 
            Instead the ErrorInformation property of <see cref="T:Fdt.Dtm.DataAccess.ResponseInfo"/> shall be set accordingly 
            for each item for which a communication error occurred.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.CancelRead(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument readRequests of <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>() contains invalid references.</exception>
            <exception cref="T:Fdt.FdtNoReadAccessException">The data object is not readable.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">
            <summary>
            This method provides read access to the device or instance data.
            </summary>
            <param name="writeRequests">List of device data write requests.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method enables to request a DTM to write the specified data according to 
            the device specific rules. Error information shall be handed over by the related response.
            </para>
            <para>
            The DTM shall always accept the request. If the request cannot be processed, the reason for failure 
            shall be provided asynchronously as part of the response.
            </para>
            <para>
            The DTM shall be able to handle more than one request at a time. The DTM shall 
            enqueue requests and execute them one by one to avoid an inconsistent
            response.
            </para>
            <para>
            The exact order of execution in case of several requests is determined by the DTM.
            The caller can not expect that the DTM preserves the order. If the caller wants to 
            ensure a certain order it shall use single request one by one. 
            </para>
            <para>
            The response list returned by <see cref="M:Fdt.Dtm.DataAccess.IData.EndWrite(System.IAsyncResult)"/> contains the device data of the successfully 
            written data (may differ to the written value due to e. g. rounding procedures within the device). 
            </para>
            <para>
            For writing using IInstanceData the DTM shall ensure a consistent instance dataset. 
            This means the DTM shall process write requests in transactions (<see cref="M:Fdt.Frame.Storage.IDataset.StartTransaction"/> 
            and <see cref="M:Fdt.Frame.Storage.IDataset.CommitTransaction"/>).
            It shall apply the business rules and fire a <see cref="P:Fdt.Dtm.DataAccess.IInstanceData.ModifiedInDtm"/> event if 
            other parameters are changed. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.CancelWrite(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndWrite(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.CancelWrite(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.EndWrite(System.IAsyncResult)"/>
            <remarks>
            If a request is canceled then there shall be no FdtCancelException
            thrown. Instead, the ErrorInfo property of the coresponding 
            <see cref="T:Fdt.Dtm.DataAccess.ResponseInfo"/> shall be set to the enumeration value "Canceled".
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.DataAccess.IData.EndWrite(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <para>
            If there is a communication error writing one single item then there shall be no exception. 
            Instead the ErrorInformation property of <see cref="T:Fdt.Dtm.DataAccess.ResponseInfo"/> shall be set accordingly 
            for each item for which a communication error occurred.
            </para>
            <param name="asyncResult">An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</param>
            <returns>A collection of <see cref="T:Fdt.Dtm.DataAccess.ResponseInfo"/> objects.</returns>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.DataAccess.IData.CancelWrite(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.DataAccess.IData.CancelGetDataInfo(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM (only in case of <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>).</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument writeRequests of <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>() contains an invalid data values.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument writeRequests of <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"/>() contains invalid references.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtNoWriteAccessException">The data object is not writable.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged">
            <summary>
            Notification by a DTM that the information about its current available data has changed.
            (see also <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </summary>
            <remarks>
            <para>
            If data changed due to a <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)"> write </see> to the device/instance data then this event shall also be fired.
            </para>
            <para>
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible. The event shall be fired even if the Frame Application was responsible for the change.
            </note>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.DataInfoChangedEventHandler">
            <summary>
            References a method to be called when available data info changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="changedAccessbileData">
            Unique identifiers of the <see cref="T:Fdt.Dtm.DataAccess.AccessibleData">AccessibleData</see> which have changed. 
            </param>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.IDeviceData">
            <summary>
            This interface provides online access to specific parameters of a device.
            </summary>
            <remarks>
            <para>
            The method <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">BeginGetDataInfo</see> provides a list of 
            the online available device specific parameters and process values. This method can be 
            called in the states "configured" and "running". If the DTM can not connect with its device, 
            then the information in returned <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> shall be on the current instance data, 
            which could be different from the configuration of the device. In this case 
            <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">read</see> and <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">write</see> requests 
            may fail if called based on this information. 
            The contents of the provided information may also depend on the device and the user level. 
            <note>
            A DTM shall inform the Frame Application about changes in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> 
            - e.g.: if DTM connects to the device and determines real configuration - by raising 
            the event <see cref="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged"/>. 
            </note>
            </para>
            <para>
            The <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">read</see> and <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">write</see> 
            methods directly accesses the parameters in the device, therefore they shall only be 
            called if the DTM is in state "communicationAllowed". 
            The method shall not modify the instance data which is persisted in the 
            <see cref="T:Fdt.Frame.Storage.IDataset">DTM instance dataset</see>.
            </para>
            <para>
            The DTM shall <see cref="M:Fdt.Frame.Storage.IDataset.StartTransaction">start a transaction</see> if 
            parameters are <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">written</see> in order
            to avoid parallel access to the device. If the transaction request fails, then the DTM 
            shall also refuse the write request (corresponding exception shall be thrown).
            </para>
            <para>
            The DTM shall also set and persist the <see cref="T:Fdt.Dtm.DataAccess.ModificationInDevice"/> flag if parameters
            are <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">written</see> to the device.  
            </para>
            <para>
            The DTM shall be prepared for multiple asynchronous <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">read</see>
            and <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">write</see> requests in parallel. The requests 
            shall be processed in the order they are received.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.IDeviceData.ModifiedInDevice">
            <summary>
            Flag providing  information about current state of the device data
            set.
            </summary>
            <remarks>
            <para>
            The flag shall be changed only once in case the data in the device
            has been changed and corresponding event 
            <see cref="E:Fdt.Dtm.DataAccess.IDeviceData.ModifiedInDeviceChanged"/> shall be fired. 
            </para>
            <para>
            In case of successful Upload or Download of complete data set, the
            flag shall be set to 
            <see cref="F:Fdt.Dtm.DataAccess.ModificationInDevice.NoKnownChanges"/>.
            </para>
            <para>
            The data set shall be locked (see 
            <see cref="M:Fdt.Frame.Storage.IDataset.StartTransaction"/>) before an operation is
            started,  which may need to change the flag 
            <see cref="T:Fdt.Dtm.DataAccess.ModificationInDevice"/> (the flag modifiedOnline is part of
            the instance data set and could not be changed if the data set is
            not locked).
            </para>
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.DataAccess.IDeviceData.ModifiedInDeviceChanged">
            <summary>
            Notification by a DTM that <see cref="T:Fdt.Dtm.DataAccess.ModificationInDevice"/> flag changed. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ModifiedInDeviceChangedEventHandler">
            <summary>
            References a method to be called when value of <see cref="T:Fdt.Dtm.DataAccess.ModificationInDevice"/> 
            flag changed. 
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="modifiedOnline">Value of the flag</param>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ModificationInDevice">
            <summary>
            Indicates the state of the device data set.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.ModificationInDevice.NoKnownChanges">
            <summary>
            The data is not changed using DTM, but could have been changed through some other means, e.g. using a local configuration panel.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.ModificationInDevice.ModifiedOnline">
            <summary>
            Parameters have been changed online in the device, but not in instance data set (e.g.: see use case Online parameterization, IDeviceData interface definition)
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.IInstanceData">
            <summary>
            This interface provides access to DTM instance data parameters. 
            </summary>
            <remarks>
            <para>
            This interface provides access to the current DTM in-memory representation of its instance data. 
            It is up to a DTM and depends on the device- and fieldbus-type which data is available.
            </para>
            <para>
            The method <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> provides information about the device 
            specific parameters and state. The returned <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> may contain information 
            related to configuration parameters as well as asset management related data or can be empty 
            for devices without public data. The contents of the provided information may also depend 
            on the current configuration of the device and the user level.
            <note>
            A DTM shall inform the Frame Application about changes in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> 
            - e.g.: if DTM configuration changed - by raising the event <see cref="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged"/>. 
            </note>
            </para>
            <para>
            The <see cref="M:Fdt.Dtm.DataAccess.IData.BeginRead(Fdt.FdtList{Fdt.Dtm.DataAccess.ReadRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">read</see> and <see cref="M:Fdt.Dtm.DataAccess.IData.BeginWrite(Fdt.FdtList{Fdt.Dtm.DataAccess.WriteRequest},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DataAccess.ResponseInfo}},System.AsyncCallback,System.Object)">write</see> 
            methods access the transient data of a DTM. That means, if the DTM is active or has 
            for example an open user interface the provided data can differ from the currently stored instance data. 
            </para>
            <para>
            For private data exchange between DTMs (e.g. in case of a composite DTM where the Parent DTM is exchanging 
            private information with its children) IInstanceData shall be used. However, the data which is used
            for private data exchange shall not be published using 
            <see cref="M:Fdt.Dtm.DataAccess.IData.BeginGetDataInfo(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> / <see cref="M:Fdt.Dtm.DataAccess.IData.EndGetDataInfo(System.IAsyncResult)"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DataAccess.IInstanceData.ModifiedInDtm">
            <summary>
            Flag providing information about current state of the instance data
            set.
            </summary>
            <remarks>
            <para>
            The flag shall be set to 
            <see cref="F:Fdt.Dtm.DataAccess.ModificationInDtm.ModifiedInDtm"/> only once in case
            the data in the instance data set has been changed  and
            corresponding event <see cref="T:Fdt.Dtm.DataAccess.ModificationInDtm"/>) shall be fired. 
            </para>
            <para>
            In case of successful Upload or Download of complete data set, the
            flag shall be set to 
            <see cref="F:Fdt.Dtm.DataAccess.ModificationInDtm.DataLoaded"/>.
            </para>
            <para>
            The instance data set shall be locked (see 
            <see cref="M:Fdt.Frame.Storage.IDataset.StartTransaction"/>) before an operation is
            started,  which may need to change the flag 
            <see cref="T:Fdt.Dtm.DataAccess.ModificationInDtm"/> (the flag ‘ModifiedInDtm is part of the
            instance  data set and could not be changed if the data set is not
            locked).
            </para>
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.DataAccess.IInstanceData.ModifiedInDtmChanged">
            <summary>
            Notification by a DTM that <see cref="P:Fdt.Dtm.DataAccess.IInstanceData.ModifiedInDtm"/> flag changed. 
            </summary>
        </member>
        <member name="E:Fdt.Dtm.DataAccess.IInstanceData.DataValueChanged">
            <summary>
            Notification by a DTM that the actual value of data exposed by IInstanceData has changed.
            </summary>
            <remarks>
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ModifiedInDtmChangedEventHandler">
            <summary>
            References a method to be called when value of <see cref="P:Fdt.Dtm.DataAccess.IInstanceData.ModifiedInDtm"/> 
            flag changed. 
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="modifiedInDtm">Value of the flag</param>
        </member>
        <member name="T:Fdt.Dtm.DataAccess.ModificationInDtm">
            <summary>
            Indicates the state of the instance data set.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.ModificationInDtm.Default">
            <summary>
            This state is set after creation of a new instance data set (after <see cref="M:Fdt.Dtm.IDtm3.InitData(System.Guid,Fdt.Frame.Storage.IDataset)"/>). 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.ModificationInDtm.ModifiedInDtm">
            <summary>
            The offline instance dataset is modified and not synchronized with the device.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DataAccess.ModificationInDtm.DataLoaded">
            <summary>
            The offline instance dataset has been synchronized with the device.
             No further change has been executed on the instance dataset since the synchronization.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DatasetFormat">
            <summary>
            Unique Id of a Dataset format.  
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DatasetFormat.Id">
            <summary>
            Unique id of the Dataset format.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DatasetFormats">
            <summary>
            Dataset format identifiers of persisted data used and supported by a DTM. 
            </summary>
            <remarks>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DatasetFormats.Used">
            <summary>
            Format used by the DTM to persist data (read and write).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DatasetFormats.ReadSupported">
            <summary>
            [Optional] Further formats supported by the DTM
            (DTM is also able to load corresponding persisted data).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceClassification">
            <summary>
            Classification of a device according IEC 62390 AnnexG.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceClassification.ClassificationId">
            <summary>
            Unique identifier according to its primary measurement (IEC 62390 AnnexG).
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Flow">
            <summary>
            Classification is Flow.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Level">
            <summary>
            Classification is Level.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Pressure">
            <summary>
            Classification is Pressure.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Temperature">
            <summary>
            Classification is Temperature.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Valve">
            <summary>
            Classification is Valve.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Positioner">
            <summary>
            Classification is Positioner.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Actuator">
            <summary>
            Classification is Actuator.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Nc_rc">
            <summary>
            Classification is Numeric Control / Robotic Control.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Encoder">
            <summary>
            Classification is Encoder.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.SpeedDrive">
            <summary>
            Classification is SpeedDrive.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Hmi">
            <summary>
            Classification is Hmi.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.AnalogInput">
            <summary>
            Classification is AnalogInput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.AnalogOutput">
            <summary>
            Classification is AnalogOutput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DigitalInput">
            <summary>
            Classification is DigitalInput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DigitalOutput">
            <summary>
            Classification is DigitalOutput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.ElectrochemicalAnalyser">
            <summary>
            Classification is ElectrochemicalAnalyser.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DtmSpecific">
            <summary>
            Classification is DtmSpecific.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Universal">
            <summary>
            Classification is Universal.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Analyser">
            <summary>
            Classification is Analyser.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.RemoteIO">
            <summary>
            Classification is RemoteIO.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.AnalogCombinedIO">
            <summary>
            Classification is AnalogCombinedIO.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DigitalCombinedIO">
            <summary>
            Classification is DigitalCombinedIO.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Recorder">
            <summary>
            Classification is Recorder.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Controller">
            <summary>
            Classification is Controller.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Angle">
            <summary>
            Classification is Angle.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.LimitSwitch">
            <summary>
            Classification is LimitSwitch. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Converter">
            <summary>
            Classification is Converter.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Motor">
            <summary>
            Classification is Motor.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Switchboard">
            <summary>
            Classification is Switchboard.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.CircuitBreaker">
            <summary>
            Classification is CircuitBreaker.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.PowerMonitoring">
            <summary>
            Classification is PowerMonitoring.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DistributionPanel">
            <summary>
            Classification is DistributionPanel.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Contactor">
            <summary>
            Classification is Contactor.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.ProtectionStarter">
            <summary>
            Classification is ProtectionStarter.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.SoftStarter">
            <summary>
            Classification is SoftStarter.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Drive">
            <summary>
            Classification is Drive.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.AxisControl">
            <summary>
            Classification is AxisControl.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.MotorControlCenter">
            <summary>
            Classification is MotorControlCenter.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.ControlValve">
            <summary>
            Classification is ControlValve.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Electrical">
            <summary>
            Classification is Electrical. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Density">
            <summary>
            Classification is Density.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Quality">
            <summary>
            Classification is Quality.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.SpeedOrRotaryFrequency">
            <summary>
            Classification is SpeedOrRotaryFrequency.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Radiation">
            <summary>
            Classification is Radiation.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.WeightMass">
            <summary>
            Classification is WeightMass.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.DistanceOrPositionPresence">
            <summary>
            Classification is DistanceOrPositionPresence.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.PushButton">
            <summary>
            Classification is PushButton.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Joystick">
            <summary>
            Classification is Joystick.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Keypad">
            <summary>
            Classification is Keypad.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.PilotLight">
            <summary>
            Classification is PilotLight.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.StackLight">
            <summary>
            Classification is StackLight.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Display">
            <summary>
            Classification is Display
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.CombinedButtonsAndLights">
            <summary>
            Classification is CombinedButtonsAndLights.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.OperatorStation">
            <summary>
            Classification is OperatorStation.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.GeneralInput">
            <summary>
            Classification is GeneralInput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.GeneralOutput">
            <summary>
            Classification is GeneralOutput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.CombinedInputOutput">
            <summary>
            Classification is CombinedInputOutput.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Relay">
            <summary>
            Classification is Relay.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Timer">
            <summary>
            Classification is Timer.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Scanner">
            <summary>
            Classification is Scanner.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.ProgrammableController">
            <summary>
            Classification is ProgrammableController.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.CommunicationAdapter">
            <summary>
            Classification is CommunicationAdapter.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationId.Gateway">
            <summary>
            Classification is Gateway.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceClassification.ClassificationDomainId">
            <summary>
            Device classification domain groups (IEC 62390 AnnexG). 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.PowerDistribution">
            <summary>
            Classification domain is PowerDistribution.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.MotionControl">
            <summary>
            Classification domain is MotionControl.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.Measurement">
            <summary>
            Classification domain is Measurement.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.OperatorInterface">
            <summary>
            Classification is OperatorInterface.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.ModulesAndControllers">
            <summary>
            Classification domain is ModulesAndControllers.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceClassification.ClassificationDomainId.Communication">
            <summary>
            Classification domain is Communication.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceClassification.Id">
            <summary>
            Unique identifiers according to device primary function.
            </summary>
            <remarks>
            The identifier should be selected from the table 'Device classification according to IEC 62390 Annex G' 
            and use corresponding <see cref="T:Fdt.Dtm.DeviceClassification.ClassificationDomainId"/> for it. If suitable classification ID 
            does not exist in that table, then another ID listed in <see cref="T:Fdt.Dtm.DeviceClassification.ClassificationId"/> should be selected from 'FDT classification ID table' 
            and used without the <see cref="T:Fdt.Dtm.DeviceClassification.ClassificationDomainId"/> property.  
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceClassification.DomainId">
            <summary>
            [Optional] Device classification domain groups.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceIdentInfo">
            <summary>
            This class is used to describe physical device types which are supported by a
            Type. It contains identification elements of a physical device type
            or device type group.
            </summary>
            <remarks>
            <para>
            This class provides a protocol neutral access to the information via
            (DeviceIdentValue properties are represented by strings), therefore it typically will be used by 
            the Frame Application if no protocol specific handling is needed. 
            </para>
            <para>
            <note>
            The derived class <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/> provides a protocol specific
            access to the  information which is more type-safe. This class should be used
            whenever possible. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.SupportLevel">
            <summary>
            Defines the support level of a DTM Device Type for a physical device. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.ProtocolId">
            <summary>
            Universally Unique Identifier for a fieldbus protocol (or a point-to-point communication). 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId">
            <summary>
            [Optional] Protocol specific Manufacturer ID as string or a regular expression. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for manufacturer IDs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId">
            <summary>
            [Optional] Protocol specific device type ID defined as string or a regular expression. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for device type IDs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision">
            <summary>
            [Optional] Protocol specific software revision as string or a regular expression. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for software revisions.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision">
            <summary>
            [Optional] Protocol specific hardware revision as string or a regular expression. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for hardware revisions.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile">
            <summary>
            [Optional] There are protocols like PROFIBUS where different profiles (e.g. DP, PA and IM) can be used for identification of a device.
            This property documents the protocol-specific identification profile which is used for device identification.
            </summary>
            <remarks>
            <para>
            The protocol-specific annex defines the allowed values as an enumeration. 
            </para>
            <para>
            Not all protocols support different identification profiles, therefore the property is optional.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties">
            <summary>
            [Optional] Protocol specific identifiers as a key / string-value list.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't define
            additional identification properties.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties">
            <summary>
            [Optional] Device vendor specific identifiers as a key / string-value list.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.Match(Fdt.Dtm.DeviceScanInfo)">
            <summary>
            Verifies whether the passed <paramref name="deviceScanInfo"/> matches to this 
            <see cref="T:Fdt.Dtm.DeviceIdentInfo"/>.
            </summary>
            <param name="deviceScanInfo"><see cref="T:Fdt.Dtm.DeviceScanInfo"/> to verify</param>
            <returns>Result of the matching operation.</returns>
            <remarks>
            <para>
            This method shall only be called with a <see cref="T:Fdt.Dtm.DeviceScanInfo"/> instances of
            the same protocol. That means the <see cref="P:Fdt.Dtm.DeviceScanInfo.ProtocolId">DeviceScanInfo.ProtocolId</see>
            shall be equal to the <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolId"/> of this instance, otherwise 
            an <see cref="T:System.ArgumentException"/> is thrown.
            </para>
            <para>
            The method calls the <see cref="M:Fdt.Dtm.DeviceIdentValue`1.Match(Fdt.Dtm.DeviceScanValue,System.Nullable{Fdt.Dtm.MatchErrorType}@)"/> method for all 
            <see cref="T:Fdt.Dtm.DeviceIdentValue`1"/> properties with corresponding <see cref="T:Fdt.Dtm.DeviceScanValue"/> properties 
            provided by the passed <see cref="T:Fdt.Dtm.DeviceScanInfo"/> instance. The method also checks whether the 
            <see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceSpecificProperties"/> collection of the <see cref="T:Fdt.Dtm.DeviceScanInfo"/> instance
            contains additional properties (<see cref="T:Fdt.Dtm.DeviceScanValue"/> instances with a name that does not appear in the <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/>
            list at all.)
             </para>
            <para>
            <note>
            <para>
            Because of performance reasons this method assumes that data in this and 
            passed <see cref="T:Fdt.Dtm.DeviceScanInfo"/> instance is valid. If some data 
            is invalid, then a <see cref="T:System.NullReferenceException"/> is thrown. 
            </para>
            <para>
            The caller of this method shall either handle the 
            <see cref="T:System.NullReferenceException"/> or ensure that data is valid, for example
            by calling the <see cref="M:Fdt.FdtDatatype`1.Verify"/> methods before 
            calling this method.
            </para>
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.PerformMatch(Fdt.Dtm.DeviceIdentValue{System.String},Fdt.Dtm.DeviceScanValue,System.Nullable{Fdt.Dtm.MatchErrorType}@)">
            <summary>
            Performs a device ident / device scan match.
            </summary>
            <param name="deviceIdentValue">
            Information which was provided by the specific DTM about supported device.
            </param>
            <param name="deviceScanValue">
            Information about the actually scanned device.
            </param>
            <param name="matchErrorType">
            In case an error occurred this parameter specifies details about the occurred error.
            </param>
            <returns>
            Returns true in case matching was successful. Otherwise false is returned.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.CalculateMatchLevel(Fdt.Dtm.DeviceIdentMatchResult)">
            <summary>
            Calculates the matching level by evaluating the number and position of match errors.
            </summary>
            <param name="matchResult">The result for which the matching level shall be calculated.</param>
            <returns>
            The calculated matching level.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.MatchPropertyLists(Fdt.FdtList{Fdt.Dtm.DeviceIdentValue{System.String}},Fdt.FdtList{Fdt.Dtm.DeviceScanValue})">
            <summary>
            Compares (matches) lists of <see cref="T:Fdt.Dtm.DeviceIdentValue`1"/>s and <see cref="T:Fdt.Dtm.DeviceScanValue"/>s.
            The method can be used for both the Device Specific Properties and ProtocolSepcific properties.
            </summary>
            <param name="identProperties">The property list from the ident info.</param>
            <param name="scanProperties">THe property list form the scan info.</param>
            <returns>Null if the lists match, otherwise a collection of <see cref="T:Fdt.Dtm.MatchError"/>s to document the match result.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetProtocolId">
            <summary>
            Returns the unique identifier of the protocol for which this ident 
            information is provided. 
            </summary>
            <returns>The unique identifier of the protocol for which this ident 
            information is provided.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetManufacturerId">
            <summary>
            Returns the manufacturer ID in a protocol neutral format.
            </summary>
            <returns>The manufacturer ID in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetDeviceTypeId">
            <summary>
            Returns the device type ID in a protocol neutral format.  
            </summary>
            <returns>The device type ID in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetSoftwareRevision">
            <summary>
            Returns the software revision in a protocol neutral format.  
            </summary>
            <returns>The software revision in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetHardwareRevision">
            <summary>
            Returns the hardware revision in a protocol neutral format.  
            </summary>
            <returns>The hardware revision in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetProtocolSpecificProperties">
            <summary>
            Returns further protocol specific properties in a protocol neutral format.  
            </summary>
            <returns>Further protocol specific properties in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo.GetProtocolIdentificationProfile">
            <summary>
            Returns protocol specific identification profile in a protocol neutral format.  
            </summary>
            <returns>Protocol specific identification profile in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.DeviceIdentInfo`1">
            <summary>
            This class is used to describe physical device types which are supported by a
            DTM Device Type. It contains identification elements of a physical device type
            or device type group.
            The derived class <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/> provides a protocol specific access to the 
            information which is more type-safe. This class should be used whenever possible.
            </summary>
            <typeparam name="T">
            <para>
            Type of the protocol specific class (derived from 
            <see cref="T:Fdt.Dtm.ProtocolDeviceIdentInfo"/>) which  defines the protocol specific
            identification properties. Instances of this class are aggregated  by this
            class (see <see cref="P:Fdt.Dtm.DeviceIdentInfo`1.ProtocolSpecificIdentInfo"/> property).
            <note>
            These protocol specific properties are mapped to the properties...
            <list type="bullet">
                <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/></item>
               <item><see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile"/></item>
            </list>
            ... defined in the base class, which provide a protocol neutral way to access
            the information. 
            </note>
            </para>
            </typeparam>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfo`1.ProtocolSpecificIdentInfo">
            <summary>
            Protocol specific identification properties which are used by this instance.  
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.ProtocolSpecificPropertiesCheck">
            <summary>
            Helper method the checks whether ProtocolSpecificIdentInfo are specified. 
            The method throws a VerifyException if the property is null. 
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetProtocolId">
            <summary>
            Returns the unique identifier of the protocol for which this ident 
            information is provided. 
            </summary>
            <returns>The unique identifier of the protocol for which this ident information is provided..</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetManufacturerId">
            <summary>
            Returns the manufacturer ID in a protocol neutral format.  
            </summary>
            <returns>The manufacturer ID in a protocl neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetDeviceTypeId">
            <summary>
            Returns the device type ID in a protocol neutral format.  
            </summary>
            <returns>The device type ID in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetSoftwareRevision">
            <summary>
            Returns the software revision in a protocol neutral format.  
            </summary>
            <returns>The software revision in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetHardwareRevision">
            <summary>
            Returns the hardware revision in a protocol neutral format.  
            </summary>
            <returns>The hardware revision in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetProtocolSpecificProperties">
            <summary>
            Returns further protocol specific properties in a protocol neutral format.  
            </summary>
            <returns>Further protocol specific properties in a protocol neutral format.</returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentInfo`1.GetProtocolIdentificationProfile">
            <summary>
            Returns protocol specific identification profile in a protocol neutral format.  
            </summary>
            <returns>Protocol specific identification profile in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.DeviceSupportLevel">
            <summary>
            Defines the support level of a DTM Device Type for a physical device. 
            </summary>
            <remarks>
            This attribute can be used by a Frame Application to display the support level of a DTM to 
            the user. Users may use this information for an assignment decision.
            </remarks>
        </member>
        <member name="F:Fdt.Dtm.DeviceSupportLevel.GenericSupport">
            <summary>
            DTM Device Type applies to all kind of physical devices of the corresponding 
            fieldbus protocol. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceSupportLevel.ProfileSupport">
            <summary>
            DTM Device Type applies to physical devices of a certain profile of the fieldbus protocol. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceSupportLevel.BlockspecificProfileSupport">
            <summary>
            DTM Device Type applies to blocks included in physical device types 
            (e.g.: Pressure TransducerBlock in Profibus PA) 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceSupportLevel.SpecificSupport">
            <summary>
            DTM Device Type is developed for this physical device type. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceSupportLevel.IdentSupport">
            <summary>
            DTM Device Type is capable to identify the physical device in a vendor specific manner 
            and to propose a better DTM Device Type.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceIdentInfoTypeAttribute">
            <summary>
            This attribute class exposes type information of protocol specific 
            <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/> and <see cref="T:Fdt.Dtm.DeviceScanInfo`1"/> classes. 
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfoTypeAttribute.DeviceIdentInfoType">
            <summary>
            Type information of protocol specific defined <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/> variant. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfoTypeAttribute.ProtocolDeviceIdentInfoType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Dtm.ProtocolDeviceIdentInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfoTypeAttribute.DeviceScanInfoType">
            <summary>
            Type information of protocol specific defined <see cref="T:Fdt.Dtm.DeviceScanInfo`1"/> variant. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentInfoTypeAttribute.ProtocolDeviceScanInfoType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Dtm.ProtocolDeviceScanInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.MatchErrorType">
            <summary>
            Reason why <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> / <see cref="T:Fdt.Dtm.DeviceScanInfo"/> match failed.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchErrorType.StringCompareFailed">
            <summary>
            <see cref="P:Fdt.Dtm.DeviceScanValue.Value">DeviceScanValue.Value</see> /
            <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value">DeviceIdentValue{T}.Value</see> string compare failed. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchErrorType.RegularExpressionFailed">
            <summary>
            <see cref="P:Fdt.Dtm.DeviceScanValue.Value">DeviceScanValue.Value</see>
            does not match with the <see cref="P:Fdt.Dtm.DeviceIdentValue`1.RegularExpressions">DeviceIdentValue{T}.RegularExpressions</see> 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchErrorType.MissingScanInfo">
            <summary>
            <see cref="T:Fdt.Dtm.DeviceScanValue"/> for <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> is missing.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchErrorType.AdditionalScanInfo">
            <summary>
            The <see cref="T:Fdt.Dtm.DeviceScanInfo"/> instance contains a <see cref="T:Fdt.Dtm.DeviceScanValue"/> 
            which has no corresponding <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value">DeviceIdentValue{T}.Value</see>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.MatchError">
            <summary>
            Result of a single <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> / <see cref="T:Fdt.Dtm.DeviceScanInfo"/> match
            </summary>
        </member>
        <member name="P:Fdt.Dtm.MatchError.DeviceIdentValueName">
            <summary>
            <see cref="P:Fdt.Dtm.DeviceIdentValue`1.ProtocolSpecificName"/> of the <see cref="T:Fdt.Dtm.DeviceIdentValue`1"/>
            provided by <see cref="T:Fdt.Dtm.DeviceIdentInfo"/>.
            </summary>
            <remarks>
            This name can for example be used to find corresponding item in the 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> or
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> list. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.MatchError.MatchErrorType">
            <summary>
            Reason why the match failed.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.MatchLevel">
            <summary>
            Possible levels of matching between a 
            <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> and a <see cref="T:Fdt.Dtm.DeviceScanInfo"/>.
            </summary>
            <remarks>
            <note>
            All levels only indicate the matching level of the device and scan 
            ident information. How the DTM (corresponding DtmDeviceType) supports the 
            physical device shall be determined from the 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.SupportLevel">DeviceIdentInfo.SupportLevel</see>
             property.
            </note>  
            </remarks>
        </member>
        <member name="F:Fdt.Dtm.MatchLevel.FullMatch">
            <summary>
            All properties in <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> fully match to 
            corresponding properties in <see cref="T:Fdt.Dtm.DeviceScanInfo"/>.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchLevel.ProtocolMatch">
            <summary>
            The <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> properties
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/>,
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/>, 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/>,  
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/>, 
            and <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> 
            match to corresponding properties in <see cref="T:Fdt.Dtm.DeviceScanInfo"/>, 
            but one or more <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/>
            do not match. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchLevel.IdentMatch">
            <summary>
            The <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> properties
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/>,
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/>, 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/>,  
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/> 
            and <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> 
            match to corresponding properties in <see cref="T:Fdt.Dtm.DeviceScanInfo"/>. 
            <para>
            The <see cref="P:Fdt.Dtm.DeviceIdentInfo.SupportLevel">DeviceIdentInfo.SupportLevel</see>
            is == <see cref="F:Fdt.Dtm.DeviceSupportLevel.IdentSupport"/>.
            </para>
            </summary>
        </member>
        <member name="F:Fdt.Dtm.MatchLevel.NoMatch">
            <summary>
            One or more of the <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> properties
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/>,
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/>, 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/>,  
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/> 
            or <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> 
            do not match to corresponding properties in <see cref="T:Fdt.Dtm.DeviceScanInfo"/>. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceIdentMatchResult">
            <summary>
            Result of a <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> / <see cref="T:Fdt.Dtm.DeviceScanInfo"/> match 
            (see <see cref="M:Fdt.Dtm.DeviceIdentInfo.Match(Fdt.Dtm.DeviceScanInfo)">DeviceIdentInfo.Match</see>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.MatchLevel">
            <summary>
            Information about the level of matching between the 
            <see cref="T:Fdt.Dtm.DeviceIdentInfo"/> and the <see cref="T:Fdt.Dtm.DeviceScanInfo"/>.
            </summary>
            <remarks>
            If the result is != <see cref="F:Fdt.Dtm.MatchLevel.FullMatch"/>, 
            then the ...Error properties indicate for which ident
            properties the matching failed.  
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.ManufacturerIdError">
            <summary>
            [Optional] Information why match for property 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/> failed.
            </summary>
            <remarks>
            The property returns null, if the match succeeded. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.DeviceTypeIdError">
            <summary>
            [Optional] Information why match for property 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/> failed.
            </summary>
            <remarks>
            The property returns null, if the match succeeded. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.SoftwareRevisionError">
            <summary>
            [Optional] Information why match for property 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/> failed.
            </summary>
            <remarks>
            The property returns null, if the match succeeded. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.ProtocolIdentificationProfileError">
            <summary>
            [Optional] Information why match for property 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile"/> failed.
            </summary>
            <remarks>
            The property returns null, if the match succeeded. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.HardwareRevisionError">
            <summary>
            [Optional] Information why match for property 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/> failed.
            </summary>
            <remarks>
            The property returns null, if the match succeeded. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.ProtocolSpecificPropertyErrors">
            <summary>
            [Optional] Information for which 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> the match failed.
            </summary>
            <remarks>
            The property returns null, if the match for all
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> succeeded.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentMatchResult.DeviceSpecificPropertyErrors">
            <summary>
            [Optional] Information for which 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> the match failed.
            </summary>
            <remarks>
            The property returns null, if the match for all
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> succeeded and the count and names 
            of the properties are identical. Otherwise the list will be populated with match errors.
            Match errors reflect one of the following situations:
            <list type="bullet">
                <item>An item in <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> has a corresponding item (same name) in the
                scan infos <see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceSpecificProperties"/> but their values did not match.</item>
                <item>An item in <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> does not have a corresponding item (same name) in the
                scan infos <see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceSpecificProperties"/>.</item>
                <item>There is an additional item in the scan infos <see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceSpecificProperties"/> which does not have a corresponding item (same name) in the
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceSpecificProperties"/> list.</item>
            </list>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DeviceIdentValue`1">
            <summary>
            Represents a single identification element of a physical device type or group. 
            For example: Device Type Id, Manufacturer Id etc.
            </summary>
            <typeparam name="T">The generic type parameter T defines the type of the identification value (e.g. int, float, string etc.)
            corresponding to the format defined in the protocol. The identification element can either be a specific value or a regular expression 
            (e.g. defining a range of supported identification values).</typeparam>
            <remarks>
            <para>
            The identification element can either be a specific value or a regular expression (e.g.
            defining a range of supported identification values). 
            </para>
            <para>
            Specific values are returned by the <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value"/> and the regular expression by 
            <see cref="P:Fdt.Dtm.DeviceIdentValue`1.RegularExpressions"/> property. One of both shall be specified (don't return null). 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentValue`1.ProtocolSpecificName">
            <summary>
            Name of the device identification value. 
            The returned name shall be set according the name defined by the 
            corresponding protocol. For example ManufacturerID or DDRevision. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentValue`1.Value">
            <summary>
            Specific identification value. 
            </summary>
            <remarks>
            <para>
            <note>
            The property shall be set to null, if <see cref="P:Fdt.Dtm.DeviceIdentValue`1.RegularExpressions"/> are specified. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceIdentValue`1.RegularExpressions">
            <summary>
            Regular expressions for identifications of a device. 
            The <see cref="P:Fdt.Dtm.RegularExpression.Text">RegularExpression.Text</see> shall use the
            Regular Expression Language defined for the .NET Framework class <see cref="T:System.Text.RegularExpressions.Regex"/>.
            </summary>
            <remarks>
            <para>
            Use RegularExpressions only if a single value is not sufficient to define a match criteria. 
            Frame Applications shall ignore Value if RegularExpressions is not empty.
            </para>
            <para>
            All elements in the list shall be OR conjuncted. That means one regular expression
            needs to match. 
            </para>
            <para>
            <note>
            The property shall be set to null, if <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value"/> property is set. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentValue`1.Match(Fdt.Dtm.DeviceScanValue,System.Nullable{Fdt.Dtm.MatchErrorType}@)">
            <summary>
            Verifies whether the passed <paramref name="deviceScanValue"/> is equal to 
            <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value"/> or matches with <see cref="P:Fdt.Dtm.DeviceIdentValue`1.RegularExpressions"/>.
            </summary>
            <param name="deviceScanValue"><see cref="T:Fdt.Dtm.DeviceScanValue"/> to verify.</param>
            <param name="matchErrorType">
            If method returns false, then this out parameter provides additional information
            why the matching failed. 
            </param>
            <returns>
            True, if passed <see cref="T:Fdt.Dtm.DeviceScanValue"/> matches, otherwise false. 
            </returns>
            <remarks>
            <note>
            <para>
            Because of performance reasons this method assumes that data in this and 
            passed <see cref="T:Fdt.Dtm.DeviceScanValue"/> instance is valid. If some data 
            is invalid, then a <see cref="T:System.NullReferenceException"/> is thrown. 
            </para>
            <para>
            The caller of this method shall either handle the 
            <see cref="T:System.NullReferenceException"/> or ensure that data is valid, for example
            by calling the <see cref="M:Fdt.FdtDatatype`1.Verify"/> methods before 
            calling this method.
            </para>
            </note>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentValue`1.MatchRegularExpressions(Fdt.Dtm.DeviceScanValue,System.Nullable{Fdt.Dtm.MatchErrorType}@)">
            <summary>
            Performs regular expressions.
            </summary>
            <param name="deviceScanValue">
            A specific criteria for matching.
            </param>
            <param name="matchErrorType">
            If method returns false, then this out parameter provides additional information
            why the matching failed. 
            </param>
            <returns>
            Returns true if matching was successful. Otherwise false is returned.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceIdentValue`1.Verify">
            <summary>
            Override.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceScanInfo">
            <summary>
            This class is used to describe information from one single scanned physical device
            </summary>
            <remarks>
            <para>
            This class provides a protocol neutral access to the information, therefore it typically will 
            be used by the Frame Application if no protocol specific handling is needed.  
            </para>
            <para>
            <note>
            The derived class <see cref="T:Fdt.Dtm.DeviceScanInfo`1"/> provides a protocol specific access to the 
            information which is more type-safe. This class should be used whenever possible. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.ProtocolId">
            <summary>
            Unique identifiers for the (field-)bus for which this identification
            information is provided for.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.PhysicalLayer">
            <summary>
            [Optional] Returns the physical layer, via which the scanned device is connected.
            </summary>
            <remarks>
            The property shall return null, if the physical layer can not be recognized by the scanning hardware.
            A FDT protocol annex may define this property as mandatory.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.ManufacturerId">
            <summary>
            [Optional] Protocol specific Manufacturer ID.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for manufacturer IDs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.DeviceTypeId">
            <summary>
            [Optional] Protocol specific device type ID.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for device type IDs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.SoftwareRevision">
            <summary>
            [Optional] Protocol specific software revision. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for software revisions.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.HardwareRevision">
            <summary>
            [Optional] Protocol specific hardware revision. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for hardware revisions.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.Address">
            <summary>
            [Optional] Protocol specific address information.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for device address.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.SerialNumber">
            <summary>
            [Optional] Protocol specific serial number.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for serial number.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.Tag">
            <summary>
            [Optional] Protocol specific TAG / label. 
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't contain 
            definition for TAG.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.ProtocolSpecificProperties">
            <summary>
            [Optional] Further protocol specific identifiers as 
            a key / string-value list.
            </summary>
            <remarks>
            The property shall return null, if the underlying protocol doesn't define
            additional identification properties.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.DeviceSpecificProperties">
            <summary>
            [Optional] Further device vendor specific identifiers as 
            a key / string-value list.
            </summary>
            <remarks>
            <para>
            These properties are provided only if DeviceScanInfo is created by IHardwareInformation.EndHardwareScan.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.ProtocolIdentificationProfile">
            <summary>
            [Optional] There are protocols like PROFIBUS where different profiles (e.g. DP, PA and IM) can be used for identification of a device.
            This property documents the protocol-specific identification profile which is used for device identification.
            </summary>
            <remarks>
            <para>
            The protocol-specific annex defines the allowed values as an enumeration. 
            </para>
            <para>
            Not all protocols support different identification profiles, therefore the property is optional.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo.CommunicationErrorInformation">
            <summary>
            [Optional] Provides information in case of communication problems during 
            scan operation.
            </summary>
            <remarks>
            <para>
            If a communication error occurred this property contains detailed about the error 
            otherwise it is null
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetProtocolId">
            <summary>
            Returns the unique identifier of the protocol for which this ident 
            information is provided. 
            </summary>
            <returns>
            The protocol Id as a unique identifier.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetPhysicalLayer">
            <summary>
            Returns the physical layer for which the scan information is provided.
            </summary>
            <returns>
            The physical layer information.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetManufacturerId">
            <summary>
            Returns the manufacturer ID in a protocol neutral format.  
            </summary>
            <returns>
            The device manufacturer ID as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetDeviceTypeId">
            <summary>
            Returns the device type ID in a protocol neutral format.  
            </summary>
            <returns>
            The device type ID as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetSoftwareRevision">
            <summary>
            Returns the software revision in a protocol neutral format.  
            </summary>
            <returns>
            The software revision as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetHardwareRevision">
            <summary>
            Returns the hardware revision in a protocol neutral format.  
            </summary>
            <returns>
            The hardware revision as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetAddress">
            <summary>
            Returns the address information in a protocol independent format.  
            </summary>
            <returns>
            The device address.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetSerialNumber">
            <summary>
            Returns the serial number in a protocol neutral format.  
            </summary>
            <returns>
            The serial number as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetTag">
            <summary>
            Returns the TAG.
            </summary>
            <returns>
            The tag/label as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetProtocolSpecificProperties">
            <summary>
            Returns further protocol specific properties which can't be mapped
            to one of the other properties of this class.  
            </summary>
            <returns>
            Protocol specific properties in a protocol neutral format.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo.GetProtocolIdentificationProfile">
            <summary>
            Returns protocol specific identification profile in a protocol neutral format.  
            </summary>
            <returns>Protocol specific identification profile in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.DeviceScanInfo`1">
            <summary>
            This class is used to describe information from scanned physical devices.
            </summary>
            <typeparam name="T"> 
            <para>
            Type of the protocol specific class (derived from <see cref="T:Fdt.Dtm.ProtocolDeviceScanInfo"/>) which 
            defines the protocol specific scan properties. Instances of the protocol specific classes are aggregated 
            by this class (see <see cref="P:Fdt.Dtm.DeviceScanInfo`1.ProtocolSpecificScanInfo"/> property).
            <note>
            These protocol specific properties are mapped to the properties...
            <list type="bullet">
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.ManufacturerId"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceTypeId"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.SoftwareRevision"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.HardwareRevision"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.Address"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.SerialNumber"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.Tag"/></item>
                <item><see cref="P:Fdt.Dtm.DeviceScanInfo.ProtocolSpecificProperties"/></item>
            </list>
            ... defined in the base class, which provide a protocol neutral way to access the information. 
            </note>
            </para>
            </typeparam>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanInfo`1.ProtocolSpecificScanInfo">
            <summary>
            Protocol specific identification properties which are used by this instance.  
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.ProtocolSpecificPropertiesCheck">
            <summary>
            Helper method the checks whether ProtocolSpecificIdentInfo are specified. 
            The method throws a VerifyException if the property is null. 
            </summary>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetProtocolId">
            <summary>
            Returns the unique identifier of the protocol for which this ident 
            information is provided. 
            </summary>
            <returns>
            The protocol Id as a unique identifier.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetPhysicalLayer">
            <summary>
            Returns the physical layer for which the scan information is provided.
            </summary>
            <returns>
            The physical layer information.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetManufacturerId">
            <summary>
            Returns the manufacturer ID in a protocol neutral format.  
            </summary>
            <returns>
            The device manufacturer ID as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetDeviceTypeId">
            <summary>
            Returns the device type ID in a protocol neutral format.  
            </summary>
            <returns>
            The device type ID as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetSoftwareRevision">
            <summary>
            Returns the software revision in a protocol neutral format.  
            </summary>
            <returns>
            The software revision as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetHardwareRevision">
            <summary>
            Returns the hardware revision in a protocol neutral format.  
            </summary>
            <returns>
            The hardware revision as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetAddress">
            <summary>
            Returns the address information in a protocol independent format.  
            </summary>
            <returns>
            The device address.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetSerialNumber">
            <summary>
            Returns the serial number in a protocol neutral format.  
            </summary>
            <returns>
            The serial number as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetTag">
            <summary>
            Returns the TAG.
            </summary>
            <returns>
            The tag/label as a DeviceScanValue.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetProtocolSpecificProperties">
            <summary>
            Returns further protocol specific properties which can't be mapped
            to one of the other properties of this class.  
            </summary>
            <returns>
            Protocol specific properties in a protocol neutral format.
            </returns>
        </member>
        <member name="M:Fdt.Dtm.DeviceScanInfo`1.GetProtocolIdentificationProfile">
            <summary>
            Returns protocol specific identification profile in a protocol neutral format.  
            </summary>
            <returns>Protocol specific identification profile in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.DeviceScanValue">
            <summary>
            Represents an identification element of a scanned device.
            For example: Device Type Id, Manufacturer Id etc. 
            </summary>
            <remarks>
            <para>
            Specific values are returned by the <see cref="P:Fdt.Dtm.DeviceScanValue.Value"/>  
            The bus specific names are returned by the <see cref="P:Fdt.Dtm.DeviceScanValue.ProtocolSpecificName"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanValue.ProtocolSpecificName">
            <summary>
            Name of the device scan value. 
            The returned name shall be set according the name defined by the 
            corresponding protocol. For example ManufacturerID or DDRevision. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceScanValue.Value">
            <summary>
            Value of the element in a protocol independend format
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceStatus">
            <summary>
            Contains the description of the current status of a device or module.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceStatus.StatusFlag">
            <summary>
            Identifier for the current status of a device or module
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceStatus.StatusInformation">
            <summary>
            [Optional] List contains device specific status information with 
            human readable description.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceStatus.DeviceInitiatedCommunication">
            <summary>
            [Optional] Indicates the device is currently using device initiated communication.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.StatusFlag">
            <summary>
            Status and diagnosis information of a device or module.
            </summary>
            <remarks>
            The values of the enumeration reflect the NAMUR NE 107 recommendation.
            The value does not reflect the priorization of the status flag signal.
            </remarks>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.Ok">
            <summary>
            Device works well without any problems. Output value is valid.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.FunctionCheck">
            <summary>
            Output signal temporarily invalid (e.g. frozen) due to ongoing work on the device.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.OutOfSpecification">
            <summary>
            Deviations from the permissible ambient or process conditions determined by the device
            itself through self-monitoring or faults in the device itself indicate that the measuring 
            un-certainty of sensors or deviations from the set value in actuators is probably greater than 
            expected under operating conditions.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.MaintenanceRequired">
            <summary>
            Although the output signal is valid, the wear reserve is nearly exhausted or a function will 
            soon be restricted due to operational condi-tions e.g. aging of a pH-electrode.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.Invalid">
            <summary>
            Output signal invalid due to malfunction in the field device or its peripherals.
            This value corresponds to the NE 107 status signal 'Failure'.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.StatusFlag.NotAvailable">
            <summary>
            The device status is not available. 
            Possible causes could be the device does not provide status information or the status could not yet be retrieved.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceTypeInfo">
            <summary>
            The representation for a particular physical device type within the DTM is called DTM Device Type. 
            A DTM may contain one or more DTM Device Types. The concrete design and implementation 
            of the DTM Device Types is not in scope of FDT. This class provides only information about 
            these pieces of software like name, version, vendor, supported protocols etc.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DeviceTypeInfo.DeviceClassifications">
            <summary>
            Device classification domain groups (IEC 62390 AnnexG). 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Document">
            <summary>
            Information about documents on hard disk or in the Web.
            </summary>
            <remarks>
            <para>
            This could be any device manual, help file, spare part list etc. which is 
            installed together with the DTM or available on the Web.
            </para>
            <para>
            Frame Applications may show this information to users an open 
            the documents in appropriated viewer applications. The Frame Application shall
            opens the default application for the Mime-Type of the document, e.g. with <see cref="T:System.Diagnostics.ProcessStartInfo"/>.
            <note>
            The DTM shall install and register the viewer application if a special (uncommon)
            viewer application is needed.
            </note>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Document.DocumentClassification">
            <summary>
            Classification of a document. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.Document.DocumentClassification.Help">
            <summary>
            Document contains help information.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.Document.DocumentClassification.TechnicalDocumentation">
            <summary>
            Document contains technical information.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.Document.DocumentClassification.OrderingInformation">
            <summary>
            Document contains order information.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.Document.DocumentClassification.Miscellaneous">
            <summary>
            Document contains general information.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.Document.DocumentClassification.TenderSpecification">
            <summary>
            Document contains tender specification
            </summary>
            <remarks>format of tender specification is given by SubClassification</remarks>
        </member>
        <member name="P:Fdt.Dtm.Document.PathOrUrl">
            <summary>
            Path or URL where the document can be found.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Document.Label">
            <summary>
            Label that shall be displayed to the user interface.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Document.Classification">
            <summary>
            Classification of the document describing its content.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Document.MediaType">
            <summary> 
            Declaration of the media type of the document according to the MIME media typing system as described in 
            RFC 2046 - MIME Part 2: Media Types 
            </summary> 
            <remarks>
            The MediaType describes the contents of the document (which is addressed by the <see cref="P:Fdt.Dtm.Document.PathOrUrl"/>). If the target of PathOrUrl is a webpage, the value of MediaType shall be "text/html".
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Document.SemanticInfo">
            <summary>
            [Optional] Further information about a custom document (e.g. format information for tender specifications)
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Document.Help">
            <summary>
            [Optional] Help text that shall be displayed to the user. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Document.Language">
            <summary>
            [Optional] Language used in the document.
            </summary>
            <remarks>
            <para>
            The string value representing the language corresponds to the <b>Name</b> property of a <see cref="T:System.Globalization.CultureInfo"/> instance.
            </para>
            <para>
            The string representation of the CultureInfo has been chosen here to avoid unnecessary data, especially in serialized manifests.
            </para>
            <para>
            A list of possible values is provided in the Microsoft NLS API reference:<br></br>
            https://msdn.microsoft.com/en-us/library/cc233982.aspx
            </para>
            <para>
            Example: "en-US" would represent English (U.S.).
            </para>
            <para>
            Example: "en" would represent English (neutral).
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DtmInfo">
            <summary>
            DtmInfo contains general information about this piece of software such as name, 
            version, identifier and vendor of the software, the FDT version to which the DTM 
            complies. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.DtmRef">
            <summary>
            Reference to the DTM class (full name including also the namespace).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.Name">
            <summary>
            Name of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.Vendor">
            <summary>
            Vendor of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.Id">
            <summary>
            Unique identifier for the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.Version">
            <summary>
            Software version of the DTM. 
            The datatype is defined in the .NET system namespace. 
            Major, Minor, Revision and Build numbers are defined in properties.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.FdtVersion">
            <summary>
            FDT version to which the DTM is compliant.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmInfo.ProgIdsOfSupportedFdt1Dtms">
            <summary>
            [Optional] List of COM ProgIDs of FDT 1.2.x DTMs for which the data stored via IPersistStream can be loaded.
            </summary>
            <remarks>
            <para>
            If this property is used then the DTM can access the data from a FDT 1.2.x DTM from a data subset which is accessible
            using the ProgID as key for IDataSet.InstanceData. The Frame Application is responsible to provide the data in IDataSet.InstanceData.
            </para>
            <para>
            A FDT3 DTM which publishes ProgIDs of supported fDT 1.2.x DTMs has to support all DTM Device Types supported by the FDT 1.2.x DTM.
            </para>
            <para>
            It is strongly recommended to an FDT3 DTM to support this if it replaces an existing FDT 1.2.x DTM (i.e. to avoid time consuming reconfiguration or upload).
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DtmRequestMessage">
            <summary>
            This abstract class serves as a base for interaction between the DTM User Interface and the DTM Business Logic 
            as well as between DTMs (proprietary DTM to DTM interaction). 
            </summary>
            <remarks>
            <para>
            This class encapsulates a message where a DTM UI or a DTM Business Logic requests information from a DTM Business Logic.
            </para>
            <para>
            DTMs shall derive own classes from DtmRequestMessage and use these for the interaction.
            </para>
            <para>
            <note>
            Derived classes shall follow the general patterns of the FDT data types, especially
            they shall use the [DataMember] attribute for all properties.
            Also, these objects shall not contain properties of non serializable types such as interfaces.
            </note>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DtmResponseMessage">
             <summary>
            This abstract class serves as a base for interaction between the DTM User Interface and the DTM Business Logic 
             as well as between DTMs (proprietary DTM to DTM interaction). 
             </summary>
             <remarks>
             <para>
             This class encapsulates a message where a DTM Business Logic responses to a previous request <see cref="T:Fdt.Dtm.DtmRequestMessage"/>.
             </para>
             <para>
             DTMs shall derive own classes from DtmResponseMessage and use these for the interaction.
             </para>
             <para>
             <note>
             Derived classes shall follow the general patterns of the FDT data types, especially
             they shall use the [DataMember] attribute for all properties.
             Also, these objects shall not contain properties of non serializable types such as interfaces.
             </note>
             </para>
             </remarks>
        </member>
        <member name="T:Fdt.Dtm.DtmEventMessage">
            <summary>
            This abstract class serves as a base for interaction between the DTM Business Logic and DTM User Interface. 
            </summary>
            <remarks>
             <para>
            It encapsulates a message sent in case a DTM specific event occurred.
            </para>
            <para>
            DTMs shall derive own classes from DtmEventMessage and use these for the interaction.
            </para>
            <para>
            <note>
            Derived classes shall follow the general patterns of the FDT data types, especially
            they shall use the [DataMember] attribute for all properties.
            Also, these objects shall not contain properties of non serializable types such as interfaces.
            </note>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.DtmMessageTypes">
            <summary>
            UiMessageTypes  
            </summary>
            <remarks>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.DtmMessageTypes.RequestMessageTypes">
            <summary>
            List of the individual types (derived types) of RequestMessage that are used by a DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmMessageTypes.ResponseMessageTypes">
            <summary>
            List of the individual types (derived types) of ResponseMessageTypes that are used by a DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DtmMessageTypes.EventMessageTypes">
            <summary>
            List of the individual types (derived types) of EventMessageTypes that are used by a DTM.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DynamicClassReference">
            <summary>
            Information about a class e.g. a DtmInfoBuilder or DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DynamicClassReference.AssemblyInfo">
            <summary>
            Information about the assembly. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.DynamicClassReference.ClassName">
            <summary>
            Name of the class (full name including also the namespace).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.FdtBitmapInfo">
            <summary>
            Description of a bitmap for representation of a device, module or block. 
            </summary>
            <remarks>
            <para>
            Shall be high resolution and 24 bit color depth + 8 Bit transparency info (alpha channel).
            </para>
            <para>
            The Frame Application shall be prepared to display the image in a squarish area of unknown size. 
            </para>
            <para>
            A DTM shall provide at least an image for photo realistic representation of a device, module or block.
            This image is intended for displaying the device in a device catalog.
            The Application Domain is "FDT" and the SemanticId is "photoRealisticImage". 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.FdtBitmapInfo.Id">
            <summary>
            Unique identifier which can be use to request the bitmap from the 
            IDtmInformation interface. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.FdtBitmapInfo.SemanticInfo">
            <summary>
            Additional semantic information about the bitmap. 
            </summary>
            <remarks>
            <para>
            The semantic may be protocol specific defined in a FDT annex specification.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.FdtIconInfo">
            <summary>
            Description of an icon which is used to represent the device.
            </summary>
            <remarks>
            <para>
            This class describes an icon which can be used to visualize the device, module or block type in a 
            Frame Application user interface. 
            </para>
            <para>
            This class only describe the icon. The icon itself can be requested from the IDtmInformation interface. 
            </para>
            <para>
            The referenced icon shall at least be provided in following sizes and color depths: 
            <list type="bullet">
                <item>16x16 pixels / 256 colors (standard transparency) and true color (with alpha channel for transparency)</item>
                <item>32x32 pixels / 256 colors (standard transparency) and true color (with alpha channel for transparency)</item>
                <item>48x48 pixels / 256 colors (standard transparency) and true color (with alpha channel for transparency)</item>
            </list>
            </para>
            <para>
            A DTM shall provide at least an icon for conceptual representation of a device, module or block.
            This icon is intended for display in windows common controls, e.g. in a TreeView or ListView.
            The Application Domain is "FDT" and the SemanticId is "conceptualImage".
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.FdtIconInfo.Id">
            <summary>
            Unique identifier which can be use to request the icon from the 
            IDtmInformation interface. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.FdtIconInfo.SemanticInfo">
            <summary>
            [Optional] Additional semantic information about the icon. 
            </summary>
            <remarks>
            <para>
            The semantic may be protocol specific defined in a FDT annex specification.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.CommandFunction">
            <summary>
            Description of a function provided by the DTM business logic. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.CommandFunction.InputArguments">
            <summary>
            [Optional] List of function parameters that shall be passed to the 
            command function call. 
            </summary>
            <remarks>
            <para>
            If the Frame Application has an user interface, then it may display the
            parameters for editing to the user before the command function is executed. 
            A Frame Application without an user interface may call the command 
            function with its default values or set the values automatically (e.g. 
            with pre-configured values). 
            </para>
            <para>
            The list may contain <see cref="P:Fdt.Dtm.Functions.FunctionArgumentDescription.IsOptional">
            mandatory and optional</see> command parameters.
            The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of optional parameters can 
            be null. The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of mandatory
            parameters shall never be null, therefore the DTM shall provide always a
            default value for these type of parameters. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.CommandFunction.OutputArguments">
            <summary>
            [Optional] List of function parameters that will be returned 
            by the command function.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.DocumentFunction">
            <summary>
            Description of a document (file) provided by the DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.DocumentFunction.Document">
            <summary>
            Document that belongs to the function. 
            </summary>
            <remarks>
            The Frame Application shall open this document by private means. For example,
            by calling <see cref="M:System.Diagnostics.Process.Start(System.Diagnostics.ProcessStartInfo)"/> with
            <see cref="P:System.Diagnostics.ProcessStartInfo.UseShellExecute"/> option. 
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.ExecutableFunction">
            <summary>
            Abstract base class for functions of a DTM that are "executable" by calling corresponding 
            interface on the DTM business logic or creating an UI object. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId">
            <summary>
            Unique identifier of the function in the namespace of the DTM.  
            </summary>
            <remarks>
            This identifier will be used to execute the corresponding function (with ICommandFunction or as UI function). 
            The DTM shall ensure that this property uniquely identifies the function to the Frame Application, even if the list of functions changes. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId">
            <summary>
            [Optional] Specifies the type of provided functionality. 
            </summary>
            <remarks>
            <para>
            This property marks the functions as a so called "Standard FunctionItem".  
            The property shall be specified by the DTM, if provided functionality maps 
            to one of the defined <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId">ApplicationIds</see>.
            </para>
            <note>
            <para>
            A Frame Application may use this information to determine whether a specific
            functionality is provided by a DTM and for example provide corresponding UI
            elements (e.g. menus, buttons) for execution by the user. 
            </para>
            <para>
            A Frame Application may also display an own label for the function and ignore 
            what is returned by <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>. However, the DTM shall always 
            provide a <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>, also if an ApplicationId is specified. 
            </para>
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.ExecutableFunctionArgumentDescription">
            <summary>
            This class provides information about an argument which is used for an executable function.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionArgument">
            <summary>
            Information about a parameter of a <see cref="T:Fdt.Dtm.Functions.CommandFunction"/> or
            <see cref="T:Fdt.Dtm.Functions.UiFunction"/>. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgument.Id">
            <summary>
            Unique identifier of the parameter. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgument.Value">
            <summary>
            A string, which contains the serialized value of the argument.
            This string can be deserialized into an object of the type defined in the respective <see cref="T:Fdt.Dtm.Functions.FunctionArgumentDescription" /> (using the <see cref="T:System.Runtime.Serialization.DataContractSerializer" />).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionArgumentDescription">
            <summary>
            Information about an argument of a <see cref="T:Fdt.Dtm.Functions.StaticFunctionDescription"/> or a <see cref="T:Fdt.Dtm.Functions.CommandFunction"/>. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.Id">
            <summary>
            Unique identifier of the argument. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.Label">
            <summary>
            Human readable label of the argument.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.IsOptional">
            <summary>
            Indicates whether the argument is optional or mandatory. 
            </summary>
            <value>
            <para>
            Returns true, if the argument is optional. In this case the property 
            <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> can be null,
            </para>
            <para>
            Returns false, if the argument is mandatory. In this case the property 
            <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> shall never by null.
            </para>
            </value>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.DataType">
            <summary>
            Data type of the argument. 
            </summary>
            <remarks>
            The returned string shall contain the full qualified name of the data type, 
            e.g. "FDT.Datatypes.Hart.HartTransactionResponse, FDT.Datatypes.Hart, Version=1.0.1.0, Culture=neutral, PublicKeyToken=d09fa7629c8cbe5a".
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.DefaultValue">
            <summary>
            [Optional] If an argument of the static function is a CommunicationResponse, then
            the description of the argument shall provide here the CommunicationRequest that
            is needed for retrieving the CommunicationResponse from the device.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionArgumentDescription.Descriptor">
            <summary>
            [Optional] Human readable string describing the argument. This text is typically used
            as a tool-tip for the argument. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionGroup">
            <summary>
            Group of DTM function descriptions. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionGroup.FunctionItems">
            <summary>
            List of functions in this group.
            </summary>
            <remarks>
            <para>
            This list can contain following function types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Functions.CommandFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.DocumentFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.UiFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.FunctionGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/></item>
            </list>
            <note>
            Rules that shall be applied to this list are documented 
            <see cref="P:Fdt.Dtm.Functions.FunctionInfo.FunctionItems">here</see>.
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionGroup.ApplicationId">
            <summary>
            [Optional] Specifies the type of functionality provided by the functions in the group. 
            </summary>
            <remarks>
            <para>
            This property marks the functions in the group as a so called "Standard FunctionItem".  
            The property shall be specified by the DTM, if provided functionality maps 
            to one of the defined <see cref="P:Fdt.Dtm.Functions.FunctionGroup.ApplicationId">ApplicationIds</see>.
            </para>
            <note>
            <para>
            A Frame Application may use this information to determine whether a specific
            functionality is provided by a DTM and for example provide corresponding UI
            elements (e.g. menus, buttons) for execution by the user. 
            </para>
            <para>
            A Frame Application may also display an own label for the function and ignore 
            what is returned by <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>. However, the DTM shall always 
            provide a <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>, also if an ApplicationId is specified. 
            </para>
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionInfo">
            <summary>
            Contains information about functions, user interfaces and documents provided by a DTM.
            </summary>
            <remarks>
            <note>
            It's valid that a DTM does not provide any functions, user interfaces or documents. 
            In this case all properties return null. 
            </note>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionInfo.DefaultFunctionId">
            <summary>
            [Optional] Id of the function which can be used to open a default user interface
             or execute a command function.
            </summary>
            <remarks>
            The set Id shall be one of the Ids used for an <see cref="T:Fdt.Dtm.Functions.ExecutableFunction"/> returned
            by this instances. Otherwise the <see cref="M:Fdt.Dtm.Functions.FunctionInfo.Verify"/> method throws an exception.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionInfo.FunctionItems">
            <summary>
            [Optional] List of functions provided by the DTM.
            </summary>
            <remarks>
            <para>
            This list can contain following function types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Functions.CommandFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.DocumentFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.UiFunction"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.FunctionGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/></item>
            </list>
            </para>
            <para>
            <see cref="T:Fdt.Dtm.Functions.FunctionGroup"/> and <see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/> can be used for
            grouping of functions belonging together. 
            </para>
            <para>
            Following rules shall be taken into account:
            <list type="bullet">
                <item>
                All <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId">standard functions</see> provided 
                for the DTM itself shall be added to this root function list. 
                </item>
                <item>
                <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId">Standard functions</see> provided 
                for a DTM module shall be added to the root function list of corresponding 
                <see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/>. 
                </item>
                <item>
                Standard functions with the same <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId"/> are 
                not allowed in this list.  
                </item>
                <item>
                <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId">FunctionIds</see> shall be unique. That means 
                same number shall not be used by more than one function in this and all sub-lists. 
                </item>
            </list>
            <note>
            The <see cref="M:Fdt.Dtm.Functions.FunctionInfo.Verify"/> method throws an exception if these rules are not followed. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Functions.FunctionInfo.Verify">
            <summary>
            Override. Verifies also the special rules defined for the properties
            <see cref="P:Fdt.Dtm.Functions.FunctionInfo.DefaultFunctionId"/> and <see cref="P:Fdt.Dtm.Functions.FunctionInfo.FunctionItems"/>.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Functions.FunctionInfo.VerifyList(Fdt.FdtList{Fdt.Dtm.Functions.FunctionItem},System.Boolean,System.Collections.Generic.Dictionary{System.Nullable{System.Int32},System.Int32})">
            <summary>
            Method used for recursive verification of the function lists.
            </summary>
            <param name="functions">
            List of function items.
            </param>
            <param name="root"> 
            Specifies if the current node is a root node.
            </param>
            <param name="functionIds">
            dictionary containing the function Ids which are under verification.
            </param>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionItem">
            <summary>
            Abstract base class for a DTM function description class.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionItem.Label">
            <summary>
            Human readable label of the function.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionItem.Enabled">
            <summary>
            Status of the function. 
            </summary>
            <remarks>
            <para>
            True indicates, that the function can be executed. False indicates, that the function 
            shall not be executed. 
            </para>
            <para>
            If the Frame Application displays the function in the user interface, e.g. in a menu, 
            then corresponding menu entry shall be enabled / disabled according the value of this 
            property.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionItem.Hidden">
            <summary>
            Visibility of the function
            </summary>
            <remarks>
            <para>
            True indicates, that the Frame Application shall not display the function in its user interface.
            </para>
            <para>
            <note>
            A DTM may use this property to control the visibility of functions according to its business rules. 
            Following combinations of the properties Hidden and <see cref="P:Fdt.Dtm.Functions.FunctionItem.Enabled"/> are possible:
            <list type="bullet">
            <item>Enabled=True and Hidden=False means the function is shown by the Frame Application and the user can invoke it.</item>
            <item>Enabled=False and Hidden=False means the function may be shown by the Frame Application, but the user can not invoke it (e.g. grayed menu entry).</item>
            <item>Enabled=True and Hidden=True means the function is not shown by the Frame Application, but may be invoked by the DTM itself (IFrameUi.BeginOpenDtmUi).</item>        
            <item>Enabled=False and Hidden=True means the function is not shown by the Frame Application and can not be invoked by the DTM itself.</item>
            </list>
            If the value of the <see cref="P:Fdt.Dtm.Functions.FunctionItem.Hidden"/> property is set to True (regardless of the value of the <see cref="P:Fdt.Dtm.Functions.FunctionItem.Enabled"/> property), the 
            Frame Application shall not provide the possibility to generate the report for this function.
            </note>
            </para>
            <para>
            Depending on the type of the UI elements a Frame Application may not show functions when Enabled is set to false.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionItem.Descriptor">
            <summary>
            [Optional] Human readable string describing the function. This text is typically used
            as a tool-tip text if the Frame Application displays a menu for the function. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionResult">
            <summary>
            Result of a command function or a modal user interface.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.FunctionResult.ResultParameters">
            <summary>
            [Optional] List of parameters containing the result of a 
            command function or a modal user interface. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.ModuleFunctionGroup">
            <summary>
            Group of DTM module function descriptions. 
            </summary>
            <remarks>
            If this class is used, then the DTM shall also provide corresponding <see cref="T:Fdt.Dtm.Network.ModuleInfo"/> 
            in <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.ModuleFunctionGroup.ModuleId">
            <summary>
            Unique identifier of the <see cref="T:Fdt.Dtm.Network.ModuleInfo">module</see> described in 
            <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.ModuleFunctionGroup.DefaultFunctionId">
            <summary>
            [Optional] Id of the function which can be used to open a default user interface
             or execute a command function.
            </summary>
            <remarks>
            The set Id shall be one of the Ids used for an <see cref="T:Fdt.Dtm.Functions.ExecutableFunction"/> returned
            by this instances. Otherwise the <see cref="M:Fdt.Dtm.Functions.FunctionInfo.Verify"/> method throws an exception.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.StaticFunctionArgumentDescription">
            <summary>
            This class provides information about an argument which is used for a static function.
            </summary>
            <remarks>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.StaticFunctionDescription">
            <summary>
            Description of a static function provided by the DTM package. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.FunctionId">
            <summary>
            Unique identifier of the function in the namespace of the DTM.  
            </summary>
            <remarks>
            This identifier will be used to execute the corresponding function with IStaticFunction. 
            The DTM shall ensure that this property uniquely identifies the function to the Frame Application, even if the list of static functions changes. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.Label">
            <summary>
            Human readable label of the function.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.ProtocolIds">
            <summary>
            List of supported protocols.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.ReturnParameters">
            <summary>
            List of function arguments that will be returned 
            by the command function.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.InputParameters">
            <summary>
            List of function arguments that may be passed to the 
            static function call. 
            </summary>
            <remarks>
            <para>
            The list may contain <see cref="P:Fdt.Dtm.Functions.FunctionArgumentDescription.IsOptional">
            mandatory and optional </see> command arguments.
            The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of optional arguments can 
            be null. The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of mandatory
            arguments shall never be null, therefore the DTM shall provide always a
            default value <see cref="P:Fdt.Dtm.Functions.FunctionArgumentDescription.DefaultValue"/> 
            for these type of arguments. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.Descriptor">
            <summary>
            [Optional] Human readable string describing the function. This text is typically used
            as a tool-tip text if the Frame Application displays a menu for the function. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionDescription.ApplicationId">
            <summary>
            [Optional] Specifies the type of provided functionality. 
            </summary>
            <remarks>
            <para>
            This property marks the functions as a so called "Standard FunctionItem".  
            The property shall be specified by the DTM, if provided functionality maps 
            to one of the defined <see cref="P:Fdt.Dtm.Functions.StaticFunctionDescription.ApplicationId">ApplicationIds</see>.
            </para>
            <note>
            <para>
            A Frame Application may use this information to determine whether a specific
            functionality is provided by a DTM and for example provide corresponding UI
            elements (e.g. menus, buttons) for execution by the user. 
            </para>
            <para>
            A Frame Application may also display an own label for the function and ignore 
            what is returned by <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>. However, the DTM shall always 
            provide a <see cref="P:Fdt.Dtm.Functions.FunctionItem.Label"/>, also if an ApplicationId is specified. 
            </para>
            </note>
            </remarks>
        </member>
        <member name="F:Fdt.Dtm.Functions.StaticFunctionDescription.SemanticInfos">
            <summary>
            [Optional] Semantic information for the function, specifies the type of provided functionality.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Functions.StaticFunctionInfo">
            <summary>
            Contains information about static functions provided by a DTM.
            </summary>
            <remarks>
            <note>
            It's valid that a DTM does not provide any static functions. 
            In this case all properties return null. 
            </note>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionInfo.StaticFunctionProviderRef">
            <summary>
            Reference to the assembly and class which provides the static function (full class name including namespace).
            </summary>
            <remarks>
            The referenced class shall implement IStaticFunction.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.StaticFunctionInfo.StaticFunctionItems">
            <summary>
            [Optional] List of static functions provided by the DTM.
            </summary>
            <remarks>
            <para>
            This list can contain following function types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Functions.StaticFunctionDescription"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.UiFunction">
            <summary>
            Description of a function provided by a DTM user interface. 
            </summary>
            <remarks>
            Information about the object which implements this user interface function
            shall be provided in a corresponding manifest file (see <see cref="T:Fdt.Deployment.DtmWebUiManifest"/>). 
            <note>
            The Frame Application shall use the <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId"/>
            property to find the corresponding entry in the manifest.
            </note>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.UiFunction.Parameters">
            <summary>
            [Optional] List of function parameters that shall be passed to the 
            user interface function. Whether parameters are supported depends on the 
            type of the user interface function. 
            </summary>
            <remarks>
            <para>
            If the Frame Application has an user interface, then it may display the
            parameters for editing to the user before the command function is executed. 
            A Frame Application without an user interface may call the command 
            function with its default values or set the values automatically (e.g. 
            with pre-configured values). 
            </para>
            <para>
            The list may contain mandatory and optional command parameters.
            The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of optional parameters can 
            be null. The <see cref="P:Fdt.Dtm.Functions.FunctionArgument.Value"/> of mandatory
            parameters shall never be null, therefore the DTM shall provide always a
            default value for these type of parameters. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.ICommandFunction">
            <summary>
            This interface is used to execute command functions.
            </summary>
            <remarks>
            <para>
            This interface is implemented by two different types of objects:
            <list type="bullet">
            <item>The DTM Business Logic</item>
            <item>a <see cref="T:Fdt.Dtm.BlockTypeInfo"/> for a Block.</item>
            <item>a DTM UI Command Function object.This object is allowed to open a user interface.
             Therefore it has to be executed on the client in case of a distributed Frame Application.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Triggers execution of the function.
            </summary>
            <param name="functionId"><see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId">Unique identifier</see> of the function to execute.</param>
            <param name="parameters">FunctionItem parameters.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.CancelExecute(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.EndExecute(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.Functions.ICommandFunction.CancelExecute(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.EndExecute(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
        </member>
        <member name="M:Fdt.Dtm.Functions.ICommandFunction.EndExecute(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result of the function execution.</returns>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.Functions.ICommandFunction.CancelExecute(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.Functions.ICommandFunction.CancelExecute(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">One of the communication transactions fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM</exception>
            <exception cref="T:Fdt.FdtNoWriteAccessException">The write operation can not be performed because the data is not writable.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument parameters of <see cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() contains an invalid data values.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument functionId of <see cref="M:Fdt.Dtm.Functions.ICommandFunction.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.Functions.IFunction">
            <summary>
            This interface provides access to functions, user interfaces and documents provided by a DTM.
            </summary>
            <remarks>
            <para>
            The function information can be requested from the property <see cref="P:Fdt.Dtm.Functions.IFunction.FunctionInfo"/>. The returned
            information may be state specific. A DTM shall inform the Frame Application about function changes 
            (e.g. number, status, label etc.) by raising the events 
            <see cref="E:Fdt.Dtm.Functions.IFunction.FunctionsChanged"/>. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Functions.IFunction.FunctionInfo">
            <summary>
            Returns information about functions, user interfaces and documents provided by
            a DTM.
            </summary>
            <value>
            <para>
            This property shall provide information about functions, user interfaces and
            documents provided  by a DTM that enable the Frame Application for example to
            create a DTM specific menu.  This information is available when the DTM is completely instanciated (state "running") 
            but the information may change if it is instance specific and depending on the state or configuration of the device.
            </para>
            <para>
            This property shall return a list of all functions as a <see cref="P:Fdt.Dtm.Functions.IFunction.FunctionInfo"/>.
            Depending on the state, the DTM is able to set the Enabled property of the function (or <see cref="T:Fdt.Dtm.Functions.FunctionGroup"/>) to true or false.
            The number of entries in the list shall not change during the lifetime of the DTM.
            </para>
            <para>
            The returned <see cref="T:Fdt.Dtm.Functions.FunctionInfo"/> may contain following information:
            <list type="bullet">
            	<listheader>
                    <term>Type</term>
                    <description>Description</description>
            	</listheader>
                <item>
                    <term><see cref="T:Fdt.Dtm.Functions.CommandFunction"/></term>
                    <description>
                    Provides information about a DTM function, which can be executed by
                    calling the <see cref="T:Fdt.Dtm.Functions.ICommandFunction"/> interface implemented by the 
                    DTM business logic.  
                    </description>
                </item>
                <item>
                    <term><see cref="T:Fdt.Dtm.Functions.DocumentFunction"/></term>
                    <description>
                    Provides information about a document (file) provided by the DTM.
                    </description>
                </item>
                <item>
                    <term><see cref="T:Fdt.Dtm.Functions.UiFunction"/></term>
                    <description>
                    <para>
                    Represents a DTM user interface function. The actual information about the 
                    object which implements this function is provided in a 
                    <see cref="P:Fdt.Deployment.DtmManifest.UiManifestRefs">manifest file</see>.
                    The Frame Application shall use the <see cref="T:Fdt.Dtm.Functions.UiFunction"/>.<see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId"/> 
                    to find the information in the manifest.
                    </para>
                    <para>
                    This design enables the DTM to provide multiple user interface objects for the same 
                    function Id, for example for different user interface technologies or for different platforms. 
                    </para>
                    <note>
                    Future FDT versions may introduce further user interface types. 
                    </note>
                    </description>
                </item>
                <item>
                    <term><see cref="T:Fdt.Dtm.Functions.FunctionGroup"/></term>
                    <description> Group of functions provided by this DTM.</description>
                </item>
                <item>
                    <term><see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/></term>
                    <description>
                    <para>
                    Group of functions provided by this DTM for the modules returned by 
                    <see cref="T:Fdt.Dtm.IO.IProcessData"/>.
                    </para>
                    <para>
                    ModuleInfo functions may not be shown directly in the standard  context
                    menu of the DTM node. They may appear in a sub-menu which is associated
                    to a DTM module or in the context menu of a DTM  module node. 
                    <note>
                    The DTM has to ensure that all enabled module functions are valid. 
                    That means the Frame Application is not responsible for matching the
                    given module Ids to the list of  the existing modules returned by 
                    <see cref="T:Fdt.Dtm.IO.IProcessData"/>.
                    </note>
                    </para>
                    </description>
                </item>
            </list>
            </para>
            </value>
            <remarks>
            <para>
            A DTM shall inform the Frame Application about function changes (e.g.
            number, status, label etc.)  by raising the event 
            <see cref="E:Fdt.Dtm.Functions.IFunction.FunctionsChanged"/>. 
            </para>
            <para>
            It is expected that a DTM adapts the provided list of functions according to
            the level of the  current user passed in <see cref="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)"/>. As long as the
            DTM does not have valid user information,  it should behave like the user with
            the least rights (“Observer”) is using the DTM.
            </para>
            <para>
            If the DTM disables a <see cref="T:Fdt.Dtm.Functions.FunctionGroup"/>, it shall also disable all
            items below that group  if this is the intended behavior. If the DTM does not
            disable sub-items, the  Frame Application  can still make use of them.
            </para>
            <para>
            If the DTM wants to limit the number of opened user interfaces, it should
            disable the corresponding  function item. If a user interface is closed, the
            DTM has to enable the function item again.
            </para>
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.Functions.IFunction.FunctionsChanged">
            <summary>
            Notification by a DTM that the information about its current available functionality has changed
            (see also <see cref="N:Fdt.Dtm.Functions"/>.
            </summary>
            <remarks>
            This notification shall be used by DTMs to inform the Frame Application to update its menus or 
            function calls which reference on this functionality. 
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Functions.FunctionsChangedEventHandler">
            <summary>
            References a method to be called when functions changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="functions">Information about the function of a DTM.</param>
        </member>
        <member name="T:Fdt.Dtm.Functions.IStaticFunction2">
            <summary>
            This interface is used to execute static functions independent of the DTM instance.
            </summary>
            <remarks>
            <para>
            This interface is not implemented by the DTM BL but by a separate object - the StaticFunctionProvider.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.Init(System.Guid,System.String,Fdt.Frame.ITrace,Fdt.Frame.TraceEventType,Fdt.Frame.ICommunicationChannelProxy,Fdt.Dtm.Network.AddressInfo,Fdt.FdtList{Fdt.Dtm.Network.NetworkDataItem})">
            <summary>
            Initializes a StaticFunctionProvider instance. 
            </summary>
            <param name="staticFunctionTag">A tag given by the frame in order to identify the instance of the static function provider. This is used for trace information.</param>
            <param name="dtmRootPath">Root path of DTM installation (full path).</param>
            <param name="trace">Reference to the Trace interface of the Frame Application.</param>
            <param name="traceLevel">Trace level to be used by the static function. Default level is "Error".</param>
            <param name="parentCommunicationChannel">Reference to the linked parent communication channel within the FDT topology.</param>
            <param name="deviceAddresses">Addresses which shall be used to communicate with the device.
            The <see cref="P:Fdt.Dtm.Network.AddressInfo.ProtocolId"/> shall define the protocol to be used for the communication.
            <para>
            The correct protocol specific address class derived from <see cref="T:Fdt.Dtm.Network.ProtocolDeviceAddress"/> shall be used. 
            Multiple addresses may be provided in case the device requires it for single connection (see corresponding protocol annex).
            </para></param>
            <param name="networkDataItems">NetworkData items which shall be used to communicate with the device.
            <para>
            The correct protocol specific network data class derived from <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/> shall be used. 
            </para>
            </param>
            <remarks>
            <para>
            This method is called by the Frame Application to initializes a StaticFunctionProvider object. 
            After this object is initialized, the Frame can execute the functions multiple times in order 
            to process information about a device instance (of appropriate type) without starting the DTM. 
            </para>
            <para>
            The <paramref name="deviceAddresses"/> and <paramref name="networkDataItems"/> shall be provided in the same manner as they are set to a device type instance.
            </para>
            <para>
            The parallel calls of the <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> method will be queued end executes sequential (preserving the order of the calls) to prevent communication collisions with device.
            </para>
            </remarks>
            <para>
            It is optional to perform the <c>DeviceTypeCheck</c> during static function execution (on connection to the device). 
            In case the device type check is required it shall be implemented as part of the static function itself and a <c>StaticFunctionProvider</c> implementation
            specific to the desired device type shall be provided.
            </para>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Triggers execution of the function.
            </summary>
            <param name="functionId"><see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId">Unique identifier</see> of the function to execute.</param>
            <param name="parameters">FunctionItem parameters. The list of input parameters may be <c>null</c>, 
            if the executed static function does not require input arguments.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            The parallel calls of the <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> method will be queued end executes sequential (preserving the order of the calls) to prevent communication collisions with device.
            </para>
            <para>
            For each <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> method call a separate device connection shall be established. The connection shall be closed immediately after the communication with the device is done.
            It is not allowed to share a connection between different calls of the <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> method.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.CancelExecute(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.EndExecute(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.CancelExecute(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.EndExecute(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.EndExecute(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result of the function execution.</returns>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.CancelExecute(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed. This exception may transport an inner exception, which is specific to the executed static function.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.Functions.IStaticFunction2.CancelExecute(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument parameters of <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() contains an invalid data values.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument functionId of <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginExecute(System.Int32,Fdt.FdtList{Fdt.Dtm.Functions.FunctionArgument},Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.BeginRelease(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Informs the StaticFunctionProvider to stop all active function executions. 
            </summary>
            <remarks>
            <para>
            When all active function executions are terminated and the StaticFunctionProvider is ready to be released, the callback method shall be called. 
            The Frame Application shall then call <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.EndRelease(System.IAsyncResult)"/>.
            </para>
            </remarks>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.EndRelease(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunction2.EndRelease(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginRelease(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <remarks>
            </remarks>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.Functions.IStaticFunction2.BeginRelease(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
        </member>
        <member name="T:Fdt.Dtm.Functions.IStaticFunctionInformation">
            <summary>
            This interface provides information about static functions that are provided by a given device type.
            </summary>
            <remarks>
            A reference to this interface is provided by the <see cref="P:Fdt.Dtm.IDtmInfoBuilder2.StaticFunctions"/> property of <see cref="T:Fdt.Dtm.IDtmInfoBuilder2"/> interface.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Functions.IStaticFunctionInformation.GetStaticFunctions(Fdt.Dtm.TypeInfo)">
            <summary>
            Returns information about static functions provided by a specific type.  
            </summary>
            <returns>A <see cref="T:Fdt.Dtm.Functions.StaticFunctionInfo"/> object . 
            </returns>
            <remarks>
            <para>
            The returned <see cref="T:Fdt.Dtm.Functions.StaticFunctionInfo"/> may contain following information:
            <list type="bullet">
                <listheader>
                    <term>Type</term>
                    <description>Description</description>
                </listheader>
                <item>
                    <term>StaticFunction</term>
                    <description>
                    Provides information about a static function, which can be executed
                    independently from DTM business logic.  
                    </description>
                </item>
            </list>
            </para>
            <para>
            Note: When the active type in DTM is changed the frame is responsible to retrieve and apply 
            the corresponding static function information for the new type.
            </para>
            </remarks>
            <param name="type">The specific type.</param>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="T:Fdt.Dtm.IO.IOSignalInfo">
            <summary>
            Information about a single device IO signal.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.Id">
            <summary>
            Unique identifier of this IO signal within the <see cref="T:Fdt.Dtm.IO.ProcessDataInfo"/>
            where it's contained. 
            </summary>
            <remarks>
            This Id shall for example be used for cross referencing of IO signals 
            (see <see cref="T:Fdt.Dtm.IO.IOSignalRef"/> or for addressing of an IO signal for 
            <see cref="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag"/> or <see cref="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked"/> property setting. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.Name">
            <summary>
            Name of IO signal according to device specific documentation. This name
            shall be unique within a DTM module <see cref="T:Fdt.Dtm.IO.ModuleProcessDataGroup"/>), or a sub device 
            (see <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>). 
            </summary>
            <remarks>
            This name can for example be used to find corresponding IO signal provided in 
            the Child DTM referenced by a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/> element. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag">
            <summary>
            Human readable identifier set by the Frame Application. 
            </summary>
            <remarks>
            <para>
            The DTM shall provide a usable default value, which can be overwrite 
            by the Frame Application (e.g. with the currently used variable name in 
            the PLC programming tool).
            </para>
            <para>
            The DTM shall display this tag in IO signal specific user interfaces.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked">
            <summary>
            Indicates whether IO signal is locked in order to prevent further changes by the DTM.
            </summary>
            <value>
            TRUE indicates that further configuration changes affecting the IO signal 
            shall be prohibited. FALSE indicates that changes are allowed.
            </value>
            <remarks>
            This property is set by the Frame Application, for example because the signal is already 
            integrated into functional planning of the control system (e.g. corresponding PLC variable 
            exists). 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.SignalType">
            <summary>
            Type of the IO signal
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.IECDatatype">
            <summary>
            IEC datatype of the IO signal.
            (automatically set by protocol specific IO signal class).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.IsSafety">
            <summary>
            Indicator if an IO Signal is safety related data. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.RoutedIOSignalId">
            <summary>
            [Optional] Unique identifier of the routed IO signal which is represented
            by this IOSignalInfo.
            </summary>
            <remarks>
            <para>
            This property shall be set for routed IO signals. That means if the IO signal 
            is originally provided by a (child) device connected to the fieldbus. 
            </para>
            <para>
            The value of this property shall match to the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.Id">IOSignalInfo.Id</see>
            returned by corresponding Child DTM in the FDT topology. The Child DTM is identified by
            the System Tag specified in the <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/> or 
            <see cref="T:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup"/> in which this IOSignalInfo is contained. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.SemanticInfos">
            <summary>
            [Optional] Semantic information for the IO signal.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.DeviceDataRef">
            <summary>
            [Optional] Reference to corresponing <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>
            which can be used to read or write the online value. 
            </summary>
            <remarks>
            <para>
            <note>
            If this IO signal belongs to a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>
            element, then the <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> item in corresponding 
            DTM is referenced. That means corresponding DTM shall be used
            to read or write the value. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.UnitInfoRef">
            <summary>
            [Optional] Reference to another <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> and/or
            online/offline <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> representing the unit
            of this IO signal.
            </summary>
            <remarks>
            <para>
            <note>
            If this IO signal belongs to a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>
            element, then the <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> items in corresponding 
            DTM are referenced. That means corresponding DTM shall be used
            to read or write the unit. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.RangeInfoRefs">
            <summary>
            [Optional] Reference to other <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> and/or
            online/offline <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> representing the ranges
            belonging to this IO signal.
            </summary>
            <remarks>
            <para>
            The list may contain several sequences of a lower range followed by an upper range
            belonging together or just one single lower range or one upper range. 
            Two following lower ranges or upper ranges are not allowed.  
            </para>
            <para>
            <note>
            If this IO signal belongs to a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>
            element, then the <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> items in corresponding 
            DTM are referenced. That means corresponding DTM shall be used
            to read or write the ranges. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.AlarmInfoRefs">
            <summary>
            [Optional] Reference to other <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> and/or
            online/offline <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> representing the alarms
            belonging to this IO signal.
            </summary>
            <remarks>
            <para>
            <note>
            If this IO signal belongs to a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>
            element, then the <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> items in corresponding 
            DTM are referenced. That means corresponding DTM shall be used
            to read or write the alarms. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo.SubstituteValueRef">
            <summary>
            [Optional] Reference to another <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> and/or
            online/offline <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> representing the substitute 
            value setting belonging to this IO signal.
            </summary>
            <remarks>
            <para>
            <note>
            If this IO signal belongs to a <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/>
            element, then the <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/> items in corresponding 
            DTM are referenced. That means corresponding DTM shall be used
            to read or write the substitute value. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IO.IOSignalInfo.GetIECDatatype">
            <summary>
            Returns IEC datatype of the IO signal.  
            </summary>
            <returns>The IEC datatype of the IO signal.</returns>
        </member>
        <member name="T:Fdt.Dtm.IO.IOSignalInfo`1">
            <summary>
            Information about a single device IO signal.
            </summary>
            <typeparam name="T">
            Type of the protocol specific class (derived from 
            <see cref="T:Fdt.Dtm.IO.ProtocolIOSignalInfo"/>) which  defines the protocol specific
            IO signal information. Instances of this class are aggregated by this
            class (see <see cref="P:Fdt.Dtm.IO.IOSignalInfo`1.ProtocolSpecificInfo"/> property).
            </typeparam>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfo`1.ProtocolSpecificInfo">
            <summary>
            Protocol specific IO signal information.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.IO.IOSignalInfo`1.GetIECDatatype">
            <summary>
            Returns IEC datatype of the IO signal.  
            </summary>
            <returns>The IEC dataytype of the IO signal.</returns>
        </member>
        <member name="T:Fdt.Dtm.IO.IOSignalInfoTypeAttribute">
            <summary>
            This attribute class exposes type information of a protocol specific 
            <see cref="T:Fdt.Dtm.IO.IOSignalInfo`1"/> class. 
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfoTypeAttribute.IOSignalInfoType">
            <summary>
            Type information of protocol specific defined <see cref="T:Fdt.Dtm.IO.IOSignalInfo`1"/> variant. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalInfoTypeAttribute.ProtocolIOSignalInfoType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Dtm.IO.ProtocolIOSignalInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.IOSignalRef">
            <summary>
            Reference to an IO signal identified by its identifier.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalRef.IOSignalId">
            <summary>
            <see cref="P:Fdt.Dtm.IO.IOSignalInfo.Id"/> of the referenced IO signal. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.IOSignalRefs">
            <summary>
            Reference to another <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/>, and/or <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            The meaning of the references depends on the context where this class is used. 
            </summary>
            <remarks>
            All properties in this class are marked as [Optional], but at least one property
            shall return a value (not null). 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalRefs.IOSignalRef">
            <summary>
            [Optional] Reference to another <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalRefs.OnlineDataRef">
            <summary>
            [Optional] Reference to an online <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.IOSignalRefs.OfflineDataRef">
            <summary>
            [Optional] Reference to an offline <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.IO.IOSignalRefs.Verify">
            <summary>
            Override. Verifies whether at least one of the optional properties return a value. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.ModuleProcessDataGroup">
            <summary>
            Information about IO signals provided by a DTM module. 
            </summary>
            <remarks>
            If this class is used, then the DTM shall also provide corresponding <see cref="T:Fdt.Dtm.Network.ModuleInfo"/> 
            in <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.ModuleProcessDataGroup.ModuleId">
            <summary>
            Unique identifier of the <see cref="T:Fdt.Dtm.Network.ModuleInfo">module</see> described in 
            <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.ProcessDataGroup">
            <summary>
            Group of process data.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.ProcessDataGroup.ProcessDataItems">
            <summary>
            [Optional] List of process data supported by the DTM module(respectively corresponding hardware module). 
            The property shall return null, if currently no process data information is available (may depend
            on device configuration).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.IO.IOSignalInfo"/></item>
                <item><see cref="T:Fdt.Dtm.IO.ProcessDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.IO.ModuleProcessDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.IO.ProcessDataInfo">
            <summary>
            Process data related information for the integration of the device 
            into the control system like data type, signal direction, engineering units, and ranges etc.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.ProcessDataInfo.ProcessDataItems">
            <summary>
            [Optional] List of process data  supported by the DTM (respectively corresponding device). 
            The property shall return null, if currently no process data information is available (may depend
            on device configuration).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.IO.IOSignalInfo"/></item>
                <item><see cref="T:Fdt.Dtm.IO.ProcessDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.IO.ModuleProcessDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.IO.ProcessDataItem">
            <summary>
            Abstract base class for process data information. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.ProcessDataItem.Label">
            <summary>
            Human readable label for the process data. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IO.ProcessDataItem.Descriptor">
            <summary>
            [Optional] Human readable string describing for the process data. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.ProtocolIOSignalInfo">
            <summary>
            Abstract base class for protocol specific IO signal class.
            </summary>
            <remarks>
            This base class defines an abstract method which shall be overridden by the protocol
            specific classes. This methods shall map the protocol specific datatype to an IEC datatype. 
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IO.ProtocolIOSignalInfo.GetIECDatatype">
            <summary>
            Abstract method implemented in a derived class that returns the 
            IEC datatype for the specified protocol specific datatype. 
            </summary>
            <returns>Manufacturer ID as string or regular expression.</returns>
        </member>
        <member name="T:Fdt.Dtm.IO.RoutedProcessDataGroup">
            <summary>
            Information about routed IO signals which are originally 
            provided by a sub-device (corresponding Child DTM in the FDT topology). 
            </summary>
            <remarks>
            <para>
            The Child DTM in the FDT topology is identified by the property <see cref="P:Fdt.Dtm.IO.RoutedProcessDataGroup.DtmSystemTag"/>. 
            Corresponding IOSignalInfo is identified by the
            <see cref="P:Fdt.Dtm.IO.IOSignalInfo.RoutedIOSignalId">IOSignalInfo.RoutedIOSignalId</see> 
            property of the item in this group. 
            </para>
            <para>
            If the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.RoutedIOSignalId">IOSignalInfo.RoutedIOSignalId</see> is not set,
            then the IO signal is related to corresponding device, but not provided by this (e.g. it's a network status
            related information generated by the bus-master, remote IO...). 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IO.RoutedProcessDataGroup.DtmSystemTag">
            <summary>
            Unique identifier of the device (corresponding Child DTM in the topology).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.SignalType">
            <summary>
            Type of an IO signal 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.IO.SignalType.Input">
            <summary>
            IO signal is an input.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.IO.SignalType.Output">
            <summary>
            IO signal is an output.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IO.IProcessData">
            <summary>
            This interface provides information related to process data of a field device for the
            integration of the device into the control system like datatype, signal direction,
            engineering units, and ranges etc.
            </summary>
            <remarks>
            <para>
            The information provided by this interface enables for example engineering tools to map the 
            device I/O signals to variables in an IEC program for a PLC.
            </para>
            <para>
            The process data related device information can be requested by <see cref="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)"/>.
            The returned information, both the number and type, may depend on the configuration 
            of the device. Thus the number of available items may also depend on the device configuration. 
            </para>
            <para>
            A DTM shall inform the Frame Application about changes by raising the event <see cref="E:Fdt.Dtm.IO.IProcessData.ProcessDataChanged"/>. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            Starts reading of process data related device information. The result is provided by
            <see cref="M:Fdt.Dtm.IO.IProcessData.EndGetProcessData(System.IAsyncResult)"/>.
            </summary>
            <param name="protocolId">Unique identifier of the protocol for which process data information shall be provided.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            The parameter <paramref name="protocolId"/> shall be one of the required protocols listed in the 
            <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/>.
            </remarks>
            <seealso cref="M:Fdt.Dtm.IO.IProcessData.EndGetProcessData(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IO.IProcessData.EndGetProcessData(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Requested process data related device information.</returns>
            <seealso cref="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument protocolId of <see cref="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IO.IProcessData.SetIOSignalInfo(System.Guid,System.String,System.String,System.Boolean)">
            <summary>
            Sets the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag"/> and <see cref="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked"/>
            of the addressed <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> to the passed values. 
            </summary>
            <param name="protocolId">Unique identifier of the protocol for which process data information shall be provided.</param>
            <param name="id"><see cref="P:Fdt.Dtm.IO.IOSignalInfo.Id"/> of the addressed IO signal info.</param>
            <param name="frameApplicationTag">String to be stored in the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag"/> property.</param>
            <param name="isLocked">Value to be stored in the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked"/> property.</param>
            <remarks>
            <para>
            This method shall only be called for IO signals provided by this DTM. It shall not be called for 
            IO signals provided by Child DTMs, which are referenced by <see cref="T:Fdt.Dtm.IO.RoutedProcessDataGroup"/> elements.
            </para>
            <para>
            The DTM shall store the set values in its instance data set. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument <paramref name="id"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument <paramref name="frameApplicationTag"/> is null.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="E:Fdt.Dtm.IO.IProcessData.ProcessDataChanged">
            <summary>
            Notification by a DTM that the information about its current available process data has changed
            (see also <see cref="M:Fdt.Dtm.IO.IProcessData.BeginGetProcessData(System.Guid,System.AsyncCallback,System.Object)"/>.
            </summary>
            <remarks>
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.IO.ProcessDataChangedEventHandler">
            <summary>
            References a method to be called when process data changed.
            </summary>
            <param name="dtmSystemTag">
            System Tag of the DTM that have raised the event.
            </param>
            <param name="protocolId">
            Unique identifier of the protocol for which the process data have changed. 
            </param>
            <param name="changedIOSignalInfos">
            Unique identifiers of the <see cref="T:Fdt.Dtm.IO.IOSignalInfo">IOSignalInfos</see> which have changed. 
            </param>
        </member>
        <member name="T:Fdt.Dtm.MessageType">
            <summary>
            This class provides type description for a message that is used within IDtmUiMessaging and IDtmMessaging interface. 
            It provides the information needed to serialize the messages.
            </summary>
            <remarks>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.MessageType.MsgType">
            <summary>
            Type of the message as a string.
            </summary>
            <remarks>
            This shall be the full qualified name of the type (including the name of the assembly).
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ModuleTypeInfo">
            <summary>
            The representation for a particular physical module type within the DTM is called DTM Module Type. 
            A DTM may contain one or more DTM Module Types. The concrete design and implementation 
            of the DTM Module Types is not in scope of FDT. This class provides only information about 
            these pieces of software like name, version, vendor, supported protocols etc.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ModuleTypeInfo.ModuleClassifications">
            <summary>
            Device classification domain groups (IEC 62390 AnnexG). 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.AddressInfo">
            <summary>
            Information about address(es) of the device which is represented by the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.AddressInfo.ProtocolId">
            <summary>
            Unique identifier of the protocol for which address information is provided.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.AddressInfo.DeviceAddresses">
            <summary>
            [Optional] Address(es) of the device in the network or fieldbus.  
            The property shall return null, if the used protocol does not define a 
            addressing mechanism (e.g. a peer-to-peer communication protocol).
            </summary>
            <remarks>
            <para>
            The property uses the protocol neutral <see cref="T:Fdt.Dtm.Network.DeviceAddress"/> class which
            supports to request the address information as string. However, the DTM shall
            use instances of corresponding protocol specific classes. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Network.DataLinkLayer">
            <summary>
            identifier for a physical layer of a fieldbus.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.DataLinkLayer.Id">
            <summary>
            Unique identifier of the data link layer
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.DataLinkLayer.Name">
            <summary>
            Human readable name of the data link layer
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.DeviceAddress">
            <summary>
            Abstract base class for protocol specific device address.
            </summary>
            <remarks>
            <para>
            This class contains the address of the device in the network or fieldbus. 
            </para>
            <para>
            This class provides a protocol neutral access to the address information, therefore it
            typically will  be used by the Frame Application if no protocol specific
            handling is needed.  
            </para>
            <para>
            <note>
            The derived class <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> provides a protocol specific
            access to the  information which is more type-safe. This class should be used
            whenever possible. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.DeviceAddress.Address">
            <summary>
            Protocol specific address defined in <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> as string.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.DeviceAddress.Id">
            <summary>
            This ID is used to relate the address to the corresponding <see cref="T:Fdt.Dtm.Network.NetworkData">Network Data</see> (see <see cref="P:Fdt.Dtm.Network.NetworkData.Id"/>).
            </summary>
            <remarks>
            <para>
            For network scan the value shall be set to 0 to indicate that the relation to the corresponding network data is unknown. Therefore, a DTM instance shall not use 0 as an id
            for a device address. 
            </para>
            <para>
            If there is only one address used by the device then 1 shall be used.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Network.DeviceAddress.GetAddress">
            <summary>
            Returns the address in a protocol neutral format.  
            </summary>
            <returns>The address in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.Network.DeviceAddress`1">
            <summary>
            Address of the device in the network or fieldbus. 
            </summary>
            <typeparam name="T">
            <para>
            Type of the protocol specific class (derived from 
            <see cref="T:Fdt.Dtm.Network.ProtocolDeviceAddress"/>) which  defines the protocol specific
            address properties. Instances of this class are aggregated  by this
            class (see <see cref="P:Fdt.Dtm.Network.DeviceAddress`1.ProtocolSpecificDeviceAddress"/> property).
            <note>
            These protocol specific properties are mapped to the 
            <see cref="P:Fdt.Dtm.Network.DeviceAddress.Address"/> property. 
            </note>
            </para>
            </typeparam>
        </member>
        <member name="P:Fdt.Dtm.Network.DeviceAddress`1.ProtocolSpecificDeviceAddress">
            <summary>
            Protocol specific device address which are used by this instance.  
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.DeviceAddress`1.ProtocolSpecificPropertiesCheck">
            <summary>
            Helper method the checks whether ProtocolSpecificDeviceAddress are specified. 
            The method throws a VerifyException if the property is null. 
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.DeviceAddress`1.GetAddress">
            <summary>
             Returns the address in a protocol neutral format. 
            </summary>
            <returns>The address in a protocol neutral format.</returns>
        </member>
        <member name="T:Fdt.Dtm.Network.DeviceAddressTypeAttribute">
            <summary>
            This attribute class exposes type information of protocol specific 
            <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> and <see cref="T:Fdt.Dtm.Network.ProtocolDeviceAddress"/> classes. 
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.DeviceAddressTypeAttribute.DeviceAddressType">
            <summary>
            Type information of protocol specific defined <see cref="T:Fdt.Dtm.Network.DeviceAddress`1"/> variant. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.DeviceAddressTypeAttribute.ProtocolDeviceAddressType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Dtm.Network.ProtocolDeviceAddress"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.ModuleInfo">
            <summary>
            Represents a hardware or software module of the device. It provides general information  
            like name, version, vendor and may also contain further 
            <see cref="P:Fdt.Dtm.Network.NetworkDataGroup.NetworkDataItems"/> providing protocol specific information. 
            </summary>
            <remarks>
            The module is uniquely identified by the property <see cref="P:Fdt.Dtm.Network.ModuleInfo.ModuleId"/>. This Id is referenced from several
            different Module... classes also provide information about the module. See:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Channels.ModuleChannelGroup"/></item>
                <item><see cref="T:Fdt.Dtm.DataAccess.ModuleDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Functions.ModuleFunctionGroup"/></item>
                <item><see cref="T:Fdt.Dtm.IO.ModuleProcessDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup"/></item>  
            </list>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.ModuleId">
            <summary>
            Unique identifier of the module within the namespace of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.Name">
            <summary>
            Name of the module. 
            </summary>
            <remarks>
            <para>
            The returned string shall match with the name of the represented module. 
            </para>
            <para>
            <note>
            If the Frame Application shows the module in the user interface, then this 
            string is typically displayed to the users.
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.Vendor">
            <summary>
            Vendor name of the module. 
            The returned string shall match with the vendor name of the represented module. 
            </summary>        
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.Version">
            <summary>
            Human readable version string of module. 
            The returned string shall match with version the represented module (e.g. firmware version). 
            </summary> 
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.ModuleIcons">
            <summary>
            [Optional] List of module icons.
            </summary>
            <remarks>
            <para>
            The list may contain different icons for i.e. conceptual representation of the device / module / block type.
            </para>
            <para>
            The icons shall be distinguishable by their <see cref="P:Fdt.Dtm.FdtIconInfo.SemanticInfo"/>.  
            A DTM shall provide at least an image for conceptual representation of a device, module or block.
            The Application Domain is "FDT" and the SemanticId is "conceptualImage".
            </para>
            <para>
            If the Frame Application wants to display different states of the device it shall use 
            overlay technique.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.Bitmaps">
            <summary>
            [Optional] List of module bitmaps. 
            </summary>
            <remarks>
            <para>
            The list may  contain different bitmaps for i.e. photo realistic representation of the 
            device / module / block type.
            </para>
            <para>
            The bitmaps shall be distinguishable by their <see cref="P:Fdt.Dtm.FdtBitmapInfo.SemanticInfo"/>.
            A DTM shall provide at least an image for photo realistic representation of a device, module or block.
            The Application Domain is "FDT" and the SemanticId is "photoRealisticImage".
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.ModuleInfo.Documents">
            <summary>
            [Optional] List of additional module related documents.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkData">
            <summary>
            Represents a single protocol independent network item. 
            </summary>
            <remarks>
            The network data is completely protocol independent. The protocol specific information is provided by
            protocol specific classes derived from <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/>.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkData.Id">
            <summary>
            Unique identifier of the network data entry in <see cref="P:Fdt.Dtm.Network.NetworkDataInfo.NetworkDataItems"/>.
            </summary>
            <remarks>
            <para>
            This ID is used to relate the network data to the corresponding <see cref="T:Fdt.Dtm.Network.DeviceAddress">Device Address</see> (see <see cref="P:Fdt.Dtm.Network.DeviceAddress.Id"/>).
            </para>
            <para>
            The id 0 is reserved for <see cref="T:Fdt.Dtm.Network.DeviceAddress">Device Address</see> instances returned by network scan operations. Therefore a DTM instance shall not assign id 0 to a <see cref="T:Fdt.Dtm.Network.NetworkData"/> item.
             </para>
            <para>If there is only one address used by the device, or if the bus protocol does not support addressing, then id 1 shall be used.</para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkData.IsWritable">
            <summary>
            Indicates whether the network data is writable.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkData.DeviceInformationDocuments">
            <summary>
            Optional list of protocol specific support files.
            </summary>
            <remarks>
            The referenced <see cref="T:Fdt.Dtm.Document"/> items represent information as defined by the protocol.
            For example, this could be a GSD file for Profibus devices or an EDS file for CIP devices.
            The actual content is specified by the protocol annex, and this list may be null if the 
            protocol does not specify any mandatory support files.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Network.NetworkData.GetIsWritable">
            <summary>
            Returns the protocol specific definitions if network data is writable.
            </summary>
            <returns>
            Returns true if the data is writable. Otherwise false is returned.
            </returns>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkData`1">
            <summary>
            Represents a single protocol independent network item. 
            </summary>
            <remarks>
            The network data is completely protocol independent. The real information is provided by
            protocol specific classes derived from <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/>.
            </remarks>
            <typeparam name="T">
            Type of the protocol specific class (derived from 
            <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/>) which  defines the protocol specific
            network data properties. Instances of this class are aggregated  by this
            class (see <see cref="P:Fdt.Dtm.Network.NetworkData`1.ProtocolSpecificNetworkData"/> property).
            </typeparam>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkData`1.ProtocolSpecificNetworkData">
            <summary>
            Protocol specific network data which is used by this instance.  
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.NetworkData`1.GetIsWritable">
            <summary>
            Defines whether the data is read-only.
            </summary>
            <returns>
            Returns <see langcref="true"/> if the data is writable. Otherwise <see langcref="false"/> is returned.
            </returns>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkDataGroup">
            <summary>
            Group of network data items provided by the DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataGroup.NetworkDataItems">
            <summary>
            Group of network data items provided by the DTM. 
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Network.NetworkData"/></item>
                <item><see cref="T:Fdt.Dtm.Network.NetworkDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Network.ModuleInfo"/></item>
            </list>
            </para>      
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkDataInfo">
            <summary>
            Contains network specific information about the device.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.ProtocolId">
            <summary>
            Unique identifier of the protocol for which network information is provided.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.SupportsNetworkInfoValidation">
            <summary>
            Shall be true if the DTM supports validation of network info by a 
            DTM which represents a bus master.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.NetworkDataItems">
            <summary>
            [Optional] List of network data items provided by the DTM. 
            The property shall return null, if the used protocol doesn't define network
            data.
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Network.NetworkData"/></item>
                <item><see cref="T:Fdt.Dtm.Network.NetworkDataGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Network.ModuleInfo"/></item>
            </list>
            </para>
            <para>
            Protocols with FDT 1 interoperability shall only specify one <see cref="T:Fdt.Dtm.Network.NetworkData"/>. 
            The <see cref="P:Fdt.Dtm.Network.NetworkData.Id"/> shall be '1'.
            </para>      
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.Label">
            <summary>
            [Optional] Protocol specific label (e.g. device tag, TAG)
            </summary>
            <remarks>
            If the protocol supports this label, then DTM shall update this property whenever the information is updated.
            This label may be used by the Frame Application to construct the DtmSystemGuiLabel.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.DeviceMayBeDisconnected">
            <summary>
            [Optional] Shall return true if device may be not connected (is configured for dynamic configuration).
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataInfo.DeviceIsDisconnected">
            <summary>
            [Optional] Shall be set to true if the physical device is currently not available for online communication.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkDataItem">
            <summary>
            Abstract base class for network data classes.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkDataTypeAttribute">
            <summary>
            This attribute class exposes type information of protocol specific 
            <see cref="T:Fdt.Dtm.Network.NetworkData`1"/> and <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/> classes. 
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataTypeAttribute.NetworkDataType">
            <summary>
            Type information of protocol specific defined <see cref="T:Fdt.Dtm.Network.NetworkData`1"/> variant. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.NetworkDataTypeAttribute.ProtocolNetworkDataType">
            <summary>
            Type information of class derived from <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/>.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.PhysicalLayer">
            <summary>
            identifier for a physical layer of a fieldbus.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.PhysicalLayer.Id">
            <summary>
            Unique identifier of the physical layer
            </summary>
            <remarks>
            In a mixed topology (FDT 1.2.x and FDT3 DTMs connected to each others) this property cannot always be provided.
            A DTM shall be able to handle a value of Guid.Empty.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.PhysicalLayer.Name">
            <summary>
            Human readable name of the physical layer
            </summary>
            <remarks>
            In a mixed topology (FDT 1.2.x and FDT3 DTMs connected to each others) this property cannot always be provided.
            A DTM shall be able to handle a value of 'unknown'.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Network.PhysicalLayer.CreateUnknownPhysicalLayer">
            <summary>
            Creates an instance of PhysicalLayer which represents an unknown physical layer.
            </summary>
            <returns>Returns a physical layer object which represents an unknown physical layer.</returns>
        </member>
        <member name="T:Fdt.Dtm.Network.Port">
            <summary>
            Represents a physical port of a device,
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.PhysicalLayers">
            <summary>
            Defines a list of physical media, which can be used to connect this port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.DataLinkLayers">
            <summary>
            Defines a list of supported data link layers (according to IEC61158 or OSI) supported by this port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.ChannelItems">
            <summary>
            [Optional] List of channel items supported by this port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.DataRefs">
            <summary>
            [Optional] References to data entries providing port attributes in <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.Descriptor">
            <summary>
            [Optional] DTM specific descriptor of the port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.Id">
            <summary>
            Unique identifier of the port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.Label">
            <summary>
            Label of the port.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.Name">
            <summary>
            Name of the port according to device-specific documentation.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.PortType">
            <summary>
            Type of the port. Possible values are defined in protocol-specific annexes.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.ProtocolSpecificPortValue">
            <summary>
            [Optional] List of protocol-specific name / value pairs providing protocol-specific attributes. 
            Supported attributes are defined in protocol-specific annexes.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.OpensNewLevel">
            <summary>
            Indicates whether this port opens a new level in the physical topology
            (e.g. head station with a backplane bus), or not.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.Port.MaxNoOfConnections">
            <summary>
            Maximum number of allowed connections for this port.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.Network.PortInfo">
            <summary>
            List of ports of a device.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.PortInfo.Ports">
            <summary>
            returns list of ports of a device
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.PortInfo.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.PortInfo.#ctor(Fdt.FdtList{Fdt.Dtm.Network.Port})">
            <summary>
            Constructor
            </summary>
            <param name="ports">list of ports</param>
        </member>
        <member name="T:Fdt.Dtm.Network.PortValue">
            <summary>
            Name / Value pair of a protocol specific port property
            </summary>
            <remarks>
            if this is not sufficient, i.e. more options needed than name/value pair
            this should be replaced by a protocol specific port
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Network.PortValue.ProtocolSpecificName">
            <summary>
            name of a protocol specific port property. May be defined in a protocol specific annex
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.PortValue.Value">
            <summary>
            value of a protocol specific port property
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.PortValue.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.PortValue.#ctor(System.String,System.String)">
            <summary>
            Construcor
            </summary>
            <param name="protocolSpecificName">Name of attribute as per protocol specific annex</param>
            <param name="value">current value of port attribute</param>
        </member>
        <member name="T:Fdt.Dtm.Network.ProtocolDeviceAddress">
            <summary>
            Abstract base class for protocol specific device addresses.
            </summary>
            <remarks>
            <para>
            Protocol specific classes derive from this class and define the specific
            address properties. However, these protocol specific properties can be access
            in a protocol neutral way by accessing corresponding property in <see cref="T:Fdt.Dtm.Network.DeviceAddress"/>.
            </para>
            <para>
            This base class defines the abstract TransformDeviceAddress method which shall be overridden by 
            the protocol specific class. These  method is called whenever the property <see cref="P:Fdt.Dtm.Network.DeviceAddress.Address"/> is 
            called at <see cref="T:Fdt.Dtm.DeviceIdentInfo"/>. The method shall transform the protocol specific 
            address information to a string values. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Network.ProtocolDeviceAddress.TransformDeviceAddress">
            <summary>
            Abstract method implemented in a derived class that transforms the bus protocol device address
            to a protocol neutral format.  
            </summary>
            <returns>Device address as string.</returns>
        </member>
        <member name="T:Fdt.Dtm.Network.ProtocolNetworkData">
            <summary>
            Abstract base class for protocol specific network data information classes.
            </summary>
            <remarks>
            <para>
            Protocol specific classes derive from this class and define the specific
            network data properties. 
            </para>
            <para>
            This base class defines the abstract GetIsWritable method which shall be overridden by 
            the protocol specific class. These  method is called whenever the property <see cref="P:Fdt.Dtm.Network.NetworkData.IsWritable"/> is 
            called at <see cref="T:Fdt.Dtm.Network.NetworkData"/>. The method shall define whether the protocol specific
            information is writable. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Network.ProtocolNetworkData.GetIsWritable">
            <summary>
            Abstract method which needs to be overridden by derived protocol 
            specific classes. The return value shall defined whether the data is read-only. 
            </summary>
            <returns>
            Returns true if the data is writable. Otherwise false is returned.
            </returns>
        </member>
        <member name="T:Fdt.Dtm.Network.INetworkData">
            <summary>
            This interface provides access to network management relevant information. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Network.INetworkData.ActiveProtocols">
            <summary>
            Specifies the protocol(s) that may be used for communication with parent DTM.
            </summary>
            <remarks>
            <para>
            The <c>ActiveProtocols</c> property shall be set by the Communication Channel after adding a Child DTM 
            or after moving a Child DTM to an other channel.
            </para>
            <para>
            This property enables a Communication Channel to choose the active protocols, that may be used by the DTM to connect to the device.
            If the Communication Channel is able to support different types of connections at the same time, it can provide a list of protocols.
            In such case the DTM can open a connection on any of the listed protocols. (The Device DTM may choose.)
            </para>
            <para>
            The active protocols in the list are represented by <see cref="T:Fdt.BusCategory"/> elements that shall be 
            of the <see cref="P:Fdt.BusCategory.CommunicationType"/> = <see cref="F:Fdt.BusCategory.CategoryType.Required"/> 
            and shall be taken from the <see cref="P:Fdt.Dtm.TypeInfo.BusCategories"/> list of the DTMs <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/>. 
            </para>
            <para>
            All <see cref="F:Fdt.BusCategory.CategoryType.Required"/> elements of the active type <see cref="P:Fdt.Dtm.TypeInfo.BusCategories"/> list 
            shall be provided as <c>ActiveProtocols</c> property value by default.
            </para>
            <para>
            For <see cref="F:Fdt.Dtm.DtmCategory.CommunicationDTM"/>s the <c>ActiveProtocols</c> property shall be set to <c>null</c> permanently. 
            </para>
            <para>
            Since this property is set immediately after a Child DTM is added to the topology, 
            it can be used by the DTM as a trigger to perform topology related operations after a new Child DTM is added to the topology or moved.
            Before this property is set, the DTM can not request any information from its Parent DTM or other DTMs in the topology.
            </para>
            <para>
            <note>Protocol specific annex documents may define specific behaviours for this method.</note>
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidValueException">The set property contains an invalid value.</exception>
        </member>
        <member name="M:Fdt.Dtm.Network.INetworkData.GetAddressInfo(System.Guid)">
            <summary>
            Returns address information about the device in the network or fieldbus which is 
            represented by this DTM.   
            </summary>
            <param name="protocolId">
            Unique identifier of the protocol for which process data information shall be provided.
            </param>
            <returns>Requested address information.</returns>
            <remarks>
            <para>
            The parameter <paramref name="protocolId"/> shall be one of the required protocols listed in the 
            <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/>. If the protocol doesn't define an addressing mechanism
            (e.g. a peer-to-peer communication protocol), then the returned <see cref="T:Fdt.Dtm.Network.AddressInfo"/> is empty.  
            If the device supports multiple addresses (e.g. redundant device), then the returned 
            <see cref="T:Fdt.Dtm.Network.AddressInfo"/> shall contain several address items. 
            </para>
            <para>
            The method <see cref="M:Fdt.Dtm.Network.INetworkData.SetAddressInfo(Fdt.Dtm.Network.AddressInfo)"/> can be used to set addresses contained in 
            the returned <see cref="T:Fdt.Dtm.Network.AddressInfo"/>. 
            </para>
            <para>
            If the address information has not yet been configured by the parent channel 
            the DTM shall return a default address information (e.g. slave address '0' for HART devices.)
            </para>
            <para>
            A DTM shall inform the Frame Application about address changes by raising the event 
            <see cref="E:Fdt.Dtm.Network.INetworkData.AddressInfoChanged"/>. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.Network.INetworkData.SetAddressInfo(Fdt.Dtm.Network.AddressInfo)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The <paramref name="protocolId"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.Network.INetworkData.SetAddressInfo(Fdt.Dtm.Network.AddressInfo)">
            <summary>
            Sets the value of a single device address returned by <see cref="M:Fdt.Dtm.Network.INetworkData.GetAddressInfo(System.Guid)"/>.
            </summary>
            <param name="deviceAddresses">Address which shall be set.</param>
            <remarks>
            <para>
            The method shall only be called with the correct protocol specific address class
            derived from <see cref="T:Fdt.Dtm.Network.ProtocolDeviceAddress"/> (same type like returned by <see cref="M:Fdt.Dtm.Network.INetworkData.GetAddressInfo(System.Guid)"/>). 
            </para>
            <para>
            The DTM shall store the set address in its instance data set. The event <see cref="E:Fdt.Dtm.Network.INetworkData.AddressInfoChanged"/>
            shall be fired to inform the Frame Application about the address changes. 
            </para>
            <para>
            If a parent channel is using <see cref="M:Fdt.Dtm.Network.INetworkData.SetAddressInfo(Fdt.Dtm.Network.AddressInfo)"/> and if the child DTM supports multiple addresses then the 
            parent channel shall ask the user to select which Address shall be changed. 
            The ability of the child DTM to support multiple address will defined in the protocol annex specification.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument <paramref name="deviceAddresses"/> contains an invalid value.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="M:Fdt.Dtm.Network.INetworkData.GetNetworkDataInfo(System.Guid)">
            <summary>
            Returns protocol specific network management information, for example used for configuration of the 
            fieldbus master or communication scheduler device.  
            </summary>
            <param name="protocolId">
            Unique identifier of the protocol for which network information shall be provided.
            </param>
            <returns>Requested (completely  protocol specific) network information.</returns>
            <remarks>
            <para>
            The parameter <paramref name="protocolId"/> shall be one of the required protocols listed in the 
            <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/>. If the protocol doesn't define network information
            (e.g. a peer-to-peer communication protocol), then the returned <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/> is empty.  
            </para>
            <para>
            The method <see cref="M:Fdt.Dtm.Network.INetworkData.SetNetworkData(Fdt.Dtm.Network.NetworkData)"/> can be used to set a single network data item contained in 
            the returned <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>. 
            </para>
            <para>
            If the network information has not yet been configured by the parent channel 
            the DTM shall return a default network information.
            </para>
            <para>
            A DTM shall inform the Frame Application about changes by raising the event 
            <see cref="E:Fdt.Dtm.Network.INetworkData.NetworkDataInfoChanged"/>. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.Network.INetworkData.SetNetworkData(Fdt.Dtm.Network.NetworkData)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.Network.INetworkData.SetNetworkData(Fdt.Dtm.Network.NetworkData)">
            <summary>
            Sets the value of a single network data item returned by <see cref="M:Fdt.Dtm.Network.INetworkData.GetNetworkDataInfo(System.Guid)"/>.
            </summary>
            <param name="networkData">Network data which shall be set.</param>
            <remarks>
            <para>
            The network data item returned by <see cref="M:Fdt.Dtm.Network.INetworkData.GetNetworkDataInfo(System.Guid)"/> is identified by the property 
            <see cref="P:Fdt.Dtm.Network.NetworkData.Id">NetworkData.Id</see>. This method shall only be called for items
            for which the <see cref="P:Fdt.Dtm.Network.NetworkData.IsWritable"/> property is set to true. 
            </para>
            <para>
            The method shall only be called with the correct protocol specific network data class
            derived from <see cref="T:Fdt.Dtm.Network.ProtocolNetworkData"/> (same type like returned by <see cref="M:Fdt.Dtm.Network.INetworkData.GetNetworkDataInfo(System.Guid)"/>). 
            </para>
            <para>
            The DTM shall store the set data in its instance data set. The event <see cref="E:Fdt.Dtm.Network.INetworkData.NetworkDataInfoChanged"/>
            shall be fired to inform the Frame Application about the changes. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument <paramref name="networkData"/> contains an invalid value.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="E:Fdt.Dtm.Network.INetworkData.AddressInfoChanged">
            <summary>
            Notification by a DTM that the address information has changed (see also <see cref="M:Fdt.Dtm.Network.INetworkData.GetAddressInfo(System.Guid)"/>.
            </summary>
            <remarks>
            <para>
            This notification shall be used by DTMs to inform the Frame Application about changed addresses. 
            </para>
            <para>
            A DTM shall fire this event only with the own System Tag (i.e. not for Child DTMs).
            </para>
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.Network.INetworkData.NetworkDataInfoChanged">
            <summary>
            Notification by a DTM that the network data information has changed (see also <see cref="M:Fdt.Dtm.Network.INetworkData.GetNetworkDataInfo(System.Guid)"/>.
            </summary>
            <remarks>
            This notification shall be used by DTMs to inform the Frame Application that the configuration
            of the bus-master or communication scheduler needs to be updated (Frame Application informs
            for example corresponding parent DTM about the changes). 
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Network.AddressInfoChangedEventHandler">
            <summary>
            References a method to be called when address information changed.
            </summary>
            <param name="dtmSystemTag">
            System Tag of the DTM that have raised the event. 
            </param>
            <param name="protocolId">
            Unique identifier of the protocol for which the device address(es) have changed. 
            </param>
            <param name="changedDeviceAddresses">
            Unique identifiers of the <see cref="T:Fdt.Dtm.Network.DeviceAddress">DeviceAddresses</see> which have changed. 
            </param>
        </member>
        <member name="T:Fdt.Dtm.Network.NetworkDataInfoChangedEventHandler">
            <summary>
            References a method to be called when network information changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="protocolId">
            Unique identifier of the protocol for which the device network data have changed. 
            </param>
            <param name="changedNetworkDataItems">
            Unique identifiers of the <see cref="T:Fdt.Dtm.Network.NetworkData"/> which have changed. 
            </param>
        </member>
        <member name="T:Fdt.Dtm.Network.IPorts">
            <summary>
            The interface allows to request a list of ports from the DTM.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Network.IPorts.BeginGetPortInfo(System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronous reading of the list of ports of a DTM.
            </summary>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Dtm.Network.IPorts.EndGetPortInfo(System.IAsyncResult)">
            <summary>
            Waits for pending asynchronous operation started by
            <see cref="M:Fdt.Dtm.Network.IPorts.BeginGetPortInfo(System.AsyncCallback,System.Object)"/> to complete and return a list of ports of the DTM.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>List of ports.</returns>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.BusMasterInfo">
            <summary>
            General bus master related information.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.BusMasterInfo.Id">
            <summary>
            Unique identifier for the device in the process image. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.BusMasterInfo.Label">
            <summary>
            Human readable label for the master device. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.BusMasterInfo.Descriptor">
            <summary>
            [Optional] Human readable string describing the bus master. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.BusMasterInfo.NetworkStatusRun">
            <summary>
            [Optional] Information about the status of the network (if it is running).  
            </summary>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup">
            <summary>
            Grouping process image items belonging to a specific device 
            connected to the field bus. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DtmSystemTag">
            <summary>
            Unique identifier of corresponding DTM in the Frame Application
            FDT topology. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusRun">
            <summary>
            [Optional] Information about the status of the device (if it is running). 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusDiagnostic">
            <summary>
            [Optional] Diagnostic information about the device. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup">
            <summary>
            Grouping process image items belonging to a specific device module
            connected to the field bus. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.DtmSystemTag">
            <summary>
            Unique identifier of corresponding DTM in the Frame Application
            FDT topology. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleId">
            <summary>
            Unique identifier of corresponding <see cref="T:Fdt.Dtm.Network.ModuleInfo">module</see> described in 
            <see cref="T:Fdt.Dtm.Network.NetworkDataInfo"/>.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusRun">
            <summary>
            [Optional] Information about the status of the device (if it is running). 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusDiagnostic">
            <summary>
            [Optional] Diagnostic information about the module. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageGroup">
            <summary>
            Groups process image information.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageGroup.ProcessImageItems">
            <summary>
            List of process image sections and groups included in this group.
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.ProcessImage.ProcessImageSection"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.ProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.StructProcessImageGroup"/></item>
            </list>
            </para>      
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageInfo">
            <summary>
            Information about the fieldbus master process image, which enables for example 
            engineering tools to map the device I/O signals to variables in an IEC program 
            for a PLC.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageInfo.BusMasterId">
            <summary>
            Unique identifier for the master device. 
            </summary>
            <remarks>
            This Id shall be the same like in corresponding <see cref="T:Fdt.Dtm.ProcessImage.BusMasterInfo"/>. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageInfo.ProcessImageItems">
            <summary>
            [Optional] List of process image sections and groups supported by the DTM 
            (respectively corresponding fieldbus master). 
            The property shall return null, if currently no process image information is available (depends
            on configuration and devices connected to the fieldbus).
            </summary>
            <remarks>
            <para>
            This list can contain following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.ProcessImage.ProcessImageSection"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.ProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup"/></item>
                <item><see cref="T:Fdt.Dtm.ProcessImage.StructProcessImageGroup"/></item>
            </list>
            </para>      
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageItem">
            <summary>
            Abstract base class for process image information. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageItem.Label">
            <summary>
            Human readable label for the Process Image item. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageItem.Descriptor">
            <summary>
            [Optional] Human readable string describing the process image item. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageSection">
            <summary>
            Represents a single process image section in which an IO signal is mapped. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageSection.BitLength">
            <summary>
            Length of the data in bit.
            </summary>
            <remarks>
            <para>
            If the process image section is used for a status information in 
            <see cref="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusRun"/>,  
            <see cref="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusRun"/> or
            <see cref="P:Fdt.Dtm.ProcessImage.BusMasterInfo.NetworkStatusRun"/> then  
            BitLength is normally 1 bit for saying any status data present.
            </para>
            <para>
            If the process image section is used for a diagnostic information in 
            <see cref="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusDiagnostic"/> or
            <see cref="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusDiagnostic"/>, then  
            BitLength is normally 1 bit for saying any status data present.
            It may be 8 bit if diagnostic data according NE107 is present. 
            The values of the used enumeration in case of NE107 should be:
            DIAGNOSIS_ACTIVE = 0
            MAINTENANCE_REQUIRED = 1
            FAILURE = 3
            OUT_OF_SPECIFICATION = 4
            CHECK_FUNCTION = 7
            DIAGNOSIS_PASSIVE = 254
            NOT_SUPPORTED = 255
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageSection.StartAddress">
            <summary>
            Address of the data in bit.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageSection.IOSignalInfo">
            <summary>
            Information of IO signal in the process image.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageSection.AddressOffset">
            <summary>
            [Optional] Offset inside an address section relative to its <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageSection.StartAddress"/>.
            </summary>
            <remarks>
            <note>
            The actual address of a data value is calculated by adding the
            <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageSection.StartAddress"/> and this "AddressOffset".
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageStatusSection">
            <summary>
            Represents a single process image section in which status of network or device/module is mapped. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.BitLength">
            <summary>
            Length of the data in bit.
            </summary>
            <remarks>
            <para>
            If the process image status section is used for a status information in 
            <see cref="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusRun"/>,  
            <see cref="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusRun"/> or
            <see cref="P:Fdt.Dtm.ProcessImage.BusMasterInfo.NetworkStatusRun"/> then  
            BitLength is normally 1 bit for saying any status data present.
            </para>
            <para>
            If the process image section is used for a diagnostic information in 
            <see cref="P:Fdt.Dtm.ProcessImage.ModuleProcessImageGroup.ModuleStatusDiagnostic"/> or
            <see cref="P:Fdt.Dtm.ProcessImage.DeviceProcessImageGroup.DeviceStatusDiagnostic"/>, then  
            BitLength is normally 1 bit for saying any status data present.
            It may be 8 bit if diagnostic data according NE107 is present. 
            The values of the used enumeration in case of NE107 should be:
            DIAGNOSIS_ACTIVE = 0
            MAINTENANCE_REQUIRED = 1
            FAILURE = 3
            OUT_OF_SPECIFICATION = 4
            CHECK_FUNCTION = 7
            DIAGNOSIS_PASSIVE = 254
            NOT_SUPPORTED = 255
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.StartAddress">
            <summary>
            Address of the data in bit.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.FrameApplicationTag">
            <summary>
            Human readable identifier set by the Frame Application. 
            </summary>
            <remarks>
            The DTM shall provide a reasonable default value, which can be overwrite 
            by the Frame Application (e.g. with the currently used variable name in 
            the PLC programming tool).
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.IsLocked">
            <summary>
            Indicates whether IO signal is locked in order to prevent further changes by the DTM.
            </summary>
            <value>
            TRUE indicates that further configuration changes affecting the IO signal 
            shall be prohibited. FALSE indicates that changes are allowed.
            </value>
            <remarks>
            This property is set by the Frame Application, for example because the signal is already 
            integrated into functional planning of the control system (e.g. corresponding PLC variable 
            exists). 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.Id">
            <summary>
            Unique identifier of this IO signal within the <see cref="T:Fdt.Dtm.ProcessImage.ProcessImageInfo"/>
            where it's contained. 
            </summary>
            <remarks>
            This Id shall for example be used for addressing of an IO signal for 
            <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.FrameApplicationTag"/> or <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.IsLocked"/> property setting. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.AddressOffset">
            <summary>
            [Optional] Offset inside an address section relative to its <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.StartAddress"/>.
            </summary>
            <remarks>
            <note>
            The actual address of a data value is calculated by adding the
            <see cref="P:Fdt.Dtm.ProcessImage.ProcessImageStatusSection.StartAddress"/> and this "AddressOffset".
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.StructProcessImageGroup">
            <summary>
            Grouping of process image items belonging to a structure IO signal. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.StructProcessImageGroup.BitLength">
            <summary>
            Length of the data in bit.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.StructProcessImageGroup.StartAddress">
            <summary>
            Address of the data in bit.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.StructProcessImageGroup.AddressOffset">
            <summary>
            [Optional]
            </summary>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.IProcessImage">
            <summary>
            This interface provides access to the description of the process image provided by a fieldbus master.
            </summary>
            <remarks>
            <para>
            The process image related information can be requested by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            The returned information, both the number and type, may depend on the configuration 
            and the Child DTMs in the FDT topology. 
            </para>
            <para>
            The interface only provides the description of the process image (where data is located inside of the image).
            It does not provide the possibility to read values from the process image.
            </para>
            <para>
            A DTM shall inform the Frame Application about changes by raising the event <see cref="E:Fdt.Dtm.ProcessImage.IProcessImage.ProcessImageChanged"/>. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.ProcessImage.IProcessImage.BusMasterInfo">
            <summary>
            Information about the bus master(s) which are represented by the DTM. 
            </summary>
            <remarks>
            Typically the DTM represents one master. If master supports several field busses then multiple 
            <see cref="T:Fdt.Dtm.ProcessImage.BusMasterInfo"/> elements are returned. 
            </remarks>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The set method is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The set method failed because BusMasterInfo contains an invalid value.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Requests the information about the process image which is created by the fieldbus master. 
            The result is provided by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.EndGetProcessImageInfo(System.IAsyncResult)"/>.
            </summary>
            <param name="masterId">
            Identifier of master for which process image information shall be returned
            (see <see cref="P:Fdt.Dtm.ProcessImage.IProcessImage.BusMasterInfo"/> property). 
            </param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <para>
            The information provided by this interface enables for example engineering tools to map the 
            device I/O signals to variables in an IEC program for a PLC.
            </para>
            <para>
            The process image related information can be requested by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            The returned information, both the number and type, depends on the fieldbus master configuration
            and the devices connected to the fieldbus. 
            </para>
            <para>
            A DTM shall inform the Frame Application about changes by raising the event <see cref="E:Fdt.Dtm.ProcessImage.IProcessImage.ProcessImageChanged"/>. 
            However, if Frame Application makes changes by calling <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.SetIOSignalInfo(System.String,System.String,System.Boolean)"/> this event shall 
            not be fired. In this case the Frame Application itself is responsible to notify dependent components 
            (e.g. Frame Application specific components referencing corresponding process image section etc.).
            </para>
            <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.CancelGetProcessImageInfo(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.EndGetProcessImageInfo(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.CancelGetProcessImageInfo(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.EndGetProcessImageInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.EndGetProcessImageInfo(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            Requested process image information. 
            </returns>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.CancelGetProcessImageInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.CancelGetProcessImageInfo(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.SetIOSignalInfo(System.String,System.String,System.Boolean)">
            <summary>
            Sets the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag"/> and <see cref="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked"/>
            of the addressed <see cref="T:Fdt.Dtm.IO.IOSignalInfo"/> to the passed values. 
            </summary>
            <param name="id"><see cref="P:Fdt.Dtm.IO.IOSignalInfo.Id"/> of the addressed IO signal info.</param>
            <param name="frameApplicationTag">String to be stored in the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.FrameApplicationTag"/> property.</param>
            <param name="isLocked">Value to be stored in the <see cref="P:Fdt.Dtm.IO.IOSignalInfo.IsLocked"/> property.</param>
            <remarks>
            <para>
            This method shall only be called for IO signals referenced by a <see cref="T:Fdt.Dtm.ProcessImage.ProcessImageSection"/> return by this DTM. 
            The DTM shall also forward the call to corresponding Child DTM by calling 
            <see cref="M:Fdt.Dtm.IO.IProcessData.SetIOSignalInfo(System.Guid,System.String,System.String,System.Boolean)">IProcessData.SetIOSignalInfo</see> for corresponding IO signal.
            </para>
            <para>
            The DTM shall store the set values in its instance data set. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument <paramref name="id"/> contains an invalid value.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginSetProcessImageInfo(System.String,Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Allows a Frame Application to set the information about the process image to the DTM representing a fieldbus master. 
            </summary>
            <remarks>
            <para>
            Typically a DTM representing a fieldbus master does not support the setting of the process image by the Frame Applications.
            This functionality is for special cases - e.g. if the Frame Application does an Optimization of the image - only.
            If a DTM does not support this functionality it shall throw an <see cref="T:Fdt.FdtOperationFailedException"/> in <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.EndSetProcessImageInfo(System.IAsyncResult)"/>.
            </para>
            </remarks>
            <param name="masterId">Identifier of master for which process image information shall be set
            (see <see cref="P:Fdt.Dtm.ProcessImage.IProcessImage.BusMasterInfo"/> property). </param>
            <param name="processImageDescription">The description of the process image.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProcessImage.IProcessImage.EndSetProcessImageInfo(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginSetProcessImageInfo(System.String,Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginSetProcessImageInfo(System.String,Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">An argument passed to <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginSetProcessImageInfo(System.String,Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> contains an invalid value.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="E:Fdt.Dtm.ProcessImage.IProcessImage.ProcessImageChanged">
            <summary>
            Notification by a DTM (representing a fieldbus master) that the process image information has changed
            (see also <see cref="M:Fdt.Dtm.ProcessImage.IProcessImage.BeginGetProcessImageInfo(System.String,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </summary>
            <remarks>
            <note>
            The number of changed events shall be limited by the DTM. Multiple changes shall lead to 
            one single changed event whenever possible.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.ProcessImage.ProcessImageChangedEventHandler">
            <summary>
            References a method to be called when process image information changed.
            </summary>
            <param name="dtmSystemTag">
            System Tag of the DTM that have raised the event.
            </param>
            <param name="masterId">Identifies process images which has changed.</param>
            <param name="changedProcessImageItems">
            List referencing the <see cref="T:Fdt.Dtm.ProcessImage.ProcessImageSection"/>s which have changed.
            </param>
        </member>
        <member name="T:Fdt.Dtm.ProtocolDeviceIdentInfo">
            <summary>
            Abstract base class for protocol specific device identification  properties. 
            </summary>
            <remarks>
            <para>
            Protocol specific classes derive from this class and define the specific
            device identification properties. However, these protocol specific properties can be access
            in a protocol neutral way by accessing corresponding properties in the <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/> class.
            </para>
            <para>
            This base class defines abstract methods which shall be overridden by the protocol
            specific classes. These  methods are called whenever corresponding property is 
            called at <see cref="T:Fdt.Dtm.DeviceIdentInfo"/>. Following methods shall transform the 
            protocol specific information to string values. 
            <list type="bullet">
                <item>TransformManufacturerId is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.ManufacturerId"/> string value.</item>
                <item>TransformDeviceTypeId is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.DeviceTypeId"/> string value.</item>
                <item>TransformSoftwareRevision is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/> string value.</item>
                <item>TransformHardwareRevision is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/> string value.</item>
                <item>TransformProtocolSpecificProperties is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolSpecificProperties"/> string values.</item>
            <item>TransformProtocolIdentificationProfile is called to request <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile"/> values.</item>
            </list>
            The methods shall return null, if the represented protocol doesn't define corresponding identification property.
            </para>
            <para>
            The method GetProtocolId shall return the the unique identifier of the protocol for which the
            ident information is provided. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.GetProtocolId">
            <summary>
            Abstract method implemented in a derived class that returns the unique identifier 
            of the protocol for which this identification information is provided. 
            </summary>
            <returns>Unique identifier of the protocol.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformManufacturerId">
            <summary>
            Abstract method implemented in a derived class that transforms the manufacturer ID
            to a protocol neutral format.  
            </summary>
            <returns>Manufacturer ID as string or regular expression.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformDeviceTypeId">
            <summary>
            Abstract method implemented in a derived class that transforms the device type ID
            to a protocol neutral format.  
            </summary>
            <returns>Device Type ID as string or regular expression.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformSoftwareRevision">
            <summary>
            Abstract method implemented in a derived class that transforms the software revision
            to a protocol neutral format.  
            </summary>
            <returns>Software revision as string or regular expression.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformHardwareRevision">
            <summary>
            Abstract method implemented in a derived class that transforms the Hardware revision
            to a protocol neutral format.  
            </summary>
            <returns>Hardware revision as string or regular expression.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformProtocolIdentificationProfile">
            <summary>
            Abstract method implemented in a derived class that transforms the Protocol Identification Profiles
            to a protocol neutral format.  
            </summary>
            <returns>A string describing the protocol identification profile used for identification of the device.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformProtocolSpecificProperties">
            <summary>
            Abstract method implemented in a derived class that transforms further protocol and 
            device vendor specific identifiers to a protocol neutral form.
            </summary>
            <returns>String and regular expression list.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceIdentInfo.TransformSingleValue``1(System.String,Fdt.Dtm.DeviceIdentValue{``0})">
            <summary>
            Helper method that transforms a single <see cref="T:Fdt.Dtm.DeviceIdentValue`1"/> property to the 
            protocol neutral DeviceIdentValue{string}.
            </summary>
            <param name="name">Protocol specific name of the ident property.</param>
            <typeparam name="T">Type used in the derived class for the <see cref="P:Fdt.Dtm.DeviceIdentValue`1.Value"/></typeparam>
            <param name="deviceIdentValue">Input DeviceIdentValue instance for the transformation.</param>
            <returns>Output of the transformation.</returns>
        </member>
        <member name="T:Fdt.Dtm.ProtocolDeviceScanInfo">
            <summary>
            Abstract base class for protocol specific scan  properties. 
            </summary>
            <remarks>
            <para>
            Protocol specific classes derive from this class and define the specific
            scan properties. However, these protocol specific properties can be access
            in a protocol neutral way by accessing corresponding properties in the <see cref="T:Fdt.Dtm.DeviceIdentInfo`1"/>.
            </para>
            <para>
            This base class defines abstract methods which shall be overridden by the protocol
            specific classes. These  methods are called whenever corresponding property is 
            called at <see cref="T:Fdt.Dtm.DeviceIdentInfo"/>. Following methods shall transform the protocol specific 
            information to string values. 
            <list type="bullet">
                <item>TransformManufacturerId is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.ManufacturerId"/> string value.</item>
                <item>TransformDeviceTypeId is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.DeviceTypeId"/> string value.</item>
                <item>TransformSoftwareRevision is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.SoftwareRevision"/> string value.</item>
                <item>TransformHardwareRevision is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.HardwareRevision"/> string value.</item>
                <item>TransformAddress is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.Address"/> string value.</item>
                <item>TransformSerialNumber is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.SerialNumber"/> string value.</item>
                <item>TransformTag is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.Tag"/> string value.</item>
                <item>TransformProtocolSpecificProperties is called to request <see cref="P:Fdt.Dtm.DeviceScanInfo.ProtocolSpecificProperties"/> string values.</item>
            </list>
            The methods shall return null, if the represented protocol doesn't define corresponding scan information.
            </para>
            <para>
            The method GetProtocolId shall return the the unique identifier of the protocol for which the
            scan information is provided. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.GetProtocolId">
            <summary>
            Abstract method implemented in a derived class that returns the unique identifier 
            of the protocol for which the scan information is provided. 
            </summary>
            <returns>The unique identifier of the protocol for which scan information is provided.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.GetPhysicalLayer">
            <summary>
            Abstract method implemented in a derived class that returns the physical layer 
            for which the scan information is provided. 
            </summary>
            <returns>The physical layer for which the scan information is provided.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformManufacturerId">
            <summary>
            Abstract method implemented in a derived class that transforms the manufacturer ID
            to a protocol neutral format.  
            </summary>
            <returns>Manufacturer ID as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformDeviceTypeId">
            <summary>
            Abstract method implemented in a derived class that transforms the device type ID
            to a protocol neutral format.  
            </summary>
            <returns>Device Type ID as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformSoftwareRevision">
            <summary>
            Abstract method implemented in a derived class that transforms the software revision
            to a protocol neutral format.  
            </summary>
            <returns>Software revision as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformHardwareRevision">
            <summary>
            Abstract method implemented in a derived class that transforms the Hardware revision
            to a protocol neutral format.  
            </summary>
            <returns>Hardware revision as string.</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.GetAddress">
            <summary>
            Abstract method implemented in a derived class that provides the address
            </summary>
            <returns>Address as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformSerialNumber">
            <summary>
            Abstract method implemented in a derived class that transforms the serial number
            </summary>
            <returns>Serial number as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformTag">
            <summary>
            Abstract method implemented in a derived class that transforms the device tag
            </summary>
            <returns>Device tag as string</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformProtocolSpecificProperties">
            <summary>
            Abstract method implemented in a derived class that transforms further protocol and 
            device vendor specific identifiers to a protocol neutral form.
            </summary>
            <returns>String and regular expression list</returns>
        </member>
        <member name="M:Fdt.Dtm.ProtocolDeviceScanInfo.TransformProtocolIdentificationProfile">
            <summary>
            Abstract method implemented in a derived class that transforms the Protocol Identification Profiles
            to a protocol neutral format.  
            </summary>
            <returns>A DeviceScanValue describing the protocol identification profile used for identification of the device.</returns>
        </member>
        <member name="T:Fdt.Dtm.RegularExpression">
            <summary>
            Regular expression that defines which physical device types are supported by a DTM Device Type.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.RegularExpression.Text">
            <summary>
            Regular expression text.  
            </summary>
            <remarks>
            <note>
            String shall be set according the Regular Expression Language defined for 
            the .NET Framework class <see cref="T:System.Text.RegularExpressions.Regex"/>.
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Reporting.ExecutableReport">
            <summary>
            Information about one specific report provided by the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ExecutableReport.ReportId">
            <summary>
            Identifier for the Report. 
            </summary>
            <remarks>
            Shall be unique within a DTM.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ExecutableReport.ContainsOnlineData">
            <summary>
            Specifies if the report contains online data.
            </summary>
            <remarks>
            If TRUE then the DTM needs to be able to communicate.  Therefore the
            Frame Application shall set the DTM at least into the state
            "communicationAllowed" before it requests a report which contains
            online data.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ExecutableReport.ApplicationId">
            <summary>
            [Optional] Specifies the type of provided report. 
            </summary>
            <remarks>
            <para>
            This property marks the report such that it is related to a so
            called "Standard FunctionItem".   The property shall be specified by
            the DTM, if provided report maps  to one of the defined 
            <see cref="P:Fdt.Dtm.Reporting.ExecutableReport.ApplicationId">ApplicationIds</see>.
            </para>
            <para>
            A Frame Application may  display an own label for the function and
            ignore  what is returned by <see cref="P:Fdt.Dtm.Reporting.ReportItem.Label"/>. However,
            the DTM shall always  provide a <see cref="P:Fdt.Dtm.Reporting.ReportItem.Label"/>, also
            if an ApplicationId is specified. 
            </para>
            <para>
            The <see cref="P:Fdt.Dtm.Reporting.ExecutableReport.ApplicationId"/> is used to reference one or more <see cref="T:Fdt.Dtm.Functions.ExecutableFunction"/> items. 
            The referenced function has the same value in the property <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId"/>.
            Functions, which do not execute one of the standard functions shall be referenced by using the <see cref="P:Fdt.Dtm.Reporting.ExecutableReport.LinkedFunctionId"/> property.
            </para>
            <para>
            If the referenced function is hidden (flag ‘hidden’ has value ‘TRUE’ for all referenced functions) 
            the Frame Application shall not offer the possibility to generate a report for this function.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ExecutableReport.LinkedFunctionId">
            <summary>
            [Optional] Identifier of the function which is linked to this report.
            </summary>
            <remarks>
            <para>
            This Id shall be one of the Ids used for an 
            <see cref="T:Fdt.Dtm.Functions.ExecutableFunction"/> provided by the DTM. 
            </para>
            <para>
            If the referenced function is hidden (flag ‘hidden’ has value ‘TRUE’ for all referenced functions) 
            the Frame Application shall not offer the possibility to generate a report for this function.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Reporting.ReportGroup">
            <summary>
            Group of DTM report descriptions. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ReportGroup.ReportItems">
            <summary>
            List of reports in this group.
            </summary>
            <remarks>
            A group shall not contain reports which have defined an 
            <see cref="T:Fdt.ApplicationId"/>.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.Reporting.ReportInfo">
            <summary>
            Provides information about reports provided by a DTM.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ReportInfo.AvailableReports">
            <summary>
            [Optional] List which contains the reports provided by the DTM.
            </summary>
            <remarks>
            <para>
            This list can contain following report types:
            <list type="bullet">
                <item><see cref="T:Fdt.Dtm.Reporting.ReportGroup"/></item>
                <item><see cref="T:Fdt.Dtm.Reporting.ExecutableReport"/></item>
            </list>
            </para>
            <para>
            Following rules shall be taken into account:
            <list type="bullet">
            <item>
                  The IDs of executable reports shall be unique in within the
                  report info.
            </item>
             <item>
                All reports for <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId">
                standard functions</see> provided  for the DTM itself shall be
                added to the root function list. 
            </item>
            <item>
                Standard functions with the same 
                <see cref="P:Fdt.Dtm.Functions.ExecutableFunction.ApplicationId"/> are  not allowed. 
             </item>
            </list>
            <note>
            The <see cref="M:Fdt.Dtm.Reporting.ReportInfo.Verify"/> method throws an exception if these rules
            are not followed. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.Reporting.ReportInfo.Verify">
            <summary>
            Override. Verifies uniqueness of report IDs.
            <see cref="P:Fdt.Dtm.Reporting.ReportInfo.AvailableReports"/>.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.Reporting.ReportInfo.VerifyList(Fdt.FdtList{Fdt.Dtm.Reporting.ReportItem},System.Boolean,System.Collections.Generic.Dictionary{System.Nullable{System.Int32},System.Int32})">
            <summary>
            Method used for recursively verification of the reports lists.
            </summary>
            <param name="reports">
            List which contains report items.
            </param>
            <param name="root"> Specifies if the current node is a root node.
            </param>
            <param name="reportIds"> dictionary which contains the Ids which are under verification.
            </param>
        </member>
        <member name="T:Fdt.Dtm.Reporting.ReportItem">
            <summary>
             Abstract base class for a report description class.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ReportItem.Label">
            <summary>
            The name of the report for an executable report or a report group that 
            will be displayed by the Frame Application for selection by the user.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.Reporting.ReportItem.Description">
            <summary>
            [Optional] A textual description which provides information about
            the content of the report for an executable report or a report group.
            </summary>
            <remarks>
            This description is typically used by the Frame Application to
            provide information such as tool tip.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.TypeInfo">
            <summary>
            Abstract base class used for definition of device type, block type or module type. 
            A DTM shall contain one or more TypeInfo objects.
            </summary>
            <para>
            TypeInfo shall contain one or several items of type:
            <see cref="T:Fdt.Dtm.TypeInfo"/> shall contain one or several items of type:
            <list type="bullet">
            <item><see cref="T:Fdt.Dtm.DeviceTypeInfo"/></item>
            <item><see cref="T:Fdt.Dtm.BlockTypeInfo"/></item>
            <item><see cref="T:Fdt.Dtm.ModuleTypeInfo"/></item>
            </list>
            </para>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.ProductName">
            <summary>
            Product name of the supported component: Device, Module or Block. 
            </summary>
            <remarks>
            <para>
            The returned string shall match with the name of the represented physical device, module or block type. 
            </para>
            <para>
            The name shall be unique within the name space of a DTM. It shall contain enough 
            information to distinguish between different device types and sub device types. 
            </para>
            <para>
            <note>
            This information is typically displayed to the users in the Frame Application.
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.ProductManufacturerName">
            <summary>
            Manufacturer name of the supported component: Device, Module or Block. 
            </summary>        
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.ProductRevision">
            <summary>
            Human readable Revision of the supported component: Device, Module or Block. 
            </summary> 
            <remarks>
            <para>
            The string should reflect e.g. <see cref="P:Fdt.Dtm.DeviceIdentInfo.SoftwareRevision"/>  and/or  <see cref="P:Fdt.Dtm.DeviceIdentInfo.HardwareRevision"/>
            because the user will use this to identify the range of supported revisions of the product. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Id">
            <summary>
            Unique identifier of this type. 
            </summary>
            <remarks>
            <para>
            This is a DTM specific unique identifier for the software related to the type. 
            Its value shall remain unchanged although some other information is updated 
            (e.g. <see cref="P:Fdt.Dtm.TypeInfo.ProductRevision"/>, <see cref="P:Fdt.Dtm.TypeInfo.ProductManufacturerName"/>, etc.). 
            This can be a result of a DTM update.
            </para>
            <para>
            The same identifier shall always be related to the same device, module or block type 
            as in the previous DTM version (e.g. to provide backward compatibility).
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.BusCategories">
            <summary>
            List of (field-)bus categories. Each can be supported or required.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.DatasetFormats">
            <summary>
            Used and supported dataset formats for data persistence.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.DtmCategory">
            <summary>
            Information about the category of the Type. 
            </summary>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.CommunicationSupport">
            <summary>
            Information about the communication capability of the type. 
            </summary>
            <remarks>
            If a type represents a passive device like e.g. a power supply which does not have communication capability 
            then the Frame Application shall not provide the possibility to set a device online.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Bitmaps">
            <summary>
            [Optional] List of images of the device/module/block.
            </summary>
            <remarks>
            <para>
            The list may  contain different bitmaps for i.e. photo realistic representation of the 
            device / module / block type.
            </para>
            <para>
            The bitmaps shall be distinguishable by their <see cref="P:Fdt.Dtm.FdtBitmapInfo.SemanticInfo"/>.
            A DTM shall provide at least an image for photo realistic representation of a device, module or block.
            The Application Domain is "FDT" and the SemanticId is "photoRealisticImage".
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Icons">
            <summary>
            [Optional] List of icons of the device/module/block.
            </summary>
            <remarks>
            <para>
            The list may contain different icons for i.e. conceptual representation of the device / module / block type.
            </para>
            <para>
            The icons shall be distinguishable by their <see cref="P:Fdt.Dtm.FdtIconInfo.SemanticInfo"/>.  
            A DTM shall provide at least an icon for conceptual representation of a device, module or block.
            The Application Domain is "FDT" and the SemanticId is "conceptualImage".
            </para>
            <para>
            If the Frame Application wants to display different states of the device it shall use 
            overlay technique.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Documents">
            <summary>
            [Optional] List of additional type related documents.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Descriptor">
            <summary>
            [Optional] Additional device specific information.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Date">
            <summary>
            [Optional] This property can be used to describe the device by using the DD Date or release date of the device.
            </summary>
            <remarks>
            <para>
            The format of the date shall be YYYY-MM-DD where YYYY is the year, MM is the month and DD is the day.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.TypeInfo.Roles">
            <summary>
            [Optional] This property can be used to determine, which multi roles (if any) are supported by this device (multi role device).
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DtmCategory">
            <summary>
            Specifies the category of a DTM. The different DTM categories
            reflect the physical entities which are represented by a DTM. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.DeviceDTM">
            <summary>
            A Device DTM contains the application software for a 'normal' field device, 
            e.g. a pressure transmitter or, a valve or a drive. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.CommunicationDTM">
            <summary>
            A Communication DTM is a special category of DTM containing the application 
            software for specific communication hardware. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.GatewayDTM">
            <summary>
            A Gateway DTM is a special category of DTM representing a device that connects 
            different fieldbus segments.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.CompositeDeviceDTM">
            <summary>
            A Composite DTM is a special category of DTM which is similar to a gateway DTM.
            A Composite DTM is the parent of a Module DTM and is intended to represent
            a header station of a modular device.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.ModuleDTM">
            <summary>
            A Module DTM is a special kind of DTM which is similar to a device DTM.
            A Module DTM is a child of a Composite DTM and is intended to represent
            a single module of a modular device.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DtmCategory.BlockTypeManager">
            <summary>
            A Block Type Manager (BTM) is a special category of DTM containing the application 
            software for accessible objects inside a device such as function blocks and resource blocks.
            It is a child of a Device DTM.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.CommunicationCapability">
            <summary>
            Specifies the communication capabilities of a device.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.CommunicationCapability.FieldDevice">
            <summary>
            The device is a field device (or communication device) which supports online communication.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.CommunicationCapability.PassiveDevice">
            <summary>
            The device is a passive device which does not support communication.
            </summary>
            <remarks>
            Typical examples for such  non-communicating devices are power supplies and media converters.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.AccessControl.ICustomConfiguration">
            <summary>
            Base interface for <see cref="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration"/> and <see cref="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration"/>.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginGetAllDataInfo(System.AsyncCallback,System.Object)">
            <summary>
            Requests information of all data items supported by the DTM for the active device type.
            </summary>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            All data items (even if they are not accessible in the current configuration of the DTM but may be accessible later, 
            e.g after changing the operation mode) have to be exported with this method.
            The access rights for these data items can then be configured by the Frame Application using <see cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginEnableParameters(Fdt.FdtList{Fdt.IdReference},System.AsyncCallback,System.Object)"/>.
            </para>
            <para>
            The DTM shall provide <see cref="T:Fdt.Dtm.DataAccess.AccessibleDataInfo"/> objects.
            </para>
            <para>
            This method is only allowed in DTM state "running".
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.EndGetAllDataInfo(System.IAsyncResult)"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration"/>
        </member>
        <member name="M:Fdt.Dtm.AccessControl.ICustomConfiguration.EndGetAllDataInfo(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginGetAllDataInfo(System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            Returns the requested data info <see cref="T:Fdt.Dtm.DataAccess.DataInfo"/>.
            </returns>
            <seealso cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginGetAllDataInfo(System.AsyncCallback,System.Object)"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration"/>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginEnableParameters(Fdt.FdtList{Fdt.IdReference},System.AsyncCallback,System.Object)">
            <summary>
            Requests to enable a list of parameters (data items) to be changeable.
            </summary>
            <param name="accessibleDataItemIds">The Ids of the items.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            By default all data items are not changeable in the expert user level.
            Using this method parameters (given by their IDs) can be made changeable.
            The configurations made using this method is NOT stored in the dataset. This means the Frame Application has to perform the configuration after loading the DTM (device type) instance.
            </para>
            <para>
            The configuration by BeginEnableParameters/EndEnableParameters is only allowed in state "running".
            The configuration must be made before any functions are executed on the DTM or any data access is performed.
            The configuration must be done only once after initializing or loading the DTM.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.EndEnableParameters(System.IAsyncResult)"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration"/>
        </member>
        <member name="M:Fdt.Dtm.AccessControl.ICustomConfiguration.EndEnableParameters(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginEnableParameters(Fdt.FdtList{Fdt.IdReference},System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            </returns>
            <seealso cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginEnableParameters(Fdt.FdtList{Fdt.IdReference},System.AsyncCallback,System.Object)"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration"/>
            <seealso cref="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration"/>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument acessibleDataItemIds of <see cref="M:Fdt.Dtm.AccessControl.ICustomConfiguration.BeginEnableParameters(Fdt.FdtList{Fdt.IdReference},System.AsyncCallback,System.Object)"/>() contains invalid Ids.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions (only allowed if user level is "expert").</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.AccessControl.IDeviceCustomConfiguration">
            <summary>
            This interface provides configuration for the "expert" user level to DTM device data items. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.AccessControl.IInstanceCustomConfiguration">
            <summary>
            This interface provides configuration for the "custom" user level to DTM instance data items. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.IChildDtmEvents">
            <summary>
            Interface used by the Frame Application to inform the DTM about events
            occurred in a Child DTM in the FDT topology. 
            </summary>
            <remarks>
            <para>
            This interface defines one method for each event. 
            </para>
            <para>
            The Child DTM which has fired the event is identified by the <see cref="P:Fdt.Dtm.IDtm3.DtmSystemTag"/>
            parameter which is passed as parameter to the methods in this interface. 
            <note>
            The System Tag shall be the same like passed in the <see cref="M:Fdt.Communication.ISubTopology.BeginChildAdded(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            call while the Child DTM was added to this DTM. 
            </note>
            </para>
            <para>
            The events in the Child DTMs shall be decoupled. That means the Frame Application shall not
            call the methods in this interface within the event handler.  
            </para>
            <para>
            The Frame Application shall only inform the direct parent using the methods of this interface. 
            It shall not inform the parent DTMs of the direct parent DTM.
            </para>
            <para>
            <note>
            Within a multi user environment, the notifications defined in this interface shall only be send to 
            one parent DTM instance. This notification must be send to the parent DTM which has the lock 
            (IDataset.StartTransaction was called) concerning the related instance data set. 
            </note>
            </para>
            <para>
            If currently no parent DTM is started, the Frame Application must start the parent DTM.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.AddressInfoChanged(System.Guid,System.Guid)">
            <summary>
            Method to be called by the Frame Application if the <see cref="E:Fdt.Dtm.Network.INetworkData.AddressInfoChanged"/> 
            event was fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="protocolId">
            Unique identifier of the protocol for which the device address has changed. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.NetworkDataInfoChanged(System.Guid,System.Guid,Fdt.FdtList{Fdt.IdReference})">
            <summary>
            Method to be called if the <see cref="E:Fdt.Dtm.Network.INetworkData.NetworkDataInfoChanged"/> event was
            fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="protocolId">
            Unique identifier of the protocol for which the device network data has changed. 
            </param>
            <param name="changedNetworkDataItems">
            Unique identifiers of the <see cref="T:Fdt.Dtm.Network.NetworkData"/> which have changed. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.ProcessDataInfoChanged(System.Guid,System.Guid,Fdt.FdtList{Fdt.IdReference})">
            <summary>
            Method to be called if the <see cref="E:Fdt.Dtm.IO.IProcessData.ProcessDataChanged"/> event was
            fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="protocolId">
            Unique identifier of the protocol for which the device network data has changed. 
            </param>
            <param name="changedIOSignalInfos">
            Unique identifiers of the <see cref="T:Fdt.Dtm.IO.IOSignalInfo">IOSignalInfos</see> which have changed. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.InstanceDataInfoChanged(System.Guid,Fdt.FdtList{Fdt.IdReference})">
            <summary>
            Method to be called if the <see cref="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged">IInstanceData.DataInfoChanged</see> 
            event was fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="changedAccessbileData">
            Unique identifiers of the <see cref="T:Fdt.Dtm.DataAccess.AccessibleData">AccessibleData</see> which have changed. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.InstanceDataValueChanged(System.Guid,Fdt.FdtList{Fdt.IdReference})">
            <summary>
            Method to be called if the <see cref="E:Fdt.Dtm.DataAccess.IInstanceData.DataValueChanged">IInstanceData.DataValueChanged</see> 
            event was fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="changedAccessbileData">
            Unique identifiers of the <see cref="T:Fdt.Dtm.DataAccess.AccessibleData">AccessibleData</see> which has changed its value. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.DeviceDataInfoChanged(System.Guid,Fdt.FdtList{Fdt.IdReference})">
            <summary>
            Method to be called if the <see cref="E:Fdt.Dtm.DataAccess.IData.DataInfoChanged">IDeviceData.DataInfoChanged</see> 
            event was fired by a Child DTM in the FDT topology. 
            </summary>
            <param name="childDtmSystemTag">
            Unique identifier of the Child DTM.
            </param>
            <param name="changedAccessbileData">
            Unique identifiers of the <see cref="T:Fdt.Dtm.DataAccess.AccessibleData">AccessibleData</see> which have changed. 
            </param>
        </member>
        <member name="M:Fdt.Dtm.IChildDtmEvents.GeneralChildDataChanged(System.Guid)">
            <summary>
            Method to be called if there is a FDT 1.2.x Child DTM which signals changes using IDtmEvents::OnParameterChanged.
            </summary>
            <remarks>
            <para>
            This method corresponds to the FDT 1.2.x method IFdtEvents::OnChildParameterChanged.
            </para>
            <para>
            The Frame Application shall not call this method for a FDT2 or FDT3 Child DTM.
            </para>
            </remarks>
            <param name="childDtmSystemTag">Unique identifier of the Child DTM.</param>
        </member>
        <member name="T:Fdt.Dtm.IComparison">
            <summary>
            This interface allows a Frame Application to request the DTM to compare the dataset with
            another dataset or with the data in the physical device.
            </summary>
            <remarks>
            <para>
            If a DTM does not provide the IComparison interface, then it shall publish at least all data relevant 
            for comparison in the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> / <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interfaces. 
            </para>
            <para>
            That a DTM cannot access a child or parent instance dataset during comparison.
            </para>
            <para>
            The comparison is executed for the data in the DTM dataset and the data that can be uploaded from the device. 
            The comparison should include all identification, configuration, and parameterization data. 
            Dynamic data and status data should not be included in the comparison.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IComparison.BeginInstanceDataCompare(Fdt.Frame.Storage.IDataset,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronously comparison of the current data set with another data set which is compatible.
            </summary>
            <param name="datasetToCompare">The data set which shall be compared with the one the DTM is currently using.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IComparison.EndInstanceDataCompare(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.CancelInstanceDataCompare(System.IAsyncResult)"/>
            <remarks>
            Note that a DTM can only compare a data set which has a format ID which is equals to the current format ID or to a supported format ID..
            </remarks> 
        </member>
        <member name="M:Fdt.Dtm.IComparison.CancelInstanceDataCompare(System.IAsyncResult)">
            <summary>
            Cancels the currently running comparison operation.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Dtm.IComparison.BeginInstanceDataCompare(Fdt.Frame.Storage.IDataset,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.EndInstanceDataCompare(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.IComparison.EndInstanceDataCompare(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Dtm.IComparison.BeginInstanceDataCompare(Fdt.Frame.Storage.IDataset,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>
            Details about the comparison result.
            </returns>
            <seealso cref="M:Fdt.Dtm.IComparison.BeginInstanceDataCompare(Fdt.Frame.Storage.IDataset,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.CancelInstanceDataCompare(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IComparison.CancelInstanceDataCompare(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidDatasetException">The dataset to compare is not supported by the DTM or is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IComparison.BeginDeviceDataCompare(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronously comparison of the current data set with values from the device.
            </summary>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IComparison.EndDeviceDataCompare(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.CancelDeviceDataCompare(System.IAsyncResult)"/>
            <remarks>
            The Frame Application shall set the DTM at least into state communicationAllowed before requesting Online Compare.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IComparison.CancelDeviceDataCompare(System.IAsyncResult)">
            <summary>
            Cancels the currently running online comparison operation.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Dtm.IComparison.BeginDeviceDataCompare(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.EndDeviceDataCompare(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.IComparison.EndDeviceDataCompare(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Dtm.IComparison.BeginDeviceDataCompare(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>
            Details about the comparison result.
            </returns>
            <seealso cref="M:Fdt.Dtm.IComparison.BeginDeviceDataCompare(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IComparison.CancelDeviceDataCompare(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IComparison.CancelDeviceDataCompare(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The scan operation fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.IDtm3">
            <summary>
            This is the main interface of a DTM. It defines the methods to control
            the DTM state-machine and general properties.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmInformation">
            <summary>
             Provides access to the <see cref="T:Fdt.Dtm.IDtmInformation"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmUiMessaging">
            <summary>
            [Optional] Provides access to the <see cref="T:Fdt.Dtm.IDtmUiMessaging"/> interface. 
            </summary>
            <remarks>
            It shall be provided for DTMs with user interfaces.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.HardwareInformation">
            <summary>
            Provides access to the <see cref="T:Fdt.Dtm.IHardwareInformation"/> interface. 
            </summary>
            <remarks>
            It shall be provided by by DTMs to request manufacturer specific identification 
            information from a field or communication device.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.OnlineOperations">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.IOnlineOperation"/> interface. 
            </summary>
            <remarks>
            It shall be provided for all devices which have online data and shall be loaded
            during commissioning.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.Channels">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.Channels.IChannels"/> interface. 
            </summary>
            <remarks>
            It shall be provided for all Communication and Gateway DTMs as well as for Composite DTMs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DeviceData">
            <summary>
            [Conditional] Provides access to the <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/>
            interface. 
            </summary>
            <remarks>
            It shall be provided for all devices which have online data.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.InstanceData">
            <summary>
             Provides access to the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.Functions">
            <summary>
             Provides access to the <see cref="T:Fdt.Dtm.Functions.IFunction"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.CommandFunction">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.Functions.ICommandFunction"/> interface. 
            </summary>
            <remarks>
            It shall be provided for DTMs that provide command functions.  
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.NetworkData">
            <summary>
             Provides access to the <see cref="T:Fdt.Dtm.Network.INetworkData"/> interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.ProcessData">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.IO.IProcessData"/> interface.
            </summary>
            <remarks>
            <para>
            The protocol specific Annex defines the rules for this interface.
            </para>
            <para>
            If the protocol supports process data and the respective device provides process data the DTM shall provide this interface.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.ProcessImage">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.ProcessImage.IProcessImage"/> interface. 
            </summary>
            <remarks>
            It shall be provided for DTMs which provide the layout of a process image 
            by a master device (e.g. Profibus Master or CIP Scanner)
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.ChildDtmEvents">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.IChildDtmEvents"/> interface. 
            </summary>
            <remarks>
            It shall be provided for all Communication and Gateway DTMs as well as for Composite DTMs.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.Comparison">
             <summary>
             [Conditional] Provides access to the <see cref="T:Fdt.Dtm.IComparison"/> interface. 
             </summary>
             <remarks>
             If a DTM does not provide the IComparison interface, then it shall publish at least all data relevant 
             for comparison in the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> / <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interfaces. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.Reporting">
            <summary>
             Provides access to the <see cref="T:Fdt.Dtm.IReporting"/> interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.NetworkInfoValidation">
             <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.INetworkInfoValidation"/> interface. 
             </summary>
             <remarks>
             This interface is optional. It is only implemented by DTMs which represent a 
             fieldbus Master and which are used in an automation system which supports changes 
             of the process image while the PLC is running.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.Ports">
            <summary>
            Provides access to the IPorts interface
            </summary>
            <remarks>
            This interface is optional.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmMessaging">
            <summary>
            [Optional] Reference to the IDtmMessaging interface.
            </summary>
            <remarks>
            The interface is provided for DTMs that need this interface for private DTM to DTM communication (Composite DTMs). 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.InstanceCustomConfiguration">
            <summary>
            [Optional] Reference to the IInstanceCustomConfiguration interface.
            </summary>
            <remarks>
            The interface is provided for DTMs that need this interface to support the Expert User Level. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DeviceCustomConfiguration">
            <summary>
            [Optional] Reference to the IDeviceCustomConfiguration interface.
            </summary>
            <remarks>
            The interface is provided for DTMs that need this interface to support the Expert User Level. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmUiManagement">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.IDtmUiManagement"/> interface. 
            </summary>
            <remarks>
            The interface shall be provided for DTMs with user interfaces.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.FdtVersion">
            <summary>
            FDT version supported by the DTM.  
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmSystemTag">
            <summary>
            Unique identification of DTM within the Frame Application. 
            </summary>
            <remarks>
            This Guid is passed to the DTM in the <see cref="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)"/> call during startup. 
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.DtmSystemGuiLabel">
            <summary>
            Unique human readable identifier of the DTM instance in the context of the Frame Application.
            </summary>
            <remarks>
            <para>
            This property is set by the Frame Application in order to specify a system label e.g. for a 
            message box or for a user interface which is part of the DTM and is not be embedded within a 
            Frame Application user interface.
            </para> 
            <para> 
            The Frame Application shall set the unique human readable identifier of the DTM instance in the 
            context of the Frame Application, which guarantees a unique identification between the device 
            and e.g. a message box of a DTM. The DTM shall use this system label for all kinds of windows 
            that will be opened by the DTM themselves. Maybe the DTM can extend this title with specific information.
            </para> 
            <para>
            The Frame Application shall call this service as early as possible. 
            </para>
            <para>
            The human readable identifier shall not be stored by the DTM. It is mandatory to update the labels 
            of all open windows if this property is set.
            </para>
            <para>
            NetworkDataInfo (e.g. Label) may be used as a base to construct the DtmSystemGuiLabel. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidValueException">The DtmSystemGuiLabel contains an invalid value.</exception>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.ActiveType">
            <summary>
            Information about the selected device, module or block type.
            </summary>
            <remarks>
            <para>
            The property shall always return the currently active 
            <see cref="T:Fdt.Dtm.DeviceTypeInfo">device</see>, 
            <see cref="T:Fdt.Dtm.ModuleTypeInfo">module</see>, or 
            <see cref="T:Fdt.Dtm.BlockTypeInfo">block</see> type information. 
            That means in case of a DTM software update the changed type shall be returned 
            (e.g. higher software version) instead of the type given during the
             <see cref="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)">Initialization</see> call.
            </para>
            <para>
            The DTM shall raise the event <see cref="E:Fdt.Dtm.IDtm3.ActiveTypeChanged"/> if the information returned by
            this property has changed. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="P:Fdt.Dtm.IDtm3.TraceLevel">
            <summary>
            This property defines the level of trace messages which shall be sent by the DTM 
            using <see cref="T:Fdt.Frame.ITrace"/>.
            <remarks>
            <para>
            The default value is 'Error'. 
            </para>
            <para>
            The property shall not be saved by the DTM. 
            </para>
            <para>
            It is set by the Frame Application.
            </para>
            </remarks>
            </summary>
            <exception cref="T:Fdt.FdtInvalidValueException">The value is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)">
            <summary>
            Initializes a DTM instance. 
            </summary>
            <param name="dtmInitData">Initialization Data needed by the DTM.</param>
            <param name="dtmSystemTag">Unique identification of the DTM within the Frame Application.</param>
            <param name="userInfo">Information regarding the user accessing the DTM.</param>
            <param name="frame">Reference to the Frame Application.</param>
            <param name="dtmRootPath">The root path of the DTM (full path).</param>
            <remarks>
            <para>
            This method is called by the Frame Application to initializes a DTM instance with information 
            regarding the user that is going to access the DTM, the identifier of the DTM and a reference 
            to itself.
            </para>
            <para>
            The <paramref name="dtmRootPath"/> shall be used by the DTM to find and load its related 
            assemblies and files. The DTM shall not store the <paramref name="dtmRootPath"/> in its dataset. 
            </para>
            <para>
            The <paramref name="dtmInitData"/> can be used by the DTM to pass initialization information to the DTM. 
            This information is defined in the dtm.manifest. 
            </para>
            <para>
            The <paramref name="dtmSystemTag"/> shall be used by the DTM to identify itself in events. 
            The DTM shall not store the <paramref name="dtmSystemTag"/> in its dataset to prevent side 
            effects if a Frame Application copies, moves, or deletes datasets. 
            </para>
            <para>
            The DTM shall adapt provided functionality according to the user level 
            specified in <paramref name="userInfo"/>. In case the expert user role (<see cref="F:Fdt.UserInfo.UserLevel.Expert"/>) is passed
            and the DTM does not support the expert role then all data items are not changeable in the expert user level.
            This means that the behavior is the same as for <see cref="F:Fdt.UserInfo.UserLevel.Observer"/>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.InitData(System.Guid,Fdt.Frame.Storage.IDataset)">
            <summary>
            Initializes the DTM dataset with default values.
            </summary>
            <param name="typeId">Unique identifier of the type represented by
            the DTM.</param>
            <param name="dataset">Reference to the DTM dataset.</param>
            <remarks>
            <para>
            This method is called by the Frame Application to initialize the DTM
            with the type that it  will represent and a reference to its
            dataset.
            </para>
            <para>
            The passed <paramref name="typeId"/> shall identify one of the 
            <see cref="T:Fdt.Dtm.TypeInfo"/> entries returned by 
            <see cref="M:Fdt.Dtm.IDtmInformation.EndGetSupportedTypes(System.IAsyncResult)"/> by its 
            <see cref="P:Fdt.Dtm.TypeInfo.Id"/>. The DTM shall store the information in
            its <paramref name="dataset"/> and expose corresponding type 
            information in the property <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/>. 
            </para>
            <para>
            The DTM shall create <see cref="T:Fdt.Frame.Storage.IDataSubset">data subsets</see> for
            the passed type and initializes these with default data.  
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidTypeIdException">The <paramref name="typeId"/> is not supported by the DTM.</exception>
            <exception cref="T:Fdt.FdtInvalidDatasetException">The <paramref name="dataset"/> is not supported by the DTM or is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.LoadData(Fdt.Frame.Storage.IDataset,System.Boolean,Fdt.FdtList{Fdt.Frame.ChangedTopologyNodes})">
            <summary>
            Loads DTM data from its dataset. 
            </summary>
            <param name="dataset">Reference to the DTM dataset.</param>
            <param name="isCloned">If true then the DTM is cloned.</param>
            <param name="newChildTopology">List of old and new child topology nodes. 
            Only valid for Parent DTMs and if <paramref name="isCloned"/> is true.</param>
            <remarks>
            <para>
            This method is called by the Frame Application to let the DTM load its data from 
            the passed dataset. The DTM performs the transition from state "initialized" to "running". 
            </para>
            <para>
            If a Parent DTM instance has cached the System Tags of its children and if it is cloned  
            then it shall rebuild its internal data structure which is used to manage Child DTMs. 
            For a quick rebuilding it shall use the <paramref name="newChildTopology"/> to replace 
            i.e. the old System Tags by the new ones. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDatasetException">The <paramref name="dataset"/> is not supported by the DTM or is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.LoadData(System.Guid,Fdt.Frame.Storage.IDataset)">
            <summary>
            Initializes the DTM with the new type and migrates the dataset in a reassignment scenario after a device exchange.
            </summary>
            <param name="dataset">Reference to the DTM dataset.</param>
            <param name="newTypeId">Unique identifier of the new type represented by the DTM.</param>
            <remarks>
            <para>
            This method shall be called by the Frame Application to let the DTM load its data from the 
            passed dataset. The DTM performs the transition from state "initialized" to "running". 
            </para>
            <para>
            The parameter <paramref name="newTypeId"/> specifies a new type which is different to the type 
            for which the data has been stored. 
            <note>
            The Frame Application is only allowed to pass a compatible type for reassignment. This means that the type Id of the old DTM which is replaced
            and the new type which is passed via <paramref name="newTypeId"/> need to be the same. Also, the new type need to be able to read the dataset 
            of the old one. This means that the <see cref="P:Fdt.Dtm.DatasetFormats.ReadSupported">supported dataset format</see> has to be the same as the original one. 
            </note>
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDatasetException">The <paramref name="dataset"/> is not supported by the DTM or is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidTypeIdException">The <paramref name="newTypeId"/> is not supported by the DTM.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.BeginConfiguration(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Frame Application shall call this method to instruct a DTM to perform its configuration. 
            This is typically the automatic creation of Child DTMs which represent mandatory modules.
            </summary>
            <remarks>
            The method shall be called after <see cref="M:Fdt.Dtm.IDtm3.InitData(System.Guid,Fdt.Frame.Storage.IDataset)"/> in state "configuring"
            If configuration succeeded <see cref="M:Fdt.Dtm.IDtm3.EndConfiguration(System.IAsyncResult)"/>, the DTM is configured and can be set to "running" by calling <see cref="M:Fdt.Dtm.IDtm3.Run"/> 
            </remarks>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndConfiguration(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.EndConfiguration(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtm3.BeginConfiguration(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <remarks>
            </remarks>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginConfiguration(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation failed. The DTM could not be configured properly.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.Run">
            <summary>
            Finishes the initialization of a DTM.
            Performs the DTM state machine transition from state "configuring" to "running".
            </summary>
            <remarks>
            <para>
            This method is called by the Frame Application after successful initialization with <see cref="M:Fdt.Dtm.IDtm3.InitData(System.Guid,Fdt.Frame.Storage.IDataset)"/> 
            and configuration with <see cref="M:Fdt.Dtm.IDtm3.BeginConfiguration(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> and <see cref="M:Fdt.Dtm.IDtm3.EndConfiguration(System.IAsyncResult)"/>.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginConfiguration(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndConfiguration(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The DTM is not configured properly.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.EnableCommunication2(Fdt.Frame.ICommunicationChannelProxy,Fdt.Dtm.ConnectMode,Fdt.Dtm.DeviceTypeCheckMode)">
            <summary>
            Indicates that the DTM is allowed to communicate with its device. 
            Performs the DTM state machine transition from state "running" to "communication allowed (notConnected)".
            </summary>
            <remarks>
            <para>
            This method is called by the Frame Application to allow the DTM to establish a communication 
            link with its device by calling <see cref="M:Fdt.Communication.ICommunication.BeginConnect(Fdt.Communication.ConnectRequest,Fdt.Communication.AbortCallback,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </para>
            <para>
            <note>
            To set up the chain for nested communication, the Frame Application shall start to call this 
            method top-down from the DTM, which acts as a root concerning the chain of interfaces for nested 
            communication. 
            </note>
            </para>
            </remarks>
            <param name="parentCommunicationChannel">Reference to the linked parent communication channel within the FDT topology. 
            A valid reference must be passed for Gateway and Device DTMs. For Communication DTMs (root node of the topology) NULL shall be passed.
            The DTM is able to check the supported communication protocols by calling <see cref="P:Fdt.Frame.ICommunicationChannelProxy.SupportedProtocols"/> 
            on the passed interface.  In general the Frame Application is responsible to establish a valid link between a Communication Channel 
            and a DTM, but this check may be for example necessary if a DTM supports multiple protocols and wants to find out which shall be used.
            </param>
            <param name="onlineConnectMode">Indicates the <see cref="T:Fdt.Dtm.ConnectMode"/> of the DTM. Depending on this mode, 
            the DTM stays connected or disconnects automatically as soon as the connection is not needed any more.
            </param>
            <param name="deviceTypeCheckMode">indicates whether the DTM shall perform the device type check or skip it. The Frame may request to skip the device type check 
            for performance reasons, in case the Frame is certain that the physical connection to the device has not been modified since the last time the Dtm has been connected.
            </param>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidCommunicationChannelException">Communication channel reference is not valid or does not support the required protocol.</exception>
            <seealso cref="M:Fdt.Dtm.IDtm3.DisableCommunication"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndStopCommunication(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.DisableCommunication">
            <summary>
            Indicates that the DTM is not allowed to communicate with its device any more. 
            Performs the DTM state machine transition from state "communication allowed (inactive)" to "running".
            The DTM shall release the parent communication channel. 
            </summary>
            <remarks>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtm3.EnableCommunication2(Fdt.Frame.ICommunicationChannelProxy,Fdt.Dtm.ConnectMode,Fdt.Dtm.DeviceTypeCheckMode)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndStopCommunication(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state. DTM must be in state communication allowed (inactive).</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Indicates that the DTM shall stop communicating with its device in order to disable communication. 
            </summary>
            <remarks>
            <para>
            After BeginStopCommunication is called, the DTM shall finish all active online operations and disconnect.
            When state "inactive" is entered, the callback method shall be called. 
            The Frame Application shall then call <see cref="M:Fdt.Dtm.IDtm3.EndStopCommunication(System.IAsyncResult)"/>.
            </para>
            </remarks>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndStopCommunication(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.EnableCommunication2(Fdt.Frame.ICommunicationChannelProxy,Fdt.Dtm.ConnectMode,Fdt.Dtm.DeviceTypeCheckMode)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.DisableCommunication"/>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.EndStopCommunication(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <remarks>
            </remarks>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtm3.DisableCommunication"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.BeginRelease(System.Boolean,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Informs the DTM to stop all active operations and close any open transactions. 
            </summary>
            <remarks>
            <para>
            Performs the DTM state machine transition from state "running" to state "releasing".
            In this state no new functions shall be started.
            Before calling BeginRelease all DTM user interfaces shall be closed and active DTM functions shall be terminated by 
            the Frame Application.
            </para>
            <para>
            Child DTMs shall be released before their parent DTM.
            </para>
            <para>
            When the DTM shall be deleted (<paramref name="deleteInstance"/>=true) the DTM 
            has to assume that it will not be instantiated again. The DTM shall then clean up i.e. its privatly 
            stored data. The Frame Application shall ensure that all data transactions related to this instance 
            dataset are terminated before calling BeginRelease.
            </para>
            <para>
            When the DTM shall not be deleted (<paramref name="deleteInstance"/>=false) the
            DTM has to assume that it will be instantiated again (e.g. because the Frame Application unloads 
            the DTM to save system memory). The DTM shall then keep i.e. its privatly stored data.
            </para>
            <para>
            When all active operations are terminated and the DTM is ready to be released, the callback method shall be called. 
            The Frame Application shall then call <see cref="M:Fdt.Dtm.IDtm3.EndRelease(System.IAsyncResult)"/>.
            </para>
            </remarks>
            <param name="deleteInstance">Indicates whether the instance shall be deleted and the DTM shall clean up private data.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IDtm3.EndRelease(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.EndRelease(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtm3.BeginRelease(System.Boolean,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <remarks>
            </remarks>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IDtm3.BeginRelease(System.Boolean,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtm3.GetDtmRoleAccess(System.Guid)">
            <summary>
            Returns an interface for role based access (for a DTM representing a multi role device).
            </summary>
            <param name="roleId">RoleId of the <see cref="T:Fdt.Role"/> which is requested by the caller.</param>
            <returns>An <see cref="T:Fdt.Dtm.IDtmRoleAccess"/> that provides role based access to DTM data via sub-interfaces.</returns>
            <exception cref="T:Fdt.FdtInvalidValueException">DTM does not support the requested role.</exception>
        </member>
        <member name="E:Fdt.Dtm.IDtm3.ActiveTypeChanged">
            <summary>
            Event raised by the DTM the information returned by <see cref="P:Fdt.Dtm.IDtm3.ActiveType"/> property has changed.
            </summary>
            <remarks>
            <para>
            The DTM shall raise this event if the information returned by this property has changed. 
            This may for example happen, if:
            <list type="bullet">
                <item>A DTM software update is made</item>
                <item>DTM connected to its device and determined more accurate type than passed in <see cref="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)">Init</see></item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.IDtm3.OnlineStateChanged">
             <summary>
             Event raised by the DTM if its online state has changed. 
             </summary>
             <remarks>
             <para>
             This event shall be used by DTMs to inform the Frame Application about changes of communication 
             link status. The DTM shall specify new online status and (optional) additional error information, 
             if status change was triggered by a communication error. 
             </para>
            <para>
             The information provided by this event is about the online state of the DTM. 
             The online state also includes substates that shall be shown according to the DTM styleguide.
             </para>
             </remarks>
        </member>
        <member name="E:Fdt.Dtm.IDtm3.DeviceTypeCheckFinished">
            <summary>
            Event raised by the DTM when a device type check has been performed. 
            </summary>
            <remarks>
            This event shall be used by DTMs to inform the Frame Application about the result of the device type check.
            This check is performed when an online connection is established. 
            The DTM may perform this check each time when a connection is established, only at the first time or even regularly.
            The event shall be fired each time when the check has been performed.
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.IDtm3.CommunicationInProgressChanged">
            <summary>
            Event raised by the DTM when it starts or stops to communicate with the device.
            </summary>
            <remarks>
            <para>
            This event can be used by the Frame Application to display e.g. an icon which informs the user that the DTM is currently communicating with the device.
            </para>
            <para>
            If this event is not fired the default is that no communication is going on.
            </para>
            </remarks>
            
        </member>
        <member name="T:Fdt.Dtm.ActiveTypeChangedEventHandler">
            <summary>
            References a method to be called when active TypeInfo changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM which has raised the event.</param>
            <param name="newType">The new Type after the change.</param>
        </member>
        <member name="T:Fdt.Dtm.OnlineStateChangedEventHandler">
            <summary>
            References a method to be called when DTM's internal online state changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that has raised the event.</param>
            <param name="onlineState">New online state of the DTM.</param>
            <param name="error">[Optional] Information about communication errors, e.g. caused the offline state. This parameter may be null.</param>
        </member>
        <member name="T:Fdt.Dtm.CommunicationInProgressChangedEventHandler">
            <summary>
            References a method to be called if DTM starts or stops to communicate with the device.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="isCommunicating">This shall be true if DTM is communicating with the device. If the DTM is not communicating with 
            the device any more this shall be false.</param>
        </member>
        <member name="T:Fdt.Dtm.DeviceTypeCheckFinishedEventHandler">
            <summary>
            References a method to be called when DTM has finished a device type check.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM that have raised the event.</param>
            <param name="checkResult">Result of device type check.</param>
        </member>
        <member name="T:Fdt.Dtm.ConnectMode">
            <summary>
            Enumeration which can be used by the Frame Application in order to influence how a DTM behaves with regard
            to establishment of a connection.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.ConnectMode.OnDemand">
            <summary>
            DTM shall connect on demand only and disconnect automatically when no online function is active any more.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.ConnectMode.StayConnected">
            <summary>
            DTM shall connect automatically and disconnect only after <see cref="M:Fdt.Dtm.IDtm3.BeginStopCommunication(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> has been called. 
            When the connection is aborted the DTM shall try to reconnect automatically.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.OnlineState">
            <summary>
            The OnlineState indicates the sub state of a DTM within state "communication allowed".
            </summary>
            <remarks>
            This enum is used for the online state machine of the DTM. It includes also the presentation states that are defined according to the styleguide.
            </remarks>
        </member>
        <member name="F:Fdt.Dtm.OnlineState.NotConnectedStandby">
            <summary>
            DTM has no active connection to the device and is in standby. 
            </summary>
        </member>
        <member name="F:Fdt.Dtm.OnlineState.Connecting">
            <summary>
            DTM is in the process of connecting to the device
            (request is send, but not yet finished).
            </summary>
        </member>
        <member name="F:Fdt.Dtm.OnlineState.ConnectedCheckingDevice">
            <summary>
            DTM has active connection to the device and is checking the device type.
            </summary> 
        </member>
        <member name="F:Fdt.Dtm.OnlineState.ConnectedOnline">
            <summary>
            DTM has active connection to the device and is online (device type has been checked sucessfully).
            </summary> 
        </member>
        <member name="F:Fdt.Dtm.OnlineState.Disconnecting">
            <summary>
            DTM is in the process of disconnecting from the device
            (request is sent, but not yet finished).
            </summary>
        </member>
        <member name="F:Fdt.Dtm.OnlineState.NotConnectedDisturbed">
            <summary>
            DTM is disconnected and disturbed.
            The disturbed state is reached after the occurrence of one of the following events:
            a. the connection could not be established
            b. the connection has been aborted by the parent channel
            c. the device type check has failed
            </summary>
        </member>
        <member name="F:Fdt.Dtm.OnlineState.Inactive">
            <summary>
            DTM is disconnected and prepared to disable communication.
            This state is reached after StopCommunication is completed.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceTypeCheckMode">
            <summary>
            The DeviceTypeCheckMode indicates how a dtm shall execute the device type check when going online.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceTypeCheckMode.PerformCheck">
            <summary>
            The dtm shall perform the device type check.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceTypeCheckMode.SkipCheck">
            <summary>
            The dtm shall skip the device type check.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceTypeCheckResult">
            <summary>
            The DeviceTypeCheckResult indicates the result of a device type check performed by a DTM after a connection has been established.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceTypeCheckResult.NotChecked">
            <summary>
            The device has/could not be checked.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceTypeCheckResult.UnsupportedDevice">
            <summary>
            The connected device is not supported by the DTM (ActiveType).
            </summary>
        </member>
        <member name="F:Fdt.Dtm.DeviceTypeCheckResult.SupportedDevice">
            <summary>
            The connected device type is supported by the DTM (ActiveType).
            </summary>    
        </member>
        <member name="T:Fdt.Dtm.IDtmAssemblyInfo">
            <summary>
            This interface is used to provide information about main DTM assemblies (assemblies
            providing objects with <see cref="T:Fdt.Dtm.IDtm3"/>, <see cref="T:Fdt.Dtm.IDtmInfoBuilder2"/> and <see cref="T:Fdt.Dtm.Functions.IStaticFunction2"/> interfaces).
            The Frame Application shall use this interface to retrieve information about the DTM assemblies, 
            e.g. in order to verify the assemblies against the DTM certification record. 
            The interface shall be implemented by the DtmInfoBuilder.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.IDtmAssemblyInfo.GetCoreAssemblies">
            <summary>
            Gets the list of DTM main assemblies.
            </summary>
            <returns>An <see cref="T:Fdt.FdtList`1"/> containing the requested <see cref="T:Fdt.Deployment.AssemblyInfo"/> items.</returns>
            <remarks>
            <para>
            This method is called by the Frame Application to retrieve information about DTM assemblies
            providing objects with IDtm2 and IDtmInfoBuilder2 interfaces.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmAssemblyInfo.GetStaticFunctionAssemblies">
            <summary>
            Gets the list of DTM static function assemblies.
            </summary>
            <returns>An <see cref="T:Fdt.FdtList`1"/> containing the requested <see cref="T:Fdt.Deployment.AssemblyInfo"/> items.</returns>
            <remarks>
            <para>
            This method is called by the Frame Application to retieve information about DTM assemblies
            providing objects with IStaticFunction2 interface.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="T:Fdt.Dtm.IDtmInfoBuilder2">
            <summary>
            This interface is used to initialize and shutdown a DtmInfoBuilder object.
            The Frame Application can use a DtmInfoBuilder to retrieve information about the DTM and its supported types. 
            IDtmInfoBuilder2 extends IDtmInfoBuilder in order to provide information about DTM assemblies.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IDtmInfoBuilder2.DtmAssemblyInfo">
            <summary>
            This interface is used to provide information about main DTM assemblies.
            </summary>
        </member>
        <member name="P:Fdt.Dtm.IDtmInfoBuilder2.StaticFunctions">
            <summary>
             [Optional] Provides access to the <see cref="T:Fdt.Dtm.Functions.IStaticFunctionInformation"/> interface. 
            </summary>
            <remarks>
            It shall be provided for DTMs that support static functions.
            Static functions allow processing information from a device without executing the DTM.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmInfoBuilder2.Init(System.String,System.String,Fdt.Frame.ITrace)">
            <summary>
            Initializes a DtmInfoBuilder instance. 
            </summary>
            <param name="dtmRootPath">Root path of DTM installation (full path).</param>
            <param name="dtmInitData">DTM specific initialization data (from dtm.manifest).</param>
            <param name="trace">Reference to the Trace interface of the Frame Application.</param>
            <remarks>
            <para>
            This method is called by the Frame Application to initializes a DtmInfoBuilder. 
            After this object is initialized, the Frame can access the IDtmInformation interface in order 
            to retrieve information about the DTM and its supported device types. 
            </para>
            <para>
            The <paramref name="dtmRootPath"/> shall be used by the DTM to find and load its related 
            assemblies and files. 
            </para>
            <para>
            The <paramref name="dtmInitData"/> can be used by the DTM to pass initialization information to the DTM. 
            This information is defined in the dtm.manifest. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="T:Fdt.Dtm.IDtmInformation">
            <summary>
            This interface provides general information about the DTM itself and the supported device types.
            </summary>
            <remarks>
            Usually this information is used by the Frame Application to create libraries, 
            select a DTM during creation of FDT topology, or for simple validations.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.GetDtmInfo">
            <summary>
            Returns general DTM type information like name, version, vendor and corresponding identification.  
            </summary>
            <returns>A <see cref="T:Fdt.Dtm.DtmInfo"/> object . 
            </returns>
            <remarks>
            <para>
            The representation for a particular device, module, or block type within the DTM is called DTM Type. 
            A DTM may contain one or more DTM Types. The concrete design and implementation of 
            the DTM  Types is not in scope of FDT. The returned <see cref="T:Fdt.Dtm.DtmInfo"/> instance only 
            contains a <see cref="T:Fdt.Dtm.TypeInfo"/> list providing information about these pieces of 
            software like name, version, vendor, supported protocols etc. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.BeginGetSupportedTypes(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Returns a list of TypeInfo objects descibing the supported types (devices, modules, blocks, etc.) of the DTM.  
            </summary>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation. The result 
            is provided by <see cref="M:Fdt.Dtm.IDtmInformation.EndGetSupportedTypes(System.IAsyncResult)"/> </returns>
            <remarks>
            <para>
            The representation for a particular device, module, or block type within the DTM is called DTM Type. 
            A DTM may contain one or more DTM Types. The concrete design and implementation of 
            the DTM  Types is not in scope of FDT. The returned <see cref="T:Fdt.Dtm.TypeInfo"/> list provides information about these pieces of 
            software like name, version, vendor, supported protocols etc. 
            </para>
            <para>
            The  information provided by <see cref="T:Fdt.Dtm.TypeInfo"/> shall also enable the Frame Application
            to differentiate between new DTM Type elements and updated DTM Type elements 
            when DTM software update takes place. For this purpose <see cref="T:Fdt.Dtm.TypeInfo"/> provides
            the <see cref="P:Fdt.Dtm.TypeInfo.Id"/> property, which shall return a unique identifier for the 
            DTM  Type. 
            <note>
            The property descriptions details the rules that shall be implemented for the 
            <see cref="T:Fdt.Dtm.TypeInfo"/> properties. 
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.EndGetSupportedTypes(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtmInformation.BeginGetSupportedTypes(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            A list with the <see cref="T:Fdt.Dtm.TypeInfo"/> objects describing the supported types.
            </returns>
            <seealso cref="M:Fdt.Dtm.IDtmInformation.BeginGetSupportedTypes(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.GetDeviceIdentInfo(System.Guid,Fdt.BusCategory)">
            <summary>
            Returns the Device Identification Information for the passed type and BusCategory.
            </summary>
            <param name="typeId">Unique identifier of the type for which information shall be returned. </param>
            <param name="busCategory">BusCategory for which information shall be returned.</param>
            <returns>Requested device identification information.</returns>
            <remarks>
            <para>
            The passed <paramref name="typeId"/> shall identify one of the <see cref="T:Fdt.Dtm.TypeInfo"/> 
            entries returned by <see cref="M:Fdt.Dtm.IDtmInformation.EndGetSupportedTypes(System.IAsyncResult)"/> by its <see cref="P:Fdt.Dtm.TypeInfo.Id"/>.
            </para>
            <para>
            There shall be separate DeviceIdentInfos returned for each 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile">protocol identification profile</see>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The requested protocol in argument <paramref name="busCategory"/> is not supported by the Device Type.</exception>
            <exception cref="T:Fdt.FdtInvalidTypeIdException">The <paramref name="typeId"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.GetFdtIcon(System.String)">
            <summary>
            Returns the device icon for the specified identifier. 
            </summary>
            <param name="id">Identifier of the icon to be returned.</param>
            <returns>The requested device icon.</returns>
            <remarks>
            The available icons are described in <see cref="P:Fdt.Dtm.TypeInfo.Icons"></see>.
            The parameter <paramref name="id"/> shall correspond to the <see cref="P:Fdt.Dtm.FdtIconInfo.Id"></see>
            The returned byte array contains the content of the corresponding icon file.
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The value of argument <paramref name="id"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmInformation.GetFdtBitmap(System.String)">
            <summary>
            Returns the device bitmap for the specified identifier. 
            </summary>
            <param name="id">Identifier of the bitmap to be returned.</param>
            <returns>The requested device bitmap.</returns>
            <remarks>
            The available bitmaps are described in <see cref="P:Fdt.Dtm.TypeInfo.Bitmaps"></see>.
            The parameter <paramref name="id"/> shall correspond to the <see cref="P:Fdt.Dtm.FdtBitmapInfo.Id"></see>
            The returned byte array contains the content of the corresponding bitmap file.
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The value of argument <paramref name="id"/> is invalid.</exception>
        </member>
        <member name="T:Fdt.Dtm.IDtmMessaging">
            <summary>
            Interface used for interaction between the DTM Business Logic of two DTMs (Composite and Module DTM).
            </summary>
            <remarks>
            <para>
            This interfaces provides an interaction channel between DTMs. It may be used in particular for composite DTMs.
            It is implemented by the DTM business logic.
            A DTM may request this interface from another DTM via the <see cref="T:Fdt.Frame.IDtmProxy"/> interface.
            The Frame Application shall only forward the messages between the DTMs. 
            </para>
            <para>
            The interface uses abstract message classes as request, response, and event parameters. DTMs shall provide
            own derived classes that realize the private interaction between DTMs.
            The classes shall support the <see cref="T:System.Runtime.Serialization.DataContractAttribute"/> attribute in order to enable the Frame Application
            to pass it over process and computer boundaries. 
            </para>
            <para>
            This interface shall not be misused to replace <see cref="T:Fdt.Communication.ICommunication"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmMessaging.PrivateMessageTypes">
            <summary>
            List of known message types.
            </summary>
            <remarks>
            This list includes all message types that are used by the DTM for private DTM messaging. 
            These types must be known by the Frame Application in order to do the serialization of messages.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)">
            <summary>
            Sends one or more messages to the DTM business logic. 
            </summary>
            <param name="requests">Request messages for the DTM business logic.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method takes one or more <see cref="T:Fdt.Dtm.DtmRequestMessage"/> objects as input parameter. DTM specific 
            request classes shall be derived from this class and used shall be used as input parameter(s) 
            in this method. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.CancelSendMessages(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.EndSendMessages(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IDtmMessaging.CancelSendMessages(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.IDtmMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.EndSendMessages(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmMessaging.EndSendMessages(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtmMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Response messages from the DTM business logic.</returns>
            <remarks>
            <para>
            This method returns one or more <see cref="T:Fdt.Dtm.DtmResponseMessage"/> parameter(s). DTM specific 
            response classes shall be derived from this class and shall be returned by this method. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtmMessaging.CancelSendMessages(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IDtmMessaging.CancelSendMessages(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.IDtmRoleAccess">
            <summary>
            This is the main interface for role based access (for a DTM representing a multi role device). 
            </summary>
            <remarks>
            It defines properties for retrieving role based interfaces.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.DeviceData">
            <summary>
            [Conditional] Provides multi role based access to the <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interface.
            </summary>
            <remarks>
            It shall be provided for all roles which have online data.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.InstanceData">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> interface.
            </summary>
            <remarks>
            This interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.Functions">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.Functions.IFunction"/> interface.
            </summary>
            <remarks>
            This interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.CommandFunction">
            <summary>
            [Optional] Provides multi role based access to the <see cref="T:Fdt.Dtm.Functions.ICommandFunction"/> interface.
            </summary>
            <remarks>
            It shall be provided for roles that provide command functions.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.NetworkData">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.Network.INetworkData"/> interface.
            </summary>
            <remarks>
            This interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.ProcessData">
            <summary>
            [Optional] Provides multi role based access to the <see cref="T:Fdt.Dtm.IO.IProcessData"/> interface.
            </summary>
            <remarks>
            <para>
            The protocol specific Annex defines the rules for this interface.
            </para>
            <para>
            If the protocol supports process data and the respective multi role provides process data the DTM shall provide this interface.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.Comparison">
            <summary>
            [Conditional] Provides access to the <see cref="T:Fdt.Dtm.IComparison"/> interface.
            </summary>
            <remarks>
            If a role does not provide the IComparison interface, then it shall publish at least all data relevant
            for comparison in the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> / <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interfaces.
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmRoleAccess.Reporting">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.IReporting"/> interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.IDtmUiManagement">
            <summary>
            Interface used by Frame Applications to manage the session between DTM Business Logic and DTM User Interfaces.
            </summary>
            <remarks>
            This interface is implemented by the DTM business logic.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmUiManagement.RegisterUserInterface(System.Int32,System.Guid)">
            <summary>
            Registers the opened user interface 
            </summary>
            <param name="functionId">The unique identifier that specifies the user interface function.</param>
            <param name="invokeId">The unique identifier that specifies the running instance of the user interface function. This identifier is assigned by Frame Application to the opening user interface.</param>
            <remarks>
            This method can be used by the DTM Business Logic as a trigger for updating its function list exposed in <see cref="T:Fdt.Dtm.Functions.IFunction"/>.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmUiManagement.UnregisterUserInterface(System.Guid)">
            <summary>
            Unregisters the closed user interface 
            </summary>
            <param name="invokeId">
            The unique identifier that specifies the closing instance of the user interface function. This identifier was assigned by Frame Application during the opening of the user interface.</param>
        </member>
        <member name="T:Fdt.Dtm.IDtmUiMessaging">
            <summary>
            Interface used for interaction between the DTM Business Logic and DTM User Interfaces.
            </summary>
            <remarks>
            <para>
            This interfaces is implemented by the DTM business logic and the Frame Application.
            The reference to the Frame Application implemented interface shall be provided to a DTM WebUi
            by means of the WebData connector.
            The Frame Application shall forward the messages between the DTM business logic and the DTM user interface. 
            </para>
            <para>
            The interface uses abstract message classes as request, response, and event parameters. DTMs shall provide
            own derived classes that realize the private interaction between the DTM business logic and user interfaces.
            The classes shall support the <see cref="T:System.Runtime.Serialization.DataContractAttribute"/> attribute in order to enable the Frame Application
            to pass it over process and computer boundaries. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IDtmUiMessaging.UiMessageTypes">
            <summary>
            List of known message types.
            </summary>
            <remarks>
            This list includes all message types that are used by the DTM for ui messaging. 
            These types must be known by the Frame Application in order to do the serialization of messages.
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IDtmUiMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)">
            <summary>
            Sends one or more messages to the DTM business logic. 
            </summary>
            <param name="requests">Request messages for the DTM business logic.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method takes one or more <see cref="T:Fdt.Dtm.DtmRequestMessage"/> as input parameter. DTM specific 
            request classes shall be derived from this class and used shall be used as input parameter(s) 
            in this method. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.CancelSendMessages(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.EndSendMessages(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IDtmUiMessaging.CancelSendMessages(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.IDtmUiMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.EndSendMessages(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IDtmUiMessaging.EndSendMessages(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IDtmUiMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Response messages from the DTM business logic.</returns>
            <remarks>
            <para>
            This method returns one or more <see cref="T:Fdt.Dtm.DtmResponseMessage"/> parameter(s). DTM specific 
            response classes shall be derived from this class and shall be returned by this method. 
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.BeginSendMessages(Fdt.FdtList{Fdt.Dtm.DtmRequestMessage},Fdt.ProgressCallback{Fdt.FdtList{Fdt.Dtm.DtmResponseMessage}},System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtmUiMessaging.CancelSendMessages(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IDtmUiMessaging.CancelSendMessages(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="E:Fdt.Dtm.IDtmUiMessaging.TransactionStarted">
            <summary>
            Event raised if another DTM instance has started a transaction (dataset is locked).
            </summary>
        </member>
        <member name="E:Fdt.Dtm.IDtmUiMessaging.TransactionCommitted">
            <summary>
            Event raised if another DTM instance has committed data in a transaction.
            </summary>
            <remarks>
            Keys of changed data subsets are passed in the event. The DTM shall re-read changed
            data from corresponding subsets.
            </remarks>
        </member>
        <member name="E:Fdt.Dtm.IDtmUiMessaging.TransactionClosed">
            <summary>
            Event raised if another DTM instance has closed a transaction (dataset is un-locked).
            </summary>
        </member>
        <member name="E:Fdt.Dtm.IDtmUiMessaging.DtmSpecificEventOccured">
            <summary>
            Event raised if one ore more DTM specific events occurred. 
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DtmUiEventOccuredEventHandler">
            <summary>
            References a method to be called when one ore more DTM specific events occurred. 
            </summary>
            <param name="eventMessages">DTM specific event messages containing information about occurred event.</param>
        </member>
        <member name="T:Fdt.Dtm.IHardwareInformation">
            <summary>
            This interface is used by Frame Application to request hardware identification information from a device.
            </summary>
            <remarks>
            <para>
            The interface is implemented to request manufacturer specific identification 
            information from a field device by Device DTMs.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IHardwareInformation.BeginHardwareScan(System.Guid,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Requests scan for corresponding identification information.
            </summary>
            <param name="protocolId">The protocol UUID to identify the protocol for which the scan shall be performed.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            Frame Application executes this function to request identification information.
            </para>
            <para>
            DTM shall connect to the device and request required information. 
            </para>
            <para>
            Protocol specific data types according to the requested protocol <paramref name="protocolId"/> shall be used for the returned data.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IHardwareInformation.EndHardwareScan(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IHardwareInformation.CancelHardwareScan(System.IAsyncResult)">
            <summary>
            Cancels an active asynchronous hardware scan request.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <remarks>
            <para>
            The DTM may not be able to cancel the action immediately after accepting the request, but it should do it as soon as possible.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.IHardwareInformation.BeginHardwareScan(System.Guid,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Dtm.IHardwareInformation.EndHardwareScan(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IHardwareInformation.BeginHardwareScan(System.Guid,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Result information about the scanned communication hardware or field device</returns>
            <remarks>
            The returned data contains error information if the scan hardware request failed.
            </remarks>
            <seealso cref="M:Fdt.Dtm.IHardwareInformation.BeginHardwareScan(System.Guid,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The scan operation fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IHardwareInformation.CancelHardwareScan(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.INetworkInfoValidation">
            <summary>
            In some automation systems it is a requirement to apply changes to the Network Info (which leads to a change in process image) 
            while the PLC is running. This interface provides the needed methods to validate if a potential change can be applied while the 
            PLC is running.
            </summary>
        </member>
        <member name="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Validates if a modification of the device configuration can be applied while the PLC is running.
            </summary>
            <param name="networkInfo">Information about the network data  which will be active after a change is applied.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            The validation needs to be done before the changes are applied. 
            </para>
            <para>
            The validation if the PLC needs to be stopped might be needed to be done in both the DTM which represents a fieldbus master 
            and the PLC Tool Frame Application itself.  
            </para>
            </remarks>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.CancelValidateNetworkInfo(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.EndValidateNetworkInfo(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.INetworkInfoValidation.CancelValidateNetworkInfo(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by <see cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.EndValidateNetworkInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.INetworkInfoValidation.EndValidateNetworkInfo(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            Returns True if the PLC does not need to be stopped if the Child DTM changes its configuration
            to the network data info provided by <see cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            Returns False if the PLC needs to be stopped.
            </returns>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.INetworkInfoValidation.CancelValidateNetworkInfo(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.INetworkInfoValidation.CancelValidateNetworkInfo(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument networkInfo of <see cref="M:Fdt.Dtm.INetworkInfoValidation.BeginValidateNetworkInfo(Fdt.Dtm.Network.NetworkDataInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() contains invalid data values.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Dtm.IOnlineOperation">
            <summary>
            This interface allows a Frame Application to request the DTM to exchange online data with the device.
            </summary>
            <remarks>
            <para>
            This interface is mandatory for all devices which have online data and shall be 
            loaded during commissioning.
            It provides the following operations:
            <list type="bullet">
                <item>Read online data from the device into the instance data set.</item>
                <item>Write online data from the instance data set to the device.</item>
                <item>Read status information from the device</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IOnlineOperation.SupportedTransfers">
            <summary>
            Information about the data transfers supported by the DTM.
            </summary>
            <remarks>
            <para>
            A DTM shall not change the value of this property. It shall be static over the lifetime of the DTM.
            </para>
            <para>
            The Frame Application should use this information e.g. to enable/disable the user interface elements which trigger upload/download. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.BeginReadDataFromDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Sends the request to read online data from a device.
            </summary>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.EndReadDataFromDevice(System.IAsyncResult)"/>
            <remarks>
            <para>
            Asynchronous function call that requires a DTM to upload parameters from the connected device. 
            </para>
            <para>
            This method synchronizes the instance data of the DTM with the actual data from the device.
            </para>
            <para>
            This method shall not be called several times in parallel. It shall not be called in parallel to 
            <see cref="M:Fdt.Dtm.IOnlineOperation.BeginWriteDataToDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.CancelReadDataFromDevice(System.IAsyncResult)">
            <summary>
            Cancels the active read request
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.
            </param>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDataFromDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <remarks>
            <para>
            The method cancels an active upload.  The DTM may not be able to
            cancel the action immediately after receiving the request,  but it
            should do so as soon as possible. In this case <see cref="M:Fdt.Dtm.IOnlineOperation.EndReadDataFromDevice(System.IAsyncResult)"/> 
            shall throw a <see cref="T:Fdt.FdtOperationCancelledException"/>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.EndReadDataFromDevice(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDataFromDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDataFromDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <remarks>
            <para>
            If an exception is thrown then the upload is invalid. Therefore the DTM shall not change
            its instance dataset in this situation. 
            </para>
            <para>
            In case of single read problems, DTM may proceed, 
            but dataset consistency shall be ensured. User can be informed to allow corrective measures.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The upload operation failed - e.g. because upload is not supported.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IOnlineOperation.CancelReadDataFromDevice(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">One of the communication transactions fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.BeginWriteDataToDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Sends the request to write online data to a device.
            </summary>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.EndWriteDataToDevice(System.IAsyncResult)"/>
            <remarks>
            <para>
            Asynchronous function call that requires a DTM to download parameters to the connected device. 
            </para>
            <para>
            This method synchronizes the data in the actual device with the instance data from the DTM.
            </para>
            <para>
            This method shall not be called several times in parallel. It shall not be called in parallel to 
            <see cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDataFromDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.CancelWriteDataToDevice(System.IAsyncResult)">
            <summary>
            Cancels the active write request.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.BeginWriteDataToDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <remarks>
            <para>
            The method cancels an active download.  The DTM may not be able to
            cancel the action immediately after receiving the request, but it
            should do so as soon as possible. In this case <see cref="M:Fdt.Dtm.IOnlineOperation.EndWriteDataToDevice(System.IAsyncResult)"/> shall 
            throw a <see cref="T:Fdt.FdtOperationCancelledException"/>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid <paramref name="asyncResult"/></exception>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.EndWriteDataToDevice(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IOnlineOperation.BeginWriteDataToDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.BeginWriteDataToDevice(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The download operation failed - e.g. because download is not supported.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IOnlineOperation.CancelWriteDataToDevice(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">One of the communication transactions fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtConfigurationErrorException">The operation can not be performed because of a wrong configuration.</exception>
            <exception cref="T:Fdt.FdtNoWriteAccessException">The write operation can not be performed because the data is not writable.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.BeginReadDeviceStatus(Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Triggers reading of the current status of the device.
            </summary>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.EndReadDeviceStatus(System.IAsyncResult)"/>
            <seealso cref="E:Fdt.Dtm.IOnlineOperation.DeviceStatusChanged"/>
            <remarks>
            <para>
            The DTM loads the current status from the device. Depending on the fieldbus protocol, 
            the DTM should additionally upload its actual diagnosis information. 
            Depending on this information the DTM provides a human readable status. 
            </para>
            <para>
            The function shall work without a user interface to allow the check of complete networks.
            </para>
            <para>
            A DTM instance which represents a block shall return the status of the related block.
            </para>
            <para>
            If supported by the protocol the event <see cref="E:Fdt.Dtm.IOnlineOperation.DeviceStatusChanged"/> should be used to actively inform the frame about the status change. 
            
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Dtm.IOnlineOperation.EndReadDeviceStatus(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDeviceStatus(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Status information of the device.</returns>
            <seealso cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDeviceStatus(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <remarks>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">One of the communication transactions fails with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="E:Fdt.Dtm.IOnlineOperation.DeviceStatusChanged">
            <summary>
            Event raised by the DTM when the device status changed.
            </summary>
            <remarks>
            <para>
            This event can be used by the Frame Application to provide diagnostic device status in the status area.
            </para>
            <para>
            If the event is not fired then the default is that no device status information is available.
            </para>
             <para>
            If the Frame Application is interested in up to date device status it shall use <see cref="M:Fdt.Dtm.IOnlineOperation.BeginReadDeviceStatus(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Dtm.SupportedTransfer">
            <summary>
             This enumeration provides values to describe the types of transfers provided by a DTM via IOnlineOperation.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.SupportedTransfer.None">
            <summary>
            The DTM does not support upload / download at all.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.SupportedTransfer.OnlyDownload">
            <summary>
            The DTM supports only writing data to the device. Reading data to the device is not supported.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.SupportedTransfer.OnlyUpload">
            <summary>
            The DTM supports only reading data from the device. Writing data to the device is not supported.
            </summary>
        </member>
        <member name="F:Fdt.Dtm.SupportedTransfer.BothUploadAndDownload">
            <summary>
            The DTM supports both reading values from the device and writing values to the device.
            </summary>
        </member>
        <member name="T:Fdt.Dtm.DeviceStatusChangedEventHandler">
            <summary>
            References a method to be called when the device status changed.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM which has raised the event.</param>
            <param name="newDeviceStatus">The new Type after the change.</param>
        </member>
        <member name="T:Fdt.Dtm.IReporting">
            <summary>
            This interface is used to report the current instance or device dataset of a DTM (online
            data allowed here), e.g. for printing or documentation.
            </summary>
            <remarks>
            The Frame Application may also generate reports using IInstanceData/IDeviceData interfaces
            </remarks>
        </member>
        <member name="P:Fdt.Dtm.IReporting.Reports">
            <summary>
            Provides access to a list with reports provided by the DTM.
            </summary>
            <remarks>
            The list of reports is static which means that the available reports shall not change 
            during the lifetime of the DTM BL object.
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronously creation of a report (e.g. for printing).
            </summary>
            <param name="reportId">
            The report ID of the report which shall be generated (<see cref="P:Fdt.Dtm.Reporting.ExecutableReport.ReportId"/>). 
            This shall be one of the reports provided by property <see cref="P:Fdt.Dtm.IReporting.Reports"/>.
            </param>
            <param name="directoryPath">
            URI to a writable location in the file system into which the DTM shall place the report 
            and all linked documents.
            </param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Dtm.IReporting.EndGenerateReport(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Dtm.IReporting.CancelGenerateReport(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Dtm.IReporting.CancelGenerateReport(System.IAsyncResult)">
            <summary>
            Cancels the currently running reporting.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to cancel.</param>
            <seealso cref="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IReporting.EndGenerateReport(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtCancelFailedException">The operation has been finished already or can not be canceled for other reasons.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
        </member>
        <member name="M:Fdt.Dtm.IReporting.EndGenerateReport(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>
            The name of the XHTML document which contains the report (returns only the file name without path).
            </returns>
            <seealso cref="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IReporting.CancelGenerateReport(System.IAsyncResult)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtOperationCancelledException"><see cref="M:Fdt.Dtm.IReporting.CancelGenerateReport(System.IAsyncResult)"/>() was called.</exception>
            <exception cref="T:Fdt.FdtCommunicationErrorException">The operation failed with communication errors.</exception>
            <exception cref="T:Fdt.FdtConnectRefusedException">The connect request has been refused.</exception>
            <exception cref="T:Fdt.FdtConnectionAbortedException">The connection has been aborted.</exception>
            <exception cref="T:Fdt.FdtDeviceTypeNotSupportedException">The type of the connected device is not supported by the DTM.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The argument directoryPath of <see cref="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument reportId of <see cref="M:Fdt.Dtm.IReporting.BeginGenerateReport(System.Int32,System.Uri,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.ProgId">
            <summary>
            ProgId of a COM object (e.g. FDT 1.2.x DTM).  
            </summary>
        </member>
        <member name="P:Fdt.ProgId.Id">
            <summary>
            ProgId of a COM object (e.g. FDT 1.2.x DTM). 
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.AuditTrailNotification">
            <summary>
            Represents the abstract base class for all <see cref="T:Fdt.Frame.AuditTrail.AuditTrailNotification"/> classes. 
            </summary>
            <remarks>
            It provides the ability to compose different AuditTrailNotifications in its subclasses.
            </remarks>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.AuditTrailUserNotification">
            <summary>
            A notification to be displayed to the user by the Frame UI in conjunction with an opened DTM UI.
            </summary>
            <remarks>
            A detailed description how to implement this notification functionality is provided by the FDT3 Styleguide. (Chapter about handling messages in Frame WebUi)
            </remarks>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.AuditTrailUserNotification.Message">
            <summary>
            Notification text.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.AuditTrailUserNotification.NeedsConfirmation">
            <summary>
            Indicates, this message is important and therefore the user has to confirm that the message was read.
            </summary>
            <remarks>
            The Frame Application is responsible for recording the time of the notification and the time of the user confirmation. The DTM will not be informed about the confirmation.
            </remarks>
        </member>
        <member name="M:Fdt.Frame.AuditTrail.AuditTrailUserNotification.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Fdt.Frame.AuditTrail.AuditTrailUserNotification.#ctor(System.String,System.Boolean)">
            <summary>
            Constructor with mandatory properties
            </summary>
            <param name="message">Notification text</param>
            <param name="needsConfirmation">Indicates, this message is important and therefore the user has to confirm that the message was read</param>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.FunctionEndNotification">
            <summary>
            Represents an <see cref="T:Fdt.Frame.AuditTrail.AuditTrailNotification"/> which is used to notify 
            the Frame Application about the end of a function which was executed.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.FunctionEndNotification.ExecutionResult">
            <summary>
            Details about the execution result of a function.
            </summary>
            <remarks>
            If the execution result is <see cref="F:Fdt.Frame.AuditTrail.FunctionExecutionResultState.Fail"/> then the
            property. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.FunctionEndNotification.FailureInfo">
            <summary>
            [Optional] Provides information about the reason why the function failed.
            </summary>
            <remarks>
            Only valid if <see cref="P:Fdt.Frame.AuditTrail.FunctionEndNotification.ExecutionResult"/> is  <see cref="F:Fdt.Frame.AuditTrail.FunctionExecutionResultState.Fail"/>.
            </remarks>
        </member>
        <member name="M:Fdt.Frame.AuditTrail.FunctionEndNotification.Verify">
            <summary>
            Overrides. Checks the rules defined for the properties <see cref="P:Fdt.Frame.AuditTrail.FunctionEndNotification.ExecutionResult"/>
            and <see cref="P:Fdt.Frame.AuditTrail.FunctionEndNotification.FailureInfo"/>.
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.FunctionExecutionResultState">
            <summary>
            Enumeration used to indicate the execution result of a function.
            </summary>
        </member>
        <member name="F:Fdt.Frame.AuditTrail.FunctionExecutionResultState.Cancel">
            <summary>
            The function was canceled.
            </summary>
        </member>
        <member name="F:Fdt.Frame.AuditTrail.FunctionExecutionResultState.Success">
            <summary>
            The function finished execution successfully.
            </summary>
        </member>
        <member name="F:Fdt.Frame.AuditTrail.FunctionExecutionResultState.Fail">
            <summary>
            The function execution failed.
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.FunctionNotification">
            <summary>
            Represents an <see cref="T:Fdt.Frame.AuditTrail.AuditTrailNotification"/> which is used to notify the 
            Frame Application about a function execution.
            </summary>
            <remarks>
            A function notification can be one of the following types:
            <list type="bullet">
                <item><see cref="T:Fdt.Frame.AuditTrail.FunctionStartNotification"/></item>
                <item><see cref="T:Fdt.Frame.AuditTrail.FunctionEndNotification"/></item>
            </list>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.FunctionNotification.Name">
            <summary>
            Informs about the name of the function.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.FunctionNotification.Descriptor">
            <summary>
            [Optional] Provides details about the function.
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.FunctionStartNotification">
            <summary>
            Represents an <see cref="T:Fdt.Frame.AuditTrail.AuditTrailNotification"/> which is used to notify 
            the Frame Application that a function is about to be started.
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.GeneralNotification">
            <summary>
            A general notification or comment that is used in scenarios like device status updates.
            </summary>
            <remarks>
            This shall only be used in case it is not a Function Notification or a Parameter Change Notification. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.GeneralNotification.Message">
            <summary>
            General Notification message.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.GeneralNotification.Descriptor">
            <summary>
            [Optional] Provides details about the function.
            </summary>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.ParameterChangeNotification">
            <summary>
            Represents an <see cref="T:Fdt.Frame.AuditTrail.AuditTrailNotification"/> which is used to notify 
            the Frame Application that a parameter value changed.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterChangeNotification.AfterChange">
            <summary>
            Informs about the state of the parameter after the change.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterChangeNotification.BeforeChange">
            <summary>
            [Optional] Informs about the state of the parameter before the change.
            </summary>
            <remarks>
            
            </remarks>
        </member>
        <member name="T:Fdt.Frame.AuditTrail.ParameterDescription">
            <summary>
            Used to encapsulate parameter specific information expected by the 
            <see cref="T:Fdt.Frame.AuditTrail.ParameterChangeNotification"/>.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterDescription.Name">
            <summary>
            Informs about the name of the parameter.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterDescription.Value">
            <summary>
            Informs about the value of a parameter.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterDescription.Descriptor">
            <summary>
            [Optional] Human readable string describing the parameter.
            </summary>
        </member>
        <member name="P:Fdt.Frame.AuditTrail.ParameterDescription.Unit">
            <summary>
            [Optional] Informs about the unit of a parameter.
            </summary>
        </member>
        <member name="M:Fdt.Frame.AuditTrail.ParameterDescription.VerifyPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Runtime.Serialization.DataMemberAttribute)">
            <summary>
            Override. Verifies that specified property is valid (e.g. has value if mandatory).
            Called by <see cref="M:Fdt.FdtDatatype`1.Verify"/> method for each property with the <see cref="T:System.Runtime.Serialization.DataMemberAttribute"/>.
            </summary>
            <param name="propertyInfo">The property to validate.</param>
            <param name="propertyValue">The property value to validate.</param>
            <param name="dataMemberAttribute">The <see cref="T:System.Runtime.Serialization.DataMemberAttribute"/> of the property.</param>
            <exception cref="T:Fdt.VerifyException">Exception thrown if property value is invalid.</exception>
            <remarks>
            The <c>VerifyPropertyValue</c> is overridden to allow set empty string as valid value of the <see cref="P:Fdt.Frame.AuditTrail.ParameterDescription.Value"/> property.
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ChangedTopologyNodes">
            <summary>
            Encapsulates a pair of Topology Nodes which allows to replace them
            if a Parent DTM is cloned together with all of its children.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ChangedTopologyNodes.OldTopologyNode">
            <summary>
            The old topology node.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ChangedTopologyNodes.NewTopologyNode">
            <summary>
            The new topology node.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ChildTopologyNodes">
            <summary>
            Child nodes of a specific DTM in the FDT topology.
            </summary>
            <remarks>
            The contains list of TopologyNodes shall be ordered.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ChildTopologyNodes.TopologyNodes">
            <summary>
            List of nodes in the FDT topology.
            </summary>
        </member>
        <member name="T:Fdt.Frame.Connection">
            <summary>
            Stores a port to port connection.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.Descriptor">
            <summary>
            [Optional] Human readable string describing the connection.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.Id">
            <summary>
            Unique identifier of this connection.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.Label">
            <summary>
            Human readable label.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.BusCategories">
            <summary>
            Bus categories communicating via this physical connection.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.SourcePort">
            <summary>
            Source port of the connection.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Connection.DestinationPort">
            <summary>
            Destination port of the connection.
            </summary>
        </member>
        <member name="M:Fdt.Frame.Connection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Fdt.Frame.Connection.#ctor(System.String,System.String,Fdt.FdtList{Fdt.BusCategory},Fdt.PortReference,Fdt.PortReference)">
            <summary>
            Constructor
            </summary>
            <param name="id">unique id</param>
            <param name="label">label</param>
            <param name="busCategories">supported bus categories</param>
            <param name="sourcePort">source port of connection (from)</param>
            <param name="destinationPort">destination port of connection (to)</param>
        </member>
        <member name="T:Fdt.Frame.Connection`1">
            <summary>
            Stores a port to port connection.
            </summary>
            <typeparam name="T">A <see cref="T:Fdt.Frame.ProtocolConnection"/> object.</typeparam>
        </member>
        <member name="P:Fdt.Frame.Connection`1.ProtocolSpecificConnection">
            <summary>
            Protocol specific connection information.
            </summary>
        </member>
        <member name="M:Fdt.Frame.Connection`1.#ctor(System.String,System.String,Fdt.FdtList{Fdt.BusCategory},Fdt.PortReference,Fdt.PortReference,`0)">
            <summary>
            Constructor
            </summary>
            <param name="id">unique id</param>
            <param name="label">label</param>
            <param name="busCategories">supported bus categories</param>
            <param name="sourcePort">source port of connection (from)</param>
            <param name="destinationPort">destination port of connection (to)</param>
            <param name="protocolConnection">protocol specific information</param>
        </member>
        <member name="T:Fdt.Frame.ConnectionTypeAttribute">
            <summary>
            This attribute class exposes type information of protocol specific
            <see cref="T:Fdt.Frame.Connection`1"/> class.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ConnectionTypeAttribute.ConnectionType">
            <summary>
            Connection of protocol specific defined <see cref="T:Fdt.Frame.Connection`1"/> variant.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ConnectionTypeAttribute.ProtocolConnectionType">
            <summary>
            Connection of class derived from <see cref="T:Fdt.Frame.ProtocolConnection"/>.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.CommunicationChannelNode">
            <summary>
            Represents a CommuniationChannel in the FDT Topology that is linked to 
            further Child DTM nodes. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.CommunicationChannelNode.Id">
            <summary>
            Unique identifier of the communication channel. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.CommunicationChannelNode.Label">
            <summary>
            Human readable label of the communication channel.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.CommunicationChannelNode.Descriptor">
            <summary>
            [Optional] Human readable description of the communication channel.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.CommunicationChannelNode.ChildDtmNodes">
            <summary>
            [Optional] List of the (child) DTM nodes contained in the topology.
            </summary>
            <remarks>
            The list may contain nodes representing FDT 1.2.x, FDT2 or FDT3 DTM. 
            <list type="bullet">
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt1DtmNode"/>
                is returned, if the node represents a FDT 1.2.x DTM.      
                </item>
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt2DtmNode"/>
                is returned, if the node represents a FDT2 DTM.    
                </item>
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt3DtmNode"/>
                is returned, if the node represents a FDT3 DTM.    
                </item>
            </list>
            <note>
            The property returns null if no Child DTMs are exported. 
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ImportExport.DtmNode">
            <summary>
            Abstract class for a DTM node in the FDT topology. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.DtmNode.DtmSystemGuiLabel">
            <summary>
            Human readable name of the DTM node in the exported topology. 
            </summary>
            <remarks>
            This information is intended for display in the Frame Application Topology. 
            By exporting this as a separate property of DtmNode the DTMs do not need to be started
            if the Frame Application wants to display the GUI Label.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.DtmNode.DtmSystemTag">
            <summary>
            Unique identification of the DTM within the exported topology. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.DtmNode.Address">
            <summary>
            The address of the device in a protocol independent format (string).
            </summary>
            <remarks>
            This information is intended for display in the Frame Application Topology. 
            By exporting this as a separate property of DtmNode the DTMs do not need to be started
            if the Frame Application wants to display the Address.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.DtmNode.ChannelNodes">
            <summary>
            [Optional] List of CommuniationChannel nodes which may be linked to 
            further Child DTM nodes. 
            </summary>
            <remarks>
            The property returns null if the DTM has no Communication Channels or 
            if no Child DTMs are available. 
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt1DtmNode">
            <summary>
            This class represents a FDT1.2.x DTM in a <see cref="T:Fdt.Frame.ImportExport.TopologyImportExport"/>.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt1DtmNode.DtmInfoXml">
            <summary>
            XML information about the DTM and its DTM Device Type 
            (string according the 'DTM' or 'BTM" XML element definition in the 
            FDT1.2.1 FDTTopologyImportExportSchema). 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt1DtmNode.Dataset">
            <summary>
            [Optional] XML string containing DTM dataset information 
            (string according the 'Stream' or 'PropertyBag" or 'ImportExport' XML element 
            definition in the FDT1.2.1 FDTTopologyImportExportSchema). 
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2DtmNode">
            <summary>
            This class represents a FDT2.x DTM in a <see cref="T:Fdt.Frame.ImportExport.TopologyImportExport"/>.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2DtmNode.DtmInfo">
            <summary>
            Information about the DTM which it represented by the node. 
            </summary>
            <remarks>
            <para>
            The Frame Application which imports the topology can search for corresponding registered DTM by comparing the
            <see cref="P:Fdt.Dtm.DtmInfo.Id">DtmInfo.Id</see> and <see cref="P:Fdt.Dtm.DtmInfo.Version">DtmInfo.Version</see> with
            corresponding information in the <see cref="T:Fdt.Dtm.DtmInfo">DtmManifest.DtmInfo</see>.
            </para>
            <para>
            The Frame Application can also search for an alternative DTM which supports the same 
            <see cref="P:Fdt.Dtm.TypeInfo.DatasetFormats"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2DtmNode.ActiveType">
            <summary>
            Information about the type (device, module, block) which it represented by the node. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2DtmNode.ImportExportDataset">
            <summary>
            [Optional] Dataset containing the exported DTM's Data.
            </summary>
        </member>
        <member name="M:Fdt.Frame.ImportExport.Fdt2DtmNode.Verify">
            <summary>
            Override.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.HardwarePlatform">
            <summary>
            Specifies the supported hardware platforms of an FDT 2.x assembly.
            </summary>
            <remarks>
            This enumeration is needed to represent an FDT2.x DTM in an import / export data structure.
            </remarks>
        </member>
        <member name="F:Fdt.Frame.ImportExport.Fdt2.HardwarePlatform.PC">
            <summary>
            The assemblies is supposed to work on a Windows PC.
            </summary>
        </member>
        <member name="F:Fdt.Frame.ImportExport.Fdt2.HardwarePlatform.Other">
            <summary>
            The assemblies is supposed to work on a platform which is not a Windows PC.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo">
            <summary>
            Information about a .NET Framework assembly used by FDT 2.x DTMs.
            </summary>
            <remarks>
            The properties of this class are the same as in th FDT2.x data type (AssemblyInfo).
            The class is used to represent an FDT2.x DTM in an import / export data structure.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.Name">
            <summary>
            File name of the DTM assembly (without .dll extension).
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.Version">
            <summary>
            Version of the assembly.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.PublicKeyToken">
            <summary>
            Specifies a 16-character hexadecimal string that represents the last 8 bytes of the 
            SHA-1 hash value of the public key under which the deployment manifest is signed. 
            The public key that is used to sign must be 2048 bits or greater.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.SupportedCLRVersions">
            <summary>
            .NET CLR versions for which this assembly was released.
            </summary>
            <remarks> 
            <para>
            Frame Application shall use the minor and major version numbers to check whether
            the DTM can be executed in the used .NET CLR. If the supported .NET version is
            incompatible then a surrogate shall be used.
            </para>
            <para>
            The CLR Version is not necessarily the same version as the .NET framework which 
            is used for implementation of a DTM.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.SupportedTargetPlatform">
            <summary>
            Information about the target platform supported by the DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.SupportedHardwarePlattform">
            <summary>
            Information about the hardware platform supported by the DTM. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2AssemblyInfo.Path">
            <summary>
            [Optional] Path to the DTM assembly. The path shall be relative to the 
            FDT defined DTM installation path.
            </summary>
            <remarks>
            The returned path shall have a leading and trailing backslash. 
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo">
            <summary>
            Legacy DtmInfo for FDT2 DTMs.
            </summary>
            <remarks>
            The properties of this class are the same as in th FDT2.x data type (DtmInfo).
            The class is used to represent an FDT2.x DTM in an import / export data structure.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.DtmRef">
            <summary>
            Reference to the DTM class (full name including also the namespace).
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.Name">
            <summary>
            Name of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.Vendor">
            <summary>
            Vendor of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.Id">
            <summary>
            Unique identifier for the DTM.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.Version">
            <summary>
            Software version of the DTM. 
            The datatype is defined in the .NET system namespace. 
            Major, Minor, Revision and Build numbers are defined in properties.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.FdtVersion">
            <summary>
            FDT version to which the DTM is compliant.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DtmInfo.ProgIdsOfSupportedFdt1Dtms">
            <summary>
            [Optional] List of COM ProgIDs of FDT 1.2.x DTMs for which the data stored via IPersistStream can be loaded.
            </summary>
            <remarks>
            <para>
            If this property is used then the DTM can access the data from a FDT 1.2.x DTM from a data subset which is accessible
            using the ProgID as key for IDataSet.InstanceData. The Frame Application is responsible to provide the data in IDataSet.InstanceData.
            </para>
            <para>
            A FDT 2 DTM which publishes ProgIDs of supported fDT 1.2.x DTMs has to support all DTM Device Types supported by the FDT 1.2.x DTM.
            </para>
            <para>
            It is strongly recommended to an FDT 2 DTM to support this if it replaces an existing FDT 1 DTM (i.e. to avoid time consuming reconfiguration or upload).
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.Fdt2DynamicClassReference">
            <summary>
            Information about an FDT2.x class e.g. a DtmInfoBuilder or DTM.
            </summary>
            <remarks>
            The properties of this class are the same as in th FDT2.x data type (DynamicClassReference).
            The class is used to represent an FDT2.x DTM in an import / export data structure.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DynamicClassReference.AssemblyInfo">
            <summary>
            Information about the assembly. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.Fdt2DynamicClassReference.ClassName">
            <summary>
            Name of the class (full name including also the namespace).
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.TargetCLR">
            <summary>
            This class represents a version for .NET CLR.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt2.TargetCLR.CLRVersionNumber">
            <summary>
            The CLR version number.
            </summary>
            <remarks>
            <para>
            Currently the following versions are supported:
            <list type="bullet">
                <item>4.0</item>
            </list>
            </para>
            <para>
            The major and minor digits are relevant only. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt2.TargetPlatform">
            <summary>
            Specifies the supported target platforms of the assembly.
            </summary>
            <remarks>
            Protocol specific data types shall always be built for 'Any' target.
            </remarks>
        </member>
        <member name="F:Fdt.Frame.ImportExport.Fdt2.TargetPlatform.Only32bit">
            <summary>
            The assembly supports 32 bit only.
            </summary>
        </member>
        <member name="F:Fdt.Frame.ImportExport.Fdt2.TargetPlatform.Any">
            <summary>
            The assembly supports 32bit and 64bit.
            </summary>
        </member>
        <member name="F:Fdt.Frame.ImportExport.Fdt2.TargetPlatform.Only64bit">
            <summary>
            The assembly supports 64 bit only.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.Fdt3DtmNode">
            <summary>
            This class represents a FDT3 DTM in a <see cref="T:Fdt.Frame.ImportExport.TopologyImportExport"/>.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt3DtmNode.DtmInfo">
            <summary>
            Information about the DTM which it represented by the node. 
            </summary>
            <remarks>
            <para>
            The Frame Application which imports the topology can search for corresponding registered DTM by comparing the
            <see cref="P:Fdt.Dtm.DtmInfo.Id">DtmInfo.Id</see> and <see cref="P:Fdt.Dtm.DtmInfo.Version">DtmInfo.Version</see> with
            corresponding information in the <see cref="T:Fdt.Dtm.DtmInfo">DtmManifest.DtmInfo</see>.
            </para>
            <para>
            The Frame Application can also search for an alternative DTM which supports the same 
            <see cref="P:Fdt.Dtm.TypeInfo.DatasetFormats"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt3DtmNode.ActiveType">
            <summary>
            Information about the type (device, module, block) which it represented by the node. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.Fdt3DtmNode.ImportExportDataset">
            <summary>
            [Optional] Dataset containing the exported DTM's Data.
            </summary>
        </member>
        <member name="M:Fdt.Frame.ImportExport.Fdt3DtmNode.Verify">
            <summary>
            Override.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.ImportExportDataset">
            <summary>
            Dataset containing the exported DTM Data Subsets.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataset.FormatId">
            <summary>
            Unique identifier for the format of the data.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataset.InstanceData">
            <summary>
            DTM instance related DataSubset
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataset.BulkData">
            <summary>
            [Optional] Bulk data related DataSubset
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.ImportExportDataSubset">
            <summary>
            The DataSubsets contains the exported binary DTM data.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataSubset.Key">
            <summary>
            Key of the subset in the dataset dictionary. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataSubset.Data">
            <summary>
            Binary DTM data.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.ImportExportDataSubset.Descriptor">
            <summary>
            [Optional] DTM specific descriptor of the data.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.SourceInfo">
            <summary>
            Information about the source of a topology export.
            </summary>
            <remarks>
            This class is intended to provide additional information about the exported topology, 
            e.g. to distinguish different exports.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ImportExport.SourceInfo.Id">
            <summary>
            Unique identifier of the project within the name space of the Frame Application.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.SourceInfo.Label">
            <summary>
            Human readable name of the project.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.SourceInfo.Description">
            <summary>
            Human readable description of the topology export source. This can be e.g. the name of the Frame Application.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ImportExport.TopologyImportExport">
            <summary>
            This class can be used for the data exchange between different 
            Frame Applications. It contains the FDT topology structure information
            as well as information about contained (FDT 1.2.x / 2.x / 3.x) DTMs and 
            their datasets. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.TopologyImportExport.SourceInfo">
            <summary>
            Information about the source of a topology export.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ImportExport.TopologyImportExport.DtmNodes">
            <summary>
            [Optional] List of the (root) DTM nodes contained in the topology.
            </summary>
            <remarks>
            The list may contain nodes representing FDT 1.2.x, FDT2 or FDT3 DTM. 
            <list type="bullet">
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt1DtmNode"/>
                is returned, if the node represents a FDT 1.2.x DTM.      
                </item>
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt2DtmNode"/>
                is returned, if the node represents a FDT2 DTM.      
                </item>
                <item><see cref="T:Fdt.Frame.ImportExport.Fdt3DtmNode"/>
                is returned, if the node represents a FDT3 DTM.    
                </item>
            </list>
            <note>
            The property returns null if no DTMs are exported. 
            </note>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.Storage.LockResult">
            <summary>
            Information about success or failure when trying to start 
            a transaction on a Fdt.Frame.Storage.IDataset.
            </summary>
            <remarks>
            If a transaction could not be started i.e. because another DTM instance has already an active transaction
            the property <see cref="P:Fdt.Frame.Storage.LockResult.IsLocked"/> shall be false and the property <see cref="P:Fdt.Frame.Storage.LockResult.Message"/> shall 
            contain a meaningful message which can be displayed by a DTM.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.Storage.LockResult.IsLocked">
            <summary>
            Informs about successfully locking of a  Fdt.Frame.Storage.IDataset.
            </summary>
            <remarks>
            <para>
            True if the Fdt.Frame.Storage.IDataset could be locked.
            </para>
            <para>
            False if a transaction could not be started i.e. because 
            another DTM instance has already an active transaction.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.Storage.LockResult.Message">
            <summary>
            [Optional] Meaningful error message if a transaction could not be started.
            </summary>
        </member>
        <member name="T:Fdt.Frame.Storage.DataSubsetInfo">
            <summary>
            Contains information about modified data subset in a TransactionCommitted event. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.Storage.DataSubsetInfo.Key">
            <summary>
            Gets or sets the data subset key.  
            </summary>
        </member>
        <member name="P:Fdt.Frame.Storage.DataSubsetInfo.Dictionary">
            <summary>
            Gets or sets the data subset dictionary (InstanceData or BulkData). 
            </summary>
        </member>
        <member name="P:Fdt.Frame.Storage.DataSubsetInfo.ModificationAction">
            <summary>
            Gets or sets the data subset modification action (Changed, Added or Deleted). 
            </summary>
        </member>
        <member name="T:Fdt.Frame.Storage.SubsetDictionary">
            <summary>
            Enumeration which is used to identify the data subset dictionary (InstanceData or BulkData) in a TransactionCommitted event.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Storage.SubsetDictionary.InstanceData">
            <summary>
            Instance related DataSubset.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Storage.SubsetDictionary.BulkData">
            <summary>
            Bulk data related DataSubset.
            </summary>
        </member>
        <member name="T:Fdt.Frame.Storage.DataSubsetModificationAction">
            <summary>
            Enumeration which is used to identify the action that was performed on a data subset 
            (Changed, Added or Deleted) in a TransactionCommitted event. 
            </summary>
        </member>
        <member name="F:Fdt.Frame.Storage.DataSubsetModificationAction.Changed">
            <summary>
            The data subset was changed. 
            </summary>
        </member>
        <member name="F:Fdt.Frame.Storage.DataSubsetModificationAction.Added">
            <summary>
            The data subset was added. 
            </summary>
        </member>
        <member name="F:Fdt.Frame.Storage.DataSubsetModificationAction.Deleted">
            <summary>
            The data subset was deleted. 
            </summary>
        </member>
        <member name="T:Fdt.Frame.Storage.IDataset">
            <summary>
            Interface used to read and store DTM instance specific data in a data set.
            </summary>
            <remarks>
            <para>
            A Dataset can have one or more DataSubsets <see cref="T:Fdt.Frame.Storage.IDataSubset"/> . The DataSubsets contain the actual 
            DTM persistent data. The DTM can explore and add or remove DTMDataSubSets. The DTMDataSubSets are identified by 
            an ID which is created by the DTM. The DTM can use the IDs to read or write the data.
            </para>
            <para>
            Which data is stored in a DataSubset is DTM specific. The DTM should group data belonging together in one 
            DataSubset and avoid loading of unnecessary data whenever possible, especially at start-up of the DTM. 
            Following kind of grouping should be considered:
            <list type="bullet">
                <item>Basic data which is needed during the complete DTM lifetime (e.g. Network Management Info) </item>
                <item>Device parameter group information which is needed if corresponding edit page is opened in the DTM offline parameterization user interface or Frame Application requests corresponding DataInfo objects.</item>
                <item>Process data information which is needed if Frame Application requests ProcessDataInfo objects.</item>
                <item>etc.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataset.FormatId">
            <summary>
            Unique identifier for the format of the data.
            </summary>
            <remarks>
            <para>
             A Frame Application can identify the format of a saved dataset by this property.
            </para>
            <para>
            This ID is created by the device (DTM) vendor. 
            The DTM shall use this information to decide how to load the data, e.g. to migrate the data from an older version.
            </para>
            <para>
            The DTM shall set this property and use the same identifier as returned in the 
            <see cref="P:Fdt.Dtm.TypeInfo.DatasetFormats"/>.Current property.
            </para>        
            <para>
            <note>
            Different DTMs can declare to support the same dataset format and a DTM can declare to support more than one format, 
            which can be used for the following scenario: 
            A DTM vendor can provide a concept, to migrate the data from an older to a newer DTM version. 
            The new DTM version declares to support the old format identifier as well as the new format identifier. 
            The Frame Application creates the new DTM, which loads the dataset, migrates the data and saves them 
            with the new format identifier. 
            A change of the dataset from supported FormatId to used FormatId as part of a DTM data migration scenario shall be part of the
            dataset migration transaction.
            </note>
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtNoWriteAccessException">The data object is not writable.</exception>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataset.InstanceData">
            <summary>
            DTM instance related DataSubset.
            </summary>
            <remarks>
            Instance-related data belongs to the DTM itself. It is up to the DTM which data it stores but the DTM 
            has to guarantee that it is able to represent the stored device instance by loading these data. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataset.BulkData">
            <summary>
            Bulk data related DataSubset.
            </summary>
            <remarks>
            DTM specific data, for example historical data, temporary data. 
            </remarks>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataset.StartTransaction">
            <summary>
            Starts a dataset transaction.
            </summary>
            <remarks>
            <para>
            A DTM shall start a transaction before execution of an operation that may lead to data changes 
            (e.g. opening of a parameterization user interface). A transaction locks the dataset in order to
            avoid parallel write access by another DTM instance (e.g. running on a different machine). 
            </para>
            <para>
            If locking was successful, then data changes are allowed. 
            </para>
            <para>
            If locking failed, e.g. because another DTM instance has already an active transaction, then no 
            data changes are allowed (e.g. opened user interface shall disable input fields).
            In this case all methods changing data in <see cref="P:Fdt.Frame.Storage.IDataset.InstanceData"/> and <see cref="P:Fdt.Frame.Storage.IDataset.BulkData"/>,
            for example setting new value to <see cref="M:Fdt.Frame.Storage.IDataSubset.WriteData(System.Byte[])"/>, result to <see cref="T:Fdt.FdtLockDatasetException"/> exceptions.
            </para>
            <para>
            DTMs shall only start transactions if data changes are needed and close the transactions as soon as possible
            by calling <see cref="M:Fdt.Frame.Storage.IDataset.CloseTransaction(System.Boolean)"/>.
            </para>
            </remarks>
            <returns>Information about success or failure of locking.</returns>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataset.CommitTransaction">
            <summary>
            Commits all changes made in <see cref="P:Fdt.Frame.Storage.IDataset.InstanceData"/> and <see cref="P:Fdt.Frame.Storage.IDataset.BulkData"/>.
            </summary>
            <remarks>
            <para>
            DTMs shall close transactions as soon as possible by calling <see cref="M:Fdt.Frame.Storage.IDataset.CloseTransaction(System.Boolean)"/>.
            </para>
            <para>
            This method does not unlock the dataset. The dataset keeps locked. Use this method if you want to commit data but keep the lock.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">Dataset transaction is not in appropriate state, e.g. transaction has not been started before.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataset.CloseTransaction(System.Boolean)">
            <summary>
            Closes the transaction and unlocks the instance dataset.
            </summary>
            <param name="commitData">Defines whether uncommitted data shall be committed when the the transaction is closed.</param>
            <exception cref="T:Fdt.FdtInvalidStateException">Dataset transaction is not in appropriate state, e.g. transaction has not been started before.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="E:Fdt.Frame.Storage.IDataset.TransactionStarted">
            <summary>
            Event raised if another DTM instance has started a transaction (dataset is locked).
            </summary>
        </member>
        <member name="E:Fdt.Frame.Storage.IDataset.TransactionCommitted">
            <summary>
            Event raised if another DTM instance has committed data in a transaction.
            </summary>
            <remarks>
            Keys of changed data subsets are passed in the event. The DTM shall re-read changed
            data from corresponding subsets.
            </remarks>
        </member>
        <member name="E:Fdt.Frame.Storage.IDataset.TransactionClosed">
            <summary>
            Event raised if another DTM instance has closed a transaction (dataset is un-locked).
            </summary>
        </member>
        <member name="T:Fdt.Frame.Storage.IDataSubset">
            <summary>
            The DataSubsets contain the actual DTM persistent data.
            </summary>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataSubset.Key">
            <summary>
            Key of the subset in the dataset dictionary. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataSubset.Descriptor">
            <summary>
            DTM specific descriptor of the data.
            </summary>
            <remarks>
            <para>
            Unlike the key of the subset this descriptor doesn't need to be unique.
            The DTM may set the descriptor to be able to query for specific data. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubset.ReadData">
            <summary>
            Reads the persisted data.
            </summary>
            <returns>Byte array containing the data.</returns>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtNoReadAccessException">The data object is not readable.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubset.WriteData(System.Byte[])">
            <summary>
            Writes data to persist.
            </summary>
            <param name="data">Byte array containing the data.</param>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtNoWriteAccessException">The data object is not writable.</exception>
        </member>
        <member name="T:Fdt.Frame.Storage.IDataSubsetDictionary">
            <summary>
            Represents a collection of datasubsets <see cref="T:Fdt.Frame.Storage.IDataSubset"/>.
            </summary>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.Add(System.String,System.Byte[])">
            <summary>
            Creates and adds a new DataSubsets to the DataSubsetDictionary. 
            </summary>
            <param name="key">Unique identifier of the subset.</param>
            <param name="data">Data to be stored in the subset.</param>
            <returns>New DataSubset.</returns>
            <remarks>
            <para>
            The parameter <paramref name="key"/> shall be unique in the DataSubsetDictionary. It can be used
            to request the subset from the collection. Null or string.Empty is not allowed. The key is case sensitive.
            </para>
            <para>
            The parameter <paramref name="data"/> contains the data which shall be used to initialize
            the DataSubset. Null shall be passed if no initial value shall be set. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset has not been locked. <see cref="T:Fdt.FdtLockDatasetException"/> StartTransaction must be called before.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.Add(System.String,System.Byte[],System.String)">
            <summary>
            Creates and adds a new DataSubsets to the <see cref="T:Fdt.Frame.Storage.IDataSubsetDictionary"/>. 
            </summary>
            <param name="key">Unique identifier of the subset.</param>
            <param name="data">Data to be stored in the subset.</param>
            <param name="descriptor">Additional description string (can be used to search the subset).</param>
            <returns>New DataSubset.</returns>
            <remarks>
            <para>
            The parameter <paramref name="key"/> shall be unique in the DataSubsetDictionary. It can be used
            to request the subset from the collection. Null or string.Empty is not allowed. 
            </para>
            <para>
            The parameter <paramref name="data"/> contains the data which shall be used to initialize
            the DataSubset. Null shall be passed if no initial value shall be set. 
            </para>
            <para>
            The parameter <paramref name="descriptor"/> shall contain an additional description string,
            which can be use to search for specific DataSubsets. 
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset has not been locked. <see cref="T:Fdt.FdtLockDatasetException"/> StartTransaction must be called before.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.Remove(System.String)">
            <summary>
            Removes the DataSubset with the specified key from DataSubsetDictionary.
            </summary>
            <param name="key">The key of the DataSubset to remove.</param>
            <returns>
            true if the element is successfully found and removed; otherwise, false. 
            This method returns false if key is not found in the <see cref="T:Fdt.Frame.Storage.IDataSubsetDictionary"/>. 
            </returns>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset has not been locked. <see cref="T:Fdt.FdtLockDatasetException"/> StartTransaction must be called before.</exception>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.Clear">
            <summary>
            Removes all DataSubset from the DataSubsetDictionary. 
            </summary>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.ContainsKey(System.String)">
            <summary>
            Determines whether the DataSubsetDictionary contains an element with the specified key. 
            </summary>
            <param name="key">The key to locate in the DataSubsetDictionary.</param>
            <returns>
            True if the DataSubsetDictionary contains an element with the key; otherwise, false.
            </returns>
        </member>
        <member name="M:Fdt.Frame.Storage.IDataSubsetDictionary.TryGetValue(System.String,Fdt.Frame.Storage.IDataSubset@)">
            <summary>
            Gets the DataSubset associated with the specified key. 
            </summary>
            <param name="key">The key whose DataSubset to get.</param>
            <param name="dataSubset">
            When this method returns, the DataSubset associated with the specified key, if the key is found; 
            otherwise, null.
            </param>
            <returns>
            true if the DataSubsetDictionary contains an element with the specified key; otherwise, false. 
            </returns>
        </member>
        <member name="P:Fdt.Frame.Storage.IDataSubsetDictionary.Item(System.String)">
            <summary>
            Gets the DataSubset associated with the specified key. 
            </summary>
            <param name="key">The key whose DataSubset to get.</param>
            <returns>DataSubset´associated with the specified key.</returns>
        </member>
        <member name="T:Fdt.Frame.ParentTopologyNodes">
            <summary>
            Parent nodes of a specific DTM in the FDT topology.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ParentTopologyNodes.PrimaryParent">
            <summary>
            DTM System Tag of the primary parent in the <see cref="P:Fdt.Frame.ParentTopologyNodes.TopologyNodes"/>.  
            </summary>
        </member>
        <member name="P:Fdt.Frame.ParentTopologyNodes.TopologyNodes">
            <summary>
            List of nodes in the FDT topology.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ProtocolConnection">
            <summary>
            Protocol specific connection information,
            </summary>
        </member>
        <member name="T:Fdt.Frame.SiblingTopologyNodes">
            <summary>
            Sibling nodes of a specific DTM in the FDT topology.
            </summary>
        </member>
        <member name="P:Fdt.Frame.SiblingTopologyNodes.TopologyNodes">
            <summary>
            List of nodes in the FDT topology.
            </summary>
        </member>
        <member name="T:Fdt.Frame.TopologyNode">
            <summary>
            Information about a DTM in the Frame Application FDT Topology.
            </summary>
        </member>
        <member name="P:Fdt.Frame.TopologyNode.DtmSystemTag">
            <summary>
            Unique identification of DTM within the Frame Application. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.TopologyNode.DtmSystemGuiLabel">
            <summary>
            Unique human readable identifier of the DTM instance in the context of the Frame Application.
            </summary>
        </member>
        <member name="P:Fdt.Frame.TopologyNode.DtmType">
            <summary>
            DTM Device Type of the DTM in the topology. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.TopologyNode.ParentInfo">
            <summary>
            Information of the parent DTM and Communication Channel to which the DTM 
            instance is linked. 
            </summary>
            <remarks>
            <note>
            The property shall return null, if the TopologyNode represents a DTM instance at the 
            root of the FDT topology. 
            </note>
            </remarks> 
        </member>
        <member name="T:Fdt.Frame.IAuditTrail">
            <summary>
            Audit trail interface which enables a DTM to send audit trail notifications to the Frame Application. 
            </summary>
        </member>
        <member name="M:Fdt.Frame.IAuditTrail.Notify(Fdt.FdtList{Fdt.Frame.AuditTrail.AuditTrailNotification},System.String,System.Boolean)">
            <summary>
            Method used to receive audit trail events from DTMs in order to record 
            changes and actions performed on a device.
            </summary>
            <param name="auditTrailNotifications">
            List of audit trail notifications for the audit trail.
            </param>
            <param name="description">
            Description why this operation is performed or string.empty.
            </param>
            <param name="isOnlineNotification">
            Set to True if the notification is about a change which is performed
            directly on the device. Set to False if the change is performed on
            the  instance data set (which may be downloaded later).
            </param>
            <remarks>
            <para>A DTM shall send an Audit Trail notification to the Frame
            Application to inform about any  changes in the device. The
            following notifications are defined:
            <list type="bullet">
            <item>
            <see cref="T:Fdt.Frame.AuditTrail.AuditTrailUserNotification"/> A notification to be displayed to the user by the Frame UI in conjunction with an opened DTM UI.
            It is possible to request confirmation of the notification from the user.
            </item>
            <item>
            <see cref="T:Fdt.Frame.AuditTrail.FunctionNotification"/> notifies the Frame Application
            that a function was called (e.g. self test functionality of the
            device was executed). 
            </item>
            <item>
            <see cref="T:Fdt.Frame.AuditTrail.ParameterChangeNotification"/> notifies the Frame
            Application that a parameter was changed. Contains the old value of
            the parameter as well as the new value.
            </item>
            <item>
            <see cref="T:Fdt.Frame.AuditTrail.GeneralNotification"/> A general notification or comment.
            </item>
            </list>
            </para>
            <para>
            The sequence of the references within 
            <paramref name="auditTrailNotifications"/> shall represent the
            chronological order of occurrence of the notification to record. 
            The Frame Application is responsible for recording the time of the notification and the time of the user confirmation.
            </para>
            <para>
            Additionally the DTM can provide a human readable string in
            parameter 
            <paramref name="description"/> containing an overall description
            that summarizes the performed actions. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.ICommunicationChannelProxy">
            <summary>
            Proxy interface which enables a DTM to interact with the linked Communication Channel 
            provided by the Parent DTM in the FDT topology. 
            </summary>
            <remarks>
            <para>
            A reference to this interfaces is passed to the DTM in the <see cref="M:Fdt.Dtm.IDtm3.EnableCommunication2(Fdt.Frame.ICommunicationChannelProxy,Fdt.Dtm.ConnectMode,Fdt.Dtm.DeviceTypeCheckMode)"/> property. 
            </para>
            This interface is provided by the Frame Application. The Frame Application shall forward 
            all calls to corresponding communication channel.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.ICommunicationChannelProxy.Communication">
            <summary>
            Reference to the <see cref="T:Fdt.Communication.ICommunication"/> interface.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ICommunicationChannelProxy.Subscription">
            <summary>
            [Conditional] Reference to the <see cref="T:Fdt.Communication.ISubscription"/> interface.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ICommunicationChannelProxy.Scanning">
            <summary>
            Reference to the <see cref="T:Fdt.Communication.IScanning"/> interface.
            </summary>
        </member>
        <member name="P:Fdt.Frame.ICommunicationChannelProxy.SupportedProtocols">
            <summary>
            Gets a list of the supported protocols of the communication channel.
            </summary>
            <remarks>
            <para>
            Via this property the DTM that wants to establish a connection asks the next communication component for the supported protocols.
            At least one protocol shall be supported by a communication channel.
            </para>
            <para>
            If a channel supports more than one protocol during runtime it has to support all protocols in parallel.
            SupportedProtocols has to return static information if a child is connected to the channel because a change may cause an invalid topology.
            So if the Communication Channel can be configured to support different protocols, this can only be done if there are no connected children.
            </para>
            <para>
            A DTM, which wants to use more than one protocol, has to ask the channel for its supported protocols before it starts the communication.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.Frame.IDtmProxy">
            <summary>
            This interface is provided by DTM proxy objects. 
            These objects enable a DTM to interact with another DTM instance (represented by the proxy object).
            </summary>
            <remarks>
            <para>
            This interface is provided by the Frame Application. The Frame Application
            shall forward all calls to corresponding DTM instance.
            </para>
            <para>
            If the availability of an interface is optional or conditional then the properties used to get
            these interfaces can return null. The same rules for optional / conditional interfaces apply 
            as for <see cref="T:Fdt.Dtm.IDtm3"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.DtmSystemTag">
            <summary>
            Unique identification of DTM within the Frame Application. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.DtmSystemGuiLabel">
            <summary>
            Unique human readable identifier of the DTM instance in the context of the Frame Application.
            </summary>
            <para>
            The DtmSystemGuiLabel replaces the "tag" in the DTM parameter document of earlier FDT Versions.
            </para>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.DtmType">
            <summary>
            DTM Device Type of the DTM in the topology. 
            </summary>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.InstanceData">
            <summary>
            Reference to the IInstanceData interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.DeviceData">
            <summary>
            [Conditional] Reference to the IDeviceData interface.
            </summary>
            <remarks>
            It shall be provided for all devices which have online data.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.NetworkData">
            <summary>
            Reference to the INetworkData interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.ProcessData">
            <summary>
            [Optional] Reference to the IProcessData interface.
            </summary>
            <remarks>
            It shall be provided for DTMs that provide information about process data. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.HardwareInformation">
            <summary>
            Reference to the IHardwareInformation interface.
            </summary>
            <remarks>
            It shall be provided by by DTMs to request manufacturer specific identification 
            information from a field or communication device.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.Comparison">
             <summary>
             [Conditional] Reference to the IComparison interface.
             </summary>
              <remarks>
             If a DTM does not provide the IComparison interface, then it shall publish at least all data relevant 
             for comparison in the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> / <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interfaces. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.Reporting">
            <summary>
            [Optional] Reference to the IReporting interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.Ports">
            <summary>
            Reference to the IPorts interface.
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxy.DtmMessaging">
            <summary>
            [Conditional] Reference to the IDtmMessaging interface.
            </summary>
            <remarks>
            The interface is provided for DTMs that need this interface for private DTM to DTM communication (Composite DTMs). 
            </remarks>
        </member>
        <member name="M:Fdt.Frame.IDtmProxy.GetDtmProxyRoleAccess(System.Guid)">
            <summary>
            Returns an interface for multi role based access for a DTM representing a multi role device.
            </summary>
            <remarks>
            </remarks>
            <param name="roleId">RoleId of the <see cref="T:Fdt.Role"/> which is requested by the caller.</param>
            <returns>An <see cref="T:Fdt.Dtm.IDtmRoleAccess"/> that provides role based access to DTM data via sub-interfaces.</returns>
            <exception cref="T:Fdt.FdtInvalidValueException">DTM does not support the requested role.</exception>
        </member>
        <member name="T:Fdt.Frame.IDtmProxyRoleAccess">
            <summary>
            This is the main interface for multi role based access. 
            </summary>
            <remarks>
            It defines properties for retrieving role based interfaces (for a DTM representing a multi role device).
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.DeviceData">
            <summary>
            [Conditional] Provides multi role based access to the <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interface for a DTM representing a multi role device.
            </summary>
            <remarks>
            It shall be provided for all roles which have online data.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.InstanceData">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> interface (for a DTM representing a multi role device).
            </summary>
            <remarks>
            This interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.NetworkData">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.Network.INetworkData"/> interface (for a DTM representing a multi role device).
            </summary>
            <remarks>
            This interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.ProcessData">
            <summary>
            [Optional] Provides multi role based access to the <see cref="T:Fdt.Dtm.IO.IProcessData"/> interface (for a DTM representing a multi role device).
            </summary>
            <remarks>
            <para>
            The protocol specific Annex defines the rules for this interface.
            </para>
            <para>
            If the protocol supports process data and the respective multi role provides process data the DTM shall provide this interface.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.Comparison">
            <summary>
            [Conditional] Provides multi role based access to the <see cref="T:Fdt.Dtm.IComparison"/> interface (for a DTM representing a multi role device).
            </summary>
            <remarks>
            If a role does not provide the IComparison interface, then it shall publish at least all data relevant
            for comparison in the <see cref="T:Fdt.Dtm.DataAccess.IInstanceData"/> / <see cref="T:Fdt.Dtm.DataAccess.IDeviceData"/> interfaces.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IDtmProxyRoleAccess.Reporting">
            <summary>
            Provides multi role based access to the <see cref="T:Fdt.Dtm.IReporting"/> interface (for a DTM representing a multi role device).
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null.
            </remarks>
        </member>
        <member name="T:Fdt.Frame.IFrame">
            <summary>
            The IFrame interface is the main interface of a Frame Application. It includes the services 
            that shall be provided by the Frame Application to the DTM Business Logic. 
            </summary>
            <remarks>
            <para>The reference to this interface is passed to the DTM business logic in the 
            <see cref="M:Fdt.Dtm.IDtm3.Init(System.String,System.String,System.Guid,Fdt.UserInfo,Fdt.Frame.IFrame)"/> method.
            </para>
            <para>
            This is the starting point for the navigation to the different features of the Frame Application 
            such as planning of topologies, audit trailing etc.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.FrameUi">
            <summary>
            [Optional] Provides access to the Frame Application user interface. 
            </summary>
            <remarks>
            <para>
            The property returns null if no user interface is available.
            </para>
            <para>
            The property shall never return null, if the <see cref="T:Fdt.Frame.IFrame"/>
            interface was passed to a DTM  user interface.
            </para>
            <para>
            If the <see cref="T:Fdt.Frame.IFrame"/> interface is passed to a DTM business
            logic, then it may return null  if no user interface exists (e.g.
            DTM is executed on a server). Thus, a DTM business logic shall  be
            prepared for this situation, e.g. apply the default answer if no
            message box can be opened. 
            <note>
            <para>
            The DTM business logic is not allowed to open own dialogs or user
            interfaces. It shall always use the <see cref="T:Fdt.Frame.Ui.IFrameUi"/> interface
            which is returned by this property. Storing of the  return interface
            reference is not allowed. The DTM business logic shall always access
            this property before attempting to access the Frame Application user
            interface, since the availability of the user interface may change
            during the lifetime of a DTM business logic instance. 
            </para>        
            <para>
            In general, accessing of the Frame Application user interface should
            be avoided in the  DTM business logic. It's highly recommended to
            execute such kind of functions in the context of a DTM user
            interface whenever possible. 
            </para>
            </note>
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.Topology">
            <summary>
            Provides access to the FDT topology interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.Trace">
            <summary>
            Provides access to the Frame Application trace interface. 
            </summary>
            <remarks>
            The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.AuditTrail">
            <summary>
            Provides access to the Frame Application audit trail interface. 
            </summary>
            <remarks>
             The interface is mandatory, therefore the property shall never return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.ProcessImageValidation">
            <summary>
            [Optional] Provides access to the <see cref="T:Fdt.Frame.IProcessImageValidation"/> interface. 
            </summary>
            <remarks>
            This interface is optional. It is only implemented by PLC Tool Frame Applications 
            which support changes of the process image while the PLC is running.
            The interface is optional, therefore the property can return null. 
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.PhysicalTopology">
            <summary>
            [Optional] Provides access to the <see cref="T:Fdt.Frame.IPhysicalTopology"/> interface.
            </summary>
            <remarks>
            The interface is optional, therefore the property can return null.
            </remarks>
        </member>
        <member name="P:Fdt.Frame.IFrame.FdtVersion">
            <summary>
            FDT version supported by the Frame.  
            </summary>
        </member>
        <member name="T:Fdt.Frame.IPhysicalTopology">
            <summary>
            This interface provides access to the physical topology.
            </summary>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.BeginAddConnection(Fdt.Frame.Connection,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronous adding of a port-to-port connection.
            </summary>
            <param name="newConnection">Connection to be added.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.EndAddConnection(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by
            <see cref="M:Fdt.Frame.IPhysicalTopology.BeginAddConnection(Fdt.Frame.Connection,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.BeginMoveConnection(Fdt.Frame.Connection,Fdt.Frame.Connection,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronous move of a port-to-port connection.
            </summary>
            <param name="oldConnection">Old Connection (move from).</param>
            <param name="newConnection">New Connection (move to).</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.EndMoveConnection(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by
            <see cref="M:Fdt.Frame.IPhysicalTopology.BeginMoveConnection(Fdt.Frame.Connection,Fdt.Frame.Connection,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.BeginRemoveConnection(Fdt.Frame.Connection,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronous remove of a port-to-port connection.
            </summary>
            <param name="oldConnection">Connection to be removed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.EndRemoveConnection(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by
            <see cref="M:Fdt.Frame.IPhysicalTopology.BeginRemoveConnection(Fdt.Frame.Connection,System.AsyncCallback,System.Object)"/> to complete.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.BeginGetConnections(Fdt.Frame.TopologyNode,System.AsyncCallback,System.Object)">
            <summary>
            Performs asynchronous request for all port-to-port connections of a DTM.
            </summary>
            <param name="device">Device from which the connections are requested.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Frame.IPhysicalTopology.EndGetConnections(System.IAsyncResult)">
            <summary>
            Waits for pending asynchronous operation started by
            <see cref="M:Fdt.Frame.IPhysicalTopology.BeginGetConnections(Fdt.Frame.TopologyNode,System.AsyncCallback,System.Object)"/> to complete and return a list of connections for the DTM.
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>FDT List of Connections.</returns>
        </member>
        <member name="T:Fdt.Frame.IProcessImageValidation">
            <summary>
            In some automation systems it is a requirement to apply changes to the process image while the PLC is running.
            This interface provides the methods needed to validate whether a potential change can be applied while the PLC is running.
            </summary>
        </member>
        <member name="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Validates if a modification of the process image can be applied
            while the PLC is running.
            </summary>
            <param name="processImageInfo">Information about the process image
            which will be active after a change is applied.</param>
            <param name="progress">The method to be called on progress of the
            asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous
            operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes
            this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the
            asynchronous operation.</returns>
            <remarks>
            <para>
            The validation needs to be done before the changes are applied. 
            </para>
            <para>
            The validation if the PLC needs to be stopped might be needed to be
            done in both the DTM which represents a fieldbus master  and the PLC
            Tool Frame Application itself.  
            </para>
            </remarks>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.EndValidateProcessImage(System.IAsyncResult)"/>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.CancelValidateProcessImage(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.IProcessImageValidation.CancelValidateProcessImage(System.IAsyncResult)">
            <summary>
            Cancels asynchronous operation started by 
            <see cref="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.EndValidateProcessImage(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.IProcessImageValidation.EndValidateProcessImage(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by 
            <see cref="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous
            request to wait for.</param>
            <returns>
            Returns True if the PLC does not need to be stopped if the process
            image is changed to the process image provided by 
            <see cref="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>. Returns False if the PLC
            needs to be stopped.
            </returns>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.BeginValidateProcessImage(Fdt.Dtm.ProcessImage.ProcessImageInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Frame.IProcessImageValidation.CancelValidateProcessImage(System.IAsyncResult)"/>
        </member>
        <member name="T:Fdt.Frame.ITopology">
            <summary>
            This interface provides the access to the FDT topology. 
            A DTM can request and release references to other DTM instances as well as create and remove Child DTMs.
            </summary>
        </member>
        <member name="M:Fdt.Frame.ITopology.GetParentNodes">
            <summary>
            This method enables a DTM to request a list of DTMs which are directly above in the FDT topology.
            </summary>
            <returns>Information about parent nodes in the FDT topology. If there is no parent in the FDT topology then null shall be returned.</returns>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.GetChildNodes(Fdt.Communication.ChannelReference)">
            <summary>
            This method enables a DTM to request a list of DTMs which are directly below in the FDT topology.
            </summary>
            <param name="channelReference">Identifier of the DTM and channel for which child nodes shall be returned.</param>
            <returns>Information about child nodes in the FDT topology.</returns>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument <paramref name="channelReference"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.GetSiblingNodes(Fdt.Frame.SiblingFilter)">
            <summary>
            This method enables a DTM to request a list of DTMs which are on the same level in the FDT topology.
            </summary>
             <param name="filter">Filter that controls which subset of siblings is returned (Predecessors, Successors, All).</param>
            <returns>Information about sibling nodes in the FDT topology. This shall contain an ordered list of Topology Nodes.</returns>
            <remarks>
            <para>
            A DTM can only request its siblings from the same channel it is connected to.
            </para>      
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">Thrown if DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.GetDtmInfoList">
            <summary>
            Returns list of DTM Information available in the Frame Application's catalog.
            </summary>
            <returns>Requested information.</returns>
            <remarks>
            <para>
            This information enables a DTM to add another DTM to the FDT topology by usage of 
            method <see cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>.
            </para>
            <para>
            To be able to add a child the type info is required. 
            This can be requested by calling <see cref="M:Fdt.Frame.ITopology.BeginGetSupportedTypes(Fdt.Dtm.DtmInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginGetSupportedTypes(Fdt.Dtm.DtmInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)">
            <summary>
            Returns a list of TypeInfo objects describing the supported types (devices, modules, blocks, etc.) of the passed DTM.  
            </summary>
            <param name="dtmInfo">DTMInfo for which the supoported types are requested.</param>
            <param name="progress">The method to be called on progress of the asynchronous operation.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation. The result 
            is provided by <see cref="M:Fdt.Frame.ITopology.EndGetSupportedTypes(System.IAsyncResult)"/> </returns>
            <seealso cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Dtm.IDtmInformation.BeginGetSupportedTypes(Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <seealso cref="M:Fdt.Frame.ITopology.GetDtmInfoList"/>
            <remarks>
            </remarks>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndGetSupportedTypes(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginGetSupportedTypes(Fdt.Dtm.DtmInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            A list with the <see cref="T:Fdt.Dtm.TypeInfo"/> objects describing the supported types.
            </returns>
            <seealso cref="M:Fdt.Frame.ITopology.BeginGetSupportedTypes(Fdt.Dtm.DtmInfo,Fdt.ProgressCallback,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.GetDeviceIdentInfo(System.Guid,Fdt.BusCategory)">
            <summary>
            Returns the Device Identification Information for the passed type and BusCategory.
            </summary>
            <param name="typeId">Unique identifier of the type for which information shall be returned. </param>
            <param name="busCategory">BusCategory for which information shall be returned.</param>
            <returns>Requested device identification information.</returns>
            <remarks>
            <para>
            The passed <paramref name="typeId"/> shall identify one of the <see cref="T:Fdt.Dtm.TypeInfo"/> 
            entries returned by <see cref="M:Fdt.Frame.ITopology.GetDtmInfoList"/> by its <see cref="P:Fdt.Dtm.TypeInfo.Id"/>.
            </para>
            <para>
            There shall be separate DeviceIdentInfos returned for each 
            <see cref="P:Fdt.Dtm.DeviceIdentInfo.ProtocolIdentificationProfile">protocol identification profile</see>.
            </para>
            </remarks>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidValueException">The requested protocol in argument <paramref name="busCategory"/> is not supported by the Device Type.</exception>
            <exception cref="T:Fdt.FdtInvalidTypeIdException">The <paramref name="typeId"/> is invalid.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            This method enables a DTM to add another DTM to the FDT topology. 
            </summary>
            <param name="dtmTypeInfo">Information about the child to be added.</param>
            <param name="destinationChannel">Information about communication channel to which the new child shall be added.</param>
            <param name="dtmSystemTagOfNewPredecessor">The System Tag of the DTM after which sibling node a new child is added,
             can be NULL to add device as first child.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            This method enables a DTM to add another DTM identified by its DTM Device Type to the sub-topology identified by 
            the Channel Reference.
            </para>
            <para>
            The DTM is instantiated by the Frame Application. The <see cref="M:Fdt.Frame.ITopology.EndAddChild(System.IAsyncResult)"/> returns the System Tag 
            of the DTM. If the operation failed, no System Tag shall be returned (<see cref="M:Fdt.Frame.ITopology.EndAddChild(System.IAsyncResult)"/> throws
            an exception). 
            </para>
            <para>
            The Frame Application has to call the method <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> at the Communication Channel 
            to which the DTM shall be added. 
            </para>
            <para>
            A DTM can call this method only for a channel which it owns. A DTM can't add a child to another DTM.
            </para>
            </remarks> 
            <seealso cref="M:Fdt.Frame.ITopology.EndAddChild(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndAddChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>System Tag of the added DTM.</returns>
            <seealso cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed. (e.g. EndValidateAddChild failed)</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidTypeIdException">The property Id of dtmTypeInfo in <see cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>() is not valid.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmTypeInfo in <see cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            This method allows a DTM to reposition one of its children within the same channel.
            </summary>
            <param name="dtmSystemTagOfChildtoReposition">The System Tag of the child which shall be respositioned.</param>
            <param name="dtmSystemTagOfNewPredecessor">The System Tag of the DTM after which the sibling shall be repositioned. 
            Can be NULL to move device to first position.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndRepositionChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Frame.ITopology.BeginRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">One of the arguments in <see cref="M:Fdt.Frame.ITopology.BeginRepositionChild(System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginRemoveChild(System.Guid,Fdt.Communication.ChannelReference,System.AsyncCallback,System.Object)">
             <summary>
             This method enables a DTM to remove another DTM from the FDT topology. 
             </summary>
            <param name="dtmSystemTag">System Tag of the DTM that shall be removed. </param>
             <param name="sourceChannel">Information about the channel from which the DTM shall be removed.</param>
             <param name="callback">The method to be called when the asynchronous operation is completed.</param>
             <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
             <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
             <remarks>
             <para>
             This method enables a DTM to remove another DTM specified by System Tag from the sub-topology identified by 
             the Channel Reference. 
             </para>
             <para>
             The Frame Application has to call the method <see cref="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)"/> at the Communication Channel 
             from which the DTM is removed. If this was the last reference within the topology, the Frame Application 
             has to delete the instance data. 
             </para>
             <para>
             <note>
             The operation shall fail, if a sub topology exists under the DTM which shall be removed.
             </note>
             </para>
             <para>
             A DTM can call this method only for a channel which it owns. A DTM can't remove a child from another DTM.
             </para>
             </remarks> 
             <seealso cref="M:Fdt.Frame.ITopology.EndRemoveChild(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndRemoveChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginRemoveChild(System.Guid,Fdt.Communication.ChannelReference,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Frame.ITopology.BeginRemoveChild(System.Guid,Fdt.Communication.ChannelReference,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed. (e.g. a sub topology exists under the DTM which shall be removed)</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag or sourceChannel in <see cref="M:Fdt.Frame.ITopology.BeginRemoveChild(System.Guid,Fdt.Communication.ChannelReference,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginMoveChild(System.Guid,Fdt.Communication.ChannelReference,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)">
             <summary>
             This method enables a DTM to move another DTM in the FDT topology. 
             </summary>
            <param name="dtmSystemTag">System Tag of the DTM that shall be moved. </param>
             <param name="sourceChannel">Information about the channel from which the DTM shall be moved.</param>
             <param name="destinationChannel">Information about communication channel to which the DTM shall be moved.</param>
             <param name="dtmSystemTagOfNewPredecessor">The System Tag of the DTM after which sibling node a  child is moved,
             can be NULL to add device as first child.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
             <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
             <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
             <remarks>
             <para>
             This service enables a DTM to move another DTM specified by its System Tag to another sub-topology 
             identified by the destination and Channel Reference. 
             </para>
             <para>
             The Frame Application has to call <see cref="M:Fdt.Communication.ISubTopology.BeginValidateAddChild(Fdt.Dtm.TypeInfo,System.Guid,System.Guid,System.AsyncCallback,System.Object)"/> and <see cref="M:Fdt.Communication.ISubTopology.BeginValidateRemoveChild(System.Guid,System.AsyncCallback,System.Object)"/> ValidateRemoveChild 
             as defined for <see cref="M:Fdt.Frame.ITopology.BeginAddChild(Fdt.Dtm.TypeInfo,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/> and <see cref="M:Fdt.Frame.ITopology.BeginRemoveChild(System.Guid,Fdt.Communication.ChannelReference,System.AsyncCallback,System.Object)"/>.
             </para>
             </remarks> 
             <seealso cref="M:Fdt.Frame.ITopology.EndMoveChild(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndMoveChild(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginMoveChild(System.Guid,Fdt.Communication.ChannelReference,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <seealso cref="M:Fdt.Frame.ITopology.BeginMoveChild(System.Guid,Fdt.Communication.ChannelReference,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag, destinationChannel or sourceChannel in <see cref="M:Fdt.Frame.ITopology.BeginMoveChild(System.Guid,Fdt.Communication.ChannelReference,Fdt.Communication.ChannelReference,System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid.</exception>
            <exception cref="T:Fdt.FdtLockDatasetException">The dataset can not be locked.</exception>
            <exception cref="T:Fdt.FdtCommitTransactionFailedException">The commit transaction of the dataset fails.</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="M:Fdt.Frame.ITopology.BeginGetDtm(System.Guid,System.AsyncCallback,System.Object)">
            <summary>
            This method enables a DTM to request access to another DTM identified by its System Tag.
            </summary>
            <param name="dtmSystemTag">System Tag of the DTM which shall be accessed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            Proxy interface to the request DTM instance is delivered by <see cref="M:Fdt.Frame.ITopology.EndGetDtm(System.IAsyncResult)"/>.
            </para>
            <para>
            <note>
            The DTM which has requested the references has to call the service <see cref="M:System.IDisposable.Dispose"/> 
            to release the reference. The Frame Application has to implement a kind of reference counting 
            which is required to handle multiple references to the same DTM instance. 
            </note>
            </para>
            </remarks>
            <seealso cref="M:Fdt.Frame.ITopology.EndGetDtm(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.ITopology.EndGetDtm(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.ITopology.BeginGetDtm(System.Guid,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>Proxy interface to the request DTM instance.</returns>
            <seealso cref="M:Fdt.Frame.ITopology.BeginGetDtm(System.Guid,System.AsyncCallback,System.Object)"/>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidDataObjectException">The argument dtmSystemTag in <see cref="M:Fdt.Frame.ITopology.BeginGetDtm(System.Guid,System.AsyncCallback,System.Object)"/>() is invalid.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">The reference <paramref name="asyncResult"/> is invalid</exception>
            <exception cref="T:Fdt.FdtInvalidStateException">DTM is not in appropriate state.</exception>
        </member>
        <member name="T:Fdt.Frame.SiblingFilter">
            <summary>
            Filter used to control which subset of siblings is returned in <see cref="M:Fdt.Frame.ITopology.GetSiblingNodes(Fdt.Frame.SiblingFilter)"/> 
            </summary>
        </member>
        <member name="F:Fdt.Frame.SiblingFilter.All">
            <summary>
            All Siblings shall be returned.
            </summary>
        </member>
        <member name="F:Fdt.Frame.SiblingFilter.Predecessors">
            <summary>
            All predecessors shall be returned.
            </summary>
        </member>
        <member name="F:Fdt.Frame.SiblingFilter.Successors">
            <summary>
            All successors shall be returned.
            </summary>
        </member>
        <member name="T:Fdt.Frame.TraceEventType">
            <summary>
            Identifies the severity of event that has caused the trace.
            </summary>
            <remarks>
            <para>
            When the Frame Application sets the trace level at <see cref="T:Fdt.Dtm.IDtm3"/> and JavaScript method IDtmWebUiFunction.initAsync
            the values provided by the enumeration can be combined.
            </para>
            <para>
            When a DTM or DTM UI sends a trace event then it shall not combine the values provided by the enumeration.
            </para>
            </remarks>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.NoTracing">
            <summary>
            This value is used to completely switch of tracing at <see cref="T:Fdt.Dtm.IDtm3"/> 
            and JavaScript method IDtmWebUiFunction.initAsync. 
            </summary>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.Critical">
            <summary>
            Fatal error or application crash.
            </summary>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.Error">
            <summary>
            Recoverable error.
            </summary>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.Warning">
            <summary>
             Noncritical problem.
            </summary>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.Information">
            <summary>
            Informational message.
            </summary>
        </member>
        <member name="F:Fdt.Frame.TraceEventType.Verbose">
            <summary>
            Debugging trace.
            </summary>
        </member>
        <member name="T:Fdt.Frame.ITrace">
            <summary>
            Trace interface which shall be used by a DTM to inform a Frame
            Application about trace message. 
            </summary>
            <remarks>
            <para>
            Frame Application shall implement this interface. How messages are
            traced or displayed to  the user is Frame Application specific.
            </para>
            <para>
            A trace message is not intended to be shown to a user directly. It is
            for debugging information  which can be useful e.g. for trouble
            shooting. If information needs to be displayed to the user then message
            box methods of <see cref="T:Fdt.Frame.Ui.IFrameUi"/> shall be used.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Frame.ITrace.TraceEvent(Fdt.Frame.TraceEventType,System.String,System.String,System.Runtime.Serialization.ISerializable[])">
            <summary>
            Traces the given data to the trace log.
            </summary>
            <param name="eventType">One of the <see cref="T:Fdt.Frame.TraceEventType"/>
            values that specifies the severity of the trace data.</param>
            <param name="classification">Classification of the trace event. 
            This is a string provided by the developer of the DTM to help him to filter/search in the trace log.
            </param>
            <param name="message">
            A text message to write. Should provide some information about the
            trace data.
            </param>
            <param name="data">An object array containing the trace data.
            </param>
        </member>
        <member name="M:Fdt.Frame.ITrace.TraceEvent(Fdt.Frame.TraceEventType,System.String,System.String)">
            <summary>
            Traces the given text message to the trace log.
            </summary>
            <param name="eventType">One of the <see cref="T:Fdt.Frame.TraceEventType"/>
            values that specifies the event severity of the trace data.</param>
            <param name="classification">Classification of the trace event.
            </param>
            <param name="message">The text message to write.</param>
        </member>
        <member name="T:Fdt.Frame.Ui.IFrameUi">
            <summary>
            This interface provides access to the Frame Application user interface. 
            </summary>
            <remarks>
            A Frame Application that provides a user interface shall provide this interface. 
            If the Frame Application does not provide this interface, the DTM knows explicitly that no GUI is available.
            A DTM shall be able to adapt to the situation where it can not show a user interface.
            In case of a distributed system the Frame Application shall ensure displaying the user dialog and the 
            user interface of the DTM at the correct workplace.
            </remarks>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowMessageBox(System.String)">
            <summary>
            Displays a message box that has a message and that returns a result. 
            </summary>
            <param name="messageBoxText">A String that specifies the text to display.</param>
            <returns>
            A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies which message box button is clicked by the user. 
            </returns>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowMessageBox(System.String,System.String)">
            <summary>
            Displays a message box that has a message and title bar caption; and that returns a result.
            </summary>
            <param name="messageBoxText">A String that specifies the text to display.</param>
            <param name="caption">A String that specifies the title bar caption to display. </param>
            <returns>
            A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies which message box button is clicked by the user. 
            </returns>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowMessageBox(System.String,System.String,Fdt.Frame.Ui.MessageBoxButton)">
            <summary>
            Displays a message box that has a message, title bar caption, and button; and that returns a result. 
            </summary>
            <param name="messageBoxText">A String that specifies the text to display.</param>
            <param name="caption">A String that specifies the title bar caption to display. </param>
            <param name="button">A <see cref="T:Fdt.Frame.Ui.MessageBoxButton"/> value that specifies which button or buttons to display. </param>
            <returns>
            A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies which message box button is clicked by the user. 
            </returns>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowMessageBox(System.String,System.String,Fdt.Frame.Ui.MessageBoxButton,Fdt.Frame.Ui.MessageBoxImage)">
            <summary>
            Displays a message box that has a message, title bar caption, button, and icon; and that returns a result. 
            </summary>
            <param name="messageBoxText">A String that specifies the text to display.</param>
            <param name="caption">A String that specifies the title bar caption to display. </param>
            <param name="button">A <see cref="T:Fdt.Frame.Ui.MessageBoxButton"/> value that specifies which button or buttons to display. </param>
            <param name="icon">A <see cref="T:Fdt.Frame.Ui.MessageBoxImage"/> value that specifies the icon to display. </param>
            <returns>
            A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies which message box button is clicked by the user. 
            </returns>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowMessageBox(System.String,System.String,Fdt.Frame.Ui.MessageBoxButton,Fdt.Frame.Ui.MessageBoxImage,Fdt.Frame.Ui.MessageBoxResult)">
            <summary>
            Displays a message box that has a message, title bar caption, button, and icon; and that accepts a 
            default message box result and returns a result.  
            </summary>
            <param name="messageBoxText">A String that specifies the text to display.</param>
            <param name="caption">A String that specifies the title bar caption to display. </param>
            <param name="button">A <see cref="T:Fdt.Frame.Ui.MessageBoxButton"/> value that specifies which button or buttons to display. </param>
            <param name="icon">A <see cref="T:Fdt.Frame.Ui.MessageBoxImage"/> value that specifies the icon to display.</param>
            <param name="defaultResult">A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies the default result of the message box. </param>
            <returns>
            A <see cref="T:Fdt.Frame.Ui.MessageBoxResult"/> value that specifies which message box button is clicked by the user. 
            </returns>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.ShowProgress(System.String,Fdt.Frame.Ui.CancelEventHandler)">
            <summary>
            Opens a Frame Application user interface that shows the progress of
            an ongoing operation in the DTM business logic or in a DTM user interface. 
            </summary>
            <param name="message">A String that specifies the text to be display.</param>
            <param name="cancelCallback">
            Method to be called if the user selected to cancel the operation.
            If this parameter is specified, then the Frame Application shall provide the means to cancel the
            operation. If null is passed, then the operation cannot be canceled. 
            </param>
            <returns>
            Reference to the progress user interface in the Frame Application. This reference shall be used 
            to update the progress information and close the user interfaces when the operation is complete.
            </returns>
            <remarks>
            <para>
            This method shall be used to display the progress of operations started within a DTM business logic
            or user interface. It shall not be used for operations triggered by the Frame Application itself.
            For these kind of operations corresponding <see cref="T:Fdt.ProgressCallback"/> delegates shall be used instead. 
            </para>
            <para>
            The caller of this method shall call <see cref="M:System.IDisposable.Dispose"/>
            to close the Frame Application progress user interface when the operation is complete. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUi(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)">
            <summary>
            This method enables a DTM business logic to request execution of a user interface function.
            </summary>
            <param name="function">Description of the function to be executed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            The function to be executed is described by the parameter <paramref name="function"/>. 
            The actual information about the object which implements this function is provided in a 
            <see cref="P:Fdt.Deployment.DtmManifest.UiManifestRefs">manifest file</see>.
            The Frame Application shall use the <see cref="T:Fdt.Dtm.Functions.UiFunction"/>.<see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId"/> 
            to find the information in the manifest.
            </para>
            </remarks>
            <seealso cref="M:Fdt.Frame.Ui.IFrameUi.EndOpenDtmUi(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.EndOpenDtmUi(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUi(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidUserPermissionsException">The operation is not allowed with the current user permissions.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid reference <paramref name="asyncResult"/></exception>
            <seealso cref="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUi(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)"/>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.BeginCloseDtmUi(Fdt.InvokeId,System.AsyncCallback,System.Object)">
            <summary>
            This method enables a DTM business logic to request closing of an opened 
            user interface function. 
            </summary>
            <param name="invokeId">Unique identifier of the user interface function to be closed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <seealso cref="M:Fdt.Frame.Ui.IFrameUi.EndCloseDtmUi(System.IAsyncResult)"/>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.EndCloseDtmUi(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.Ui.IFrameUi.BeginCloseDtmUi(Fdt.InvokeId,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid reference <paramref name="asyncResult"/></exception>
            <exception cref="T:Fdt.FdtCannotCloseUiException">User cancels the closing of user interface</exception>
            <seealso cref="M:Fdt.Frame.Ui.IFrameUi.BeginCloseDtmUi(Fdt.InvokeId,System.AsyncCallback,System.Object)"/>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUiModal(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)">
            <summary>
            This method enables a DTM business logic to request execution of a modal user interface. 
            <para>
            This feature is only supported for 
            <see cref="T:Fdt.Deployment.WebUiFunctionInfo">WebUis</see>, which can be embedded in a Frame Application 
            user interface. If this method is called for other user interface types, then an exception shall be thrown. 
            </para> 
            </summary>
            <param name="function">Description of the function to be executed.</param>
            <param name="callback">The method to be called when the asynchronous operation is completed.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous operation.</returns>
            <remarks>
            <para>
            The function to be executed is described by the parameter <paramref name="function"/>. 
            The actual information about the object which implements this function is provided in a 
            <see cref="P:Fdt.Deployment.DtmManifest.UiManifestRefs">manifest file</see>.
            The Frame Application shall use the <see cref="T:Fdt.Dtm.Functions.UiFunction"/>.<see cref="P:Fdt.Dtm.Functions.ExecutableFunction.FunctionId"/> 
            to find the information in the manifest.
            </para>
            <para>
            This method behaves always modal. The Frame Application at least has to ensure that all user interface 
            controls of the calling DTM are disabled; no further user input shall be possible. 
            </para>
            <para>
            The opened user interface shall call the JavaScript delegate closeMeRequestHandler which is passed to 
            the JavaScript method IDtmWebUiFunction.initAsync. 
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.Frame.Ui.IFrameUi.EndOpenDtmUiModal(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation started by <see cref="M:Fdt.Frame.Ui.IFrameUi.BeginOpenDtmUiModal(Fdt.Dtm.Functions.UiFunction,System.AsyncCallback,System.Object)"/> to complete. 
            </summary>
            <param name="asyncResult">The reference to the pending asynchronous request to wait for.</param>
            <returns>
            Result return by the closeCallback provided at the JavaScript method IDtmWebUiFunction.closeAsync 
            implemented by the opened user interface.
            </returns>
            <exception cref="T:Fdt.FdtOperationFailedException">The operation failed.</exception>
            <exception cref="T:Fdt.FdtInvalidReferenceException">Invalid reference <paramref name="asyncResult"/></exception>
            <seealso cref="M:Fdt.Frame.Ui.IFrameUi.BeginCloseDtmUi(Fdt.InvokeId,System.AsyncCallback,System.Object)"/>
        </member>
        <member name="T:Fdt.Frame.Ui.CancelEventHandler">
            <summary>
            Delegate for the method to be called if the user selected to cancel a operation.
            </summary>
            <returns>
            Flag indicating if cancelling of the operation was successful (true) or not (false). 
            </returns>
        </member>
        <member name="T:Fdt.Frame.Ui.IProgressUi">
            <summary>
            Interface to a Frame Application progress user interface opened by 
            <see cref="T:Fdt.Frame.Ui.IFrameUi"/>.<see cref="M:Fdt.Frame.Ui.IFrameUi.ShowProgress(System.String,Fdt.Frame.Ui.CancelEventHandler)"/>.
            </summary>
            <para>
            A Frame Application that provides a user interface shall provide this interface. 
            The interface can be used by DTM UI to show progress information. 
            For asynchronous operations that are executed in the DTM BL the progress mechanism 
            of extended AsyncResult pattern shall be used where available in the corresponding methods.
            </para>
        </member>
        <member name="M:Fdt.Frame.Ui.IProgressUi.UpdateProgress(Fdt.ProgressInfo)">
            <summary>
            Updates the progress information displayed in the Frame Application user interface. 
            </summary>
            <param name="progressInfo">New information to be displayed.</param>
        </member>
        <member name="T:Fdt.Frame.Ui.MessageBoxButton">
            <summary>
            Specifies the buttons that are displayed on a message box.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxButton.OK">
            <summary>
            The message box displays an OK button.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxButton.OKCancel">
            <summary>
            The message box displays OK and Cancel buttons.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxButton.YesNoCancel">
            <summary>
            The message box displays Yes, No, and Cancel buttons.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxButton.YesNo">
            <summary>
            The message box displays Yes and No buttons.
            </summary>
        </member>
        <member name="T:Fdt.Frame.Ui.MessageBoxImage">
            <summary>
            Specifies the icon that is displayed by a message box.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxImage.None">
            <summary>
            No icon is displayed.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxImage.Stop">
            <summary>
            The message box contains a symbol consisting of white X in a circle with a red background.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxImage.Question">
            <summary>
            The message box contains a symbol consisting of a question mark in a circle.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxImage.Exclamation">
            <summary>
            The message box contains a symbol consisting of an exclamation point in a triangle with a yellow background.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxImage.Information">
            <summary>
            The message box contains a symbol consisting of a lowercase letter i in a circle.
            </summary>
        </member>
        <member name="T:Fdt.Frame.Ui.MessageBoxResult">
            <summary>
            Specifies which message box button that a user clicks.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxResult.None">
            <summary>
            The message box returns no result.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxResult.OK">
            <summary>
            The result value of the message box is OK.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxResult.Cancel">
            <summary>
            The result value of the message box is Cancel.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxResult.Yes">
            <summary>
            The result value of the message box is Yes.
            </summary>
        </member>
        <member name="F:Fdt.Frame.Ui.MessageBoxResult.No">
            <summary>
            The result value of the message box is No.
            </summary>
        </member>
        <member name="T:Fdt.IdReference">
            <summary>
            Reference to an object with a unique identifier. 
            </summary>
        </member>
        <member name="P:Fdt.IdReference.Id">
            <summary>
            Unique identifier of the referenced object. 
            </summary>
        </member>
        <member name="T:Fdt.InvokeId">
            <summary>
            Unique identifier (UUID) for an opened user interface.
            </summary>
        </member>
        <member name="P:Fdt.InvokeId.Id">
            <summary>
            Unique Identifier.
            </summary>
        </member>
        <member name="T:Fdt.PortReference">
            <summary>
            Unique identifier of a port provided by a DTM.
            </summary>
            <remarks>
            The DTM has to guarantee that the path is unique for an instance. It consists of the
            DTM System Tag and the Port ID. 
            </remarks>
        </member>
        <member name="P:Fdt.PortReference.DtmSystemTag">
            <summary>
            System Tag of the DTM.
            </summary>
        </member>
        <member name="P:Fdt.PortReference.PortId">
            <summary>
            Unique identifier of the Port. 
            </summary>
        </member>
        <member name="M:Fdt.PortReference.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Fdt.PortReference.#ctor(System.Guid,System.String)">
            <summary>
            Constructor
            </summary>
            <param name="dtmSystemTag">DTM System Tag</param>
            <param name="portId">Unique ID of the Port</param>
        </member>
        <member name="T:Fdt.ProgressInfo">
            <summary>
            Information about progress of an operation.
            </summary>
        </member>
        <member name="P:Fdt.ProgressInfo.PercentComplete">
            <summary>
            Percentage complete (value between 0 - 100) or -1, if the real progress cannot be
            determined. In this case the receiver (e.g. the Frame Application) may display 
            a generic progress information. 
            </summary>
        </member>
        <member name="P:Fdt.ProgressInfo.Message">
            <summary>
            [Optional] Human readable message to be displayed to the user. 
            </summary>
        </member>
        <member name="T:Fdt.ProgressInfo`1">
            <summary>
            Intermediated result and Information about progress of an operation.
            </summary>
            <typeparam name="T">Type of the intermediate result.</typeparam>
        </member>
        <member name="P:Fdt.ProgressInfo`1.IntermediateResult">
            <summary>
            [Optional] Intermediate result of an operation. 
            </summary>
            <remarks>
            <para>
            Null may be returned, if only progress information is available, but no intermediate
            result. 
            </para>
            <para>
            Only new intermediate results shall be provided. Intermediate results from early 
            progress information shall not be included. 
            </para>
            <para>
            The final complete callback shall include all intermediate results.
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.ProtocolInfoAttribute">
            <summary>
            This attribute class exposes general information about a protocol specific assembly. 
            </summary>
            <remarks>
            This attribute shall be set in the AssemblyInfo of the protocol specific
            data type assembly. 
            </remarks>
        </member>
        <member name="P:Fdt.ProtocolInfoAttribute.ProtocolId">
            <summary>
            Unique identifier for the protocol in FDT.
            </summary>
        </member>
        <member name="P:Fdt.ProtocolInfoAttribute.ProtocolName">
            <summary>
            Name of the protocol
            </summary>
        </member>
        <member name="T:Fdt.Role">
            <summary>
            A role is a Universally Unique Identifier of a certain role a device can take (multi role devices).
            </summary>
        </member>
        <member name="P:Fdt.Role.RoleId">
            <summary>
            Unique Id of the role.
            </summary>
        </member>
        <member name="P:Fdt.Role.RoleName">
            <summary>
            Human readable name of the role.
            </summary>
        </member>
        <member name="T:Fdt.SemanticInfo">
            <summary>
            This class provides semantic information for an information object (e.g. data, document). 
            </summary>
            <remarks>
            The Semantic Info provides a reference to semantics within a specific context. The context is provided by the
            ApplicationDomain property, the reference is provided by the SemanticId property. 
            For each object at least one Semantic Info with an FDT-defined protocol-specific semanticId 
            shall be provided. 
            There may be a number of semantics for an object (e.g. a parameter may be described in a fieldbus document and in a device profile),
            therefor it is possible to provide several SemanticInfos for an object.
            </remarks>
        </member>
        <member name="P:Fdt.SemanticInfo.ApplicationDomain">
            <summary>
            The application domain, that applies to provided <see cref="P:Fdt.SemanticInfo.SemanticId"/>. 
            </summary>
            <remarks>
            This may be a protocol-specific ID or a different FDT-defined application domain.
            </remarks>
        </member>
        <member name="P:Fdt.SemanticInfo.SemanticId">
            <summary>
            Semantic identifier for a data element. 
            </summary>
            <remarks>
            <para>
            This identifier shall be unique at least within the context of an element. 
            By using this attribute e.g. a Frame Application is able to get the information regarding 
            the meaning and usage of a single data structure. 
            </para>
            <para>
            The definition regarding the identifier is protocol specific and described in protocol 
            specific annex specifications. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.SemanticInfo.ParameterReadAddress">
            <summary>
            [Optional] Information about the address of the data in the device.
            </summary>
            <remarks>
            <para>
            This property is mandatory for all device data that can be accessed for reading by fieldbus communication 
            (for the specific application domain).
            </para>
            <para>
            The definition regarding the address is protocol specific and described in protocol 
            specific annex specifications. 
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.SemanticInfo.ParameterWriteAddress">
            <summary>
            [Optional] Information about the address of the data in the device.
            </summary>
            <remarks>
            <para>
            This property is mandatory for all device data that can be accessed for writing by fieldbus communication 
            (for the specific application domain).
            </para>
            <para>
            The definition regarding the address is protocol specific and described in protocol 
            specific annex specifications. 
            </para>
            </remarks>
        </member>
        <member name="T:Fdt.UserInfo">
            <summary>
            Description of the user level including information about permissions, 
            current session etc.
            </summary>
        </member>
        <member name="T:Fdt.UserInfo.UserLevel">
            <summary>
            User level specifying users permissions.
            </summary>
        </member>
        <member name="F:Fdt.UserInfo.UserLevel.Observer">
            <summary>
            This permission shall be granted to users who are only only allowed to observe 
            the current process.
            </summary>
        </member>
        <member name="F:Fdt.UserInfo.UserLevel.Expert">
            <summary>
            This permission shall be granted to users who have to observe and manage the 
            current process. 
            The access rights for this user level shall be set by the Frame Application using 
             IInstanceCustomConfiguration and IDeviceCustomConfiguration interfaces.
            </summary>
        </member>
        <member name="F:Fdt.UserInfo.UserLevel.Engineer">
            <summary>
            This permission shall be granted to a user who has to do the plant planning, device
            configuration/parameterization and plant maintenance.
            </summary>
        </member>
        <member name="P:Fdt.UserInfo.Name">
            <summary>
            Name of the user accessing the DTM.
            </summary>
        </member>
        <member name="P:Fdt.UserInfo.Level">
            <summary>
            Permission level of the user. 
            </summary>
            <remarks>
            <note>
            The DTM shall adapt provided functionality according to the level according 
            the descriptions in <see cref="T:Fdt.UserInfo.UserLevel"/>.
            </note>
            </remarks>
        </member>
        <member name="P:Fdt.UserInfo.ProjectName">
            <summary>
            Unique identifier for the project within the name space of the Frame Application.
            </summary>
        </member>
        <member name="T:Fdt.VerifyException">
            <summary>
            Exception thrown if FDT data type verification failed. 
            </summary>
            <remarks>
            This exception does not inherit from FdtException to avoid cyclic dependencies between the assemblies for datatypes and interfaces.
            </remarks>
        </member>
        <member name="M:Fdt.VerifyException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.VerifyException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.VerifyException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.VerifyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtCancelFailedException">
            <summary>
            This exception shall be thrown when a CancelOperationName method fails,
            e.g. because the operation has been finished already or can not be
            canceled for other reasons.
            </summary>
            <remarks>
            <para>
            This may happen under normal conditions because of the asynchronous
            execution of the operation. The client shall handle this exception and
            finish the calling operation. 
            </para>
            <para>
            If the user has triggered the cancel
            operation, the user should be informed that the operation could not be
            canceled.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtCancelFailedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtCancelFailedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtCancelFailedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtCancelFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtCannotCloseUiException">
            <summary>
            This exception shall be thrown if a user interface can't be closed.
            </summary>
        </member>
        <member name="M:Fdt.FdtCannotCloseUiException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtCannotCloseUiException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtCannotCloseUiException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtCannotCloseUiException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtCommitTransactionFailedException">
            <summary>
            This exception shall be thrown when a commit transaction fails. This may
            happen e.g. when the database is located on a remote computer and the
            network connection is disrupted.
            </summary>
            <remarks>
            <para>
            <note>
            FdtCommitTransactionFailedException should not occur under normal operating conditions.
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtCommitTransactionFailedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommitTransactionFailedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommitTransactionFailedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommitTransactionFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtCommunicationErrorException">
            <summary>
            This exception shall be thrown when a communication error occurs.
            </summary>
            <remarks>
            <para>
            Example: BeginReadDeviceStatus() is called.  The DTM connects to the
            device and sends transactions to read device status information. One of
            the transactions fails with communication errors. The DTM aborts the
            operation started with BeginReadDeviceStatus(). EndReadDeviceStatus()
            throws an FdtCommunicationErrorException. 
            <note>
            Communication errors that occur within a communication transaction are
            reported with the transaction response.
            </note>
            </para>
            <para>
            Protocol specific subclasses may be defined by protocol annexes if
            required.
            </para>
            </remarks>
        </member>
        <member name="P:Fdt.FdtCommunicationErrorException.OccuredError">
            <summary>
            The communication error for which the exception is thrown.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommunicationErrorException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommunicationErrorException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommunicationErrorException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommunicationErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="M:Fdt.FdtCommunicationErrorException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a System.Runtime.Serialization.SerializationInfo with the data
            needed to serialize the target object.
            </summary>
            <param name="info">The System.Runtime.Serialization.SerializationInfo to populate with data.</param>
            <param name="context">The destination (see System.Runtime.Serialization.StreamingContext) 
            for this serialization.</param>
        </member>
        <member name="T:Fdt.FdtConfigurationErrorException">
            <summary>
            This exception shall be thrown when an operation can not be performed
            because of a wrong configuration.
            </summary>
            <remarks>
            <para>
            </para>
            Example: A DTM performs a connect request. The parent DTM can not
            perform the request as the communication driver is not properly
            configured.
            </remarks>
        </member>
        <member name="M:Fdt.FdtConfigurationErrorException.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:Fdt.FdtConfigurationErrorException.#ctor(System.String)">
            <summary>
            Constructor with exception message
            </summary>
        </member>
        <member name="M:Fdt.FdtConfigurationErrorException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception
            </summary>
        </member>
        <member name="M:Fdt.FdtConfigurationErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization
            </summary>
        </member>
        <member name="T:Fdt.FdtConnectionAbortedException">
            <summary>
            This exception shall be thrown when an online operation can not be performed because the connection has been aborted.
            </summary>
            <remarks>
            <para>
            Example: The connection is aborted by the communication channel during a download to the device. 
            EndWriteDataToDevice() throws an FdtConnectionAbortedException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtConnectionAbortedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectionAbortedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectionAbortedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectionAbortedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtConnectRefusedException">
            <summary>
            This exception shall be thrown when an online operation can not be
            performed because the connect request has been refused.
            </summary>
            <remarks>
            <para>
            Example: An online function is called on a Device DTM. The Device DTM tries
            to establish a connection by calling BeginConnect() on its communication
            channel proxy. The communication channel (or the device) refuses the
            connect and throws FdtConnectRefusedException in method EndConnect().
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtConnectRefusedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectRefusedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectRefusedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtConnectRefusedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtDeviceTypeNotSupportedException">
            <summary>
            This exception shall be thrown when an online operation can not be
            performed because the type of the connected device is not supported by
            the DTM.
            </summary>
            <remarks>
            <para>
            Example: A download operation is started with
            IOnlineOperation:BeginWriteDataToDevice(). The DTM is in state
            notConnected and connects to the device. It checks the device type and
            detects an unsupported device type. The operation is aborted and
            IOnlineOperation:EndWriteDataToDevice() throws an
            FdtDeviceTypeNotSupportedException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtDeviceTypeNotSupportedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtDeviceTypeNotSupportedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtDeviceTypeNotSupportedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtDeviceTypeNotSupportedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtException">
            <summary>
            Base class for all exceptions defined by FDT.
            </summary>
        </member>
        <member name="M:Fdt.FdtException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidCommunicationChannelException">
            <summary>
            This exception shall be thrown when an invalid communication channel is
            set.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidCommunicationChannelException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidCommunicationChannelException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidCommunicationChannelException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidCommunicationChannelException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidDataObjectException">
            <summary>
            This exception shall be thrown when an invalid logical reference to a data object was given as an argument in the request.
            </summary>
            <remarks>
            <para>
            Examples: An invalid dtmSystemTag is given in ITopology:BeginGetDtm().
            An invalid object is used in the read request list in IDeviceData:BeginRead().
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidDataObjectException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDataObjectException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDataObjectException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDataObjectException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidDatasetException">
            <summary>
            This exception shall be thrown when an invalid dataset was given as an argument in the request.
            </summary>
            <remarks>
            <para>
            FdtInvalidDatasetException should not occur under normal operating conditions.
            </para>
            <para>
            Example: IDtm::LoadData is called with a dataset that is not supported by the DTM type.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidDatasetException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDatasetException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDatasetException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidDatasetException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidReferenceException">
            <summary>
            This exception shall be thrown when an invalid reference to another object was given as an argument in the request.
            </summary>
            <remarks>
            <para>
            FdtInvalidReferenceException should not occur under normal operating conditions.
            </para>
            <para>
            Example: An invalid <see cref="T:System.IAsyncResult"/> object is given in an EndOperationName or in a CancelOperationName method.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidReferenceException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidReferenceException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidReferenceException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidReferenceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidStateException">
            <summary>
            This exception shall be thrown when a property set or a method is called
            and the FDT object is not in an appropriate state.
            </summary>
            <remarks>
            <para>
            Each implementation of an FDT interface member shall check whether the
            called object is in an appropriate state to execute the requested
            operation. If this is not the case, FdtInvalidStateException shall
            be thrown. For asynchronous operations any exception is trown in the EndOperationName method. 
            Example: IDtm:Run() is called in state “initialized”
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidStateException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidStateException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidStateException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidStateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidTypeIdException">
            <summary>
            This exception shall be thrown when an invalid type id was given as an argument in the request.
            </summary>
            <remarks>
            <para>
            Example: IDtm:InitData is called with a typeId that is not supported by the DTM and throws 
            an FdtInvalidTypeIdException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidTypeIdException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidTypeIdException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidTypeIdException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidTypeIdException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidUserPermissionsException">
            <summary>
            This exception shall be thrown when an operation can not be performed
            because the operation is not allowed with the current user permissions.
            </summary>
            <remarks>
            <para>
            Example: A function is started with ICommandFunction::BeginExecute. The
            user is logged in as Observer and has no access rights to perform this
            function. The DTM aborts the operation. ICommandFunction::EndExecute throws an
            FdtInvalidUserPermissionsException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidUserPermissionsException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidUserPermissionsException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidUserPermissionsException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidUserPermissionsException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtInvalidValueException">
            <summary>
            This exception shall be thrown when an invalid value was given as an argument in the request.
            </summary>
            <remarks>
            <para>
            Example: A client tries to write a value via IInstanceData/IDeviceData that is out of the valid range.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtInvalidValueException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidValueException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidValueException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtInvalidValueException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtLockDatasetException">
            <summary>
            This exception shall be thrown when the dataset can not be locked in
            order to perform transactions on the dataset or device.
            </summary>
            <remarks>
            <para>
            Example: IOnlineOperation::BeginReadDataFromDevice is called. The dataset can not be
            locked as it is currently locked by another instance. IOnlineOperation::EndReadDataFromDevice
            throws an FdtLockDatasetException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtLockDatasetException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtLockDatasetException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtLockDatasetException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtLockDatasetException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtNoReadAccessException">
            <summary>
            This exception shall be thrown when a read operation can not be
            performed because the data object is not readable.
            </summary>
            <remarks>
            <para>
            Example: A client tries to read a data object that is classified as
            write only. IDataSubset::ReadData() throws an FdtNoReadAccessException.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtNoReadAccessException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoReadAccessException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoReadAccessException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoReadAccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtNoWriteAccessException">
            <summary>
            This exception shall be thrown when a write operation can not be
            performed because the data object is not writable.
            </summary>
            <remarks>
            <para>
            Example: A client tries to write a data object that is classified as
            read only. IDeviceData::EndWrite throws an FdtNoWriteAccessException.
            </para>
            <para>
            <note>
            Before writing any data, the DTM shall initiate a transaction on the
            dataset with IDataset::StartTransaction if this fails, the operation shall be
            aborted and an FdtLockDatasetException shall be thrown in this case.
            </note>
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtNoWriteAccessException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoWriteAccessException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoWriteAccessException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtNoWriteAccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtOperationCancelledException">
            <summary>
            This exception shall be thrown if an asynchronous operation has been
            canceled by CancelOperationName and the EndOperationName method is
            called.
            </summary>
            <remarks>
            <para>
            This happens under normal operating conditions. The client shall handle
            this exception and abort the requested operation.
            </para>
            </remarks>
        </member>
        <member name="M:Fdt.FdtOperationCancelledException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationCancelledException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationCancelledException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationCancelledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.FdtOperationFailedException">
            <summary>
            This exception shall be thrown when an operation can not be performed or
            completed successfully. 
            </summary>
            <remarks>
            <para>
            For all asynchronous operations this exception may be thrown by the
            EndOperationName method. If more specific exceptions are available,
            always the most specific exception shall be used. 
            Example: IDtm::LoadData is called with a valid Dataset but still fails. In this case an
            FdtOperationFailedException is thrown. However, if IDtm::LoadData is called
            with an invalid Dataset, <see cref="T:Fdt.FdtInvalidDatasetException"/> is thrown. 
            </para>
            <note>
            FdtOperationFailedException should not occur under normal operating
            conditions.
            </note>
            </remarks>
        </member>
        <member name="M:Fdt.FdtOperationFailedException.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationFailedException.#ctor(System.String)">
            <summary>
            Constructor with exception message.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationFailedException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor with exception message and inner exception.
            </summary>
        </member>
        <member name="M:Fdt.FdtOperationFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for serialization.
            </summary>
        </member>
        <member name="T:Fdt.ProgressCallback">
            <summary>
            References a method to be called when a corresponding asynchronous operation has progress information.
            </summary>
            <param name="progressInfo">Contains progress information.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
        </member>
        <member name="T:Fdt.ProgressCallback`1">
            <summary>
            References a method to be called when a corresponding asynchronous operation has intermediate results.
            </summary>
            <typeparam name="T">Type of the intermediate operation results</typeparam>
            <param name="progressInfo">Contains intermediate result and progress information.</param>
            <param name="asyncState">A client-provided object that distinguishes this particular operation from other requests.</param>
        </member>
        <member name="T:Fdt.TransactionStartedEventHandler">
            <summary>
            Method to be called if another DTM instance has started a transaction (dataset is locked).
            </summary>
        </member>
        <member name="T:Fdt.TransactionCommittedEventHandler">
            <summary>
            Method to be called if if another DTM instance has committed data in a transaction.
            </summary>
            <remarks>
            Information about changed data subsets is passed in the event. The DTM shall re-read changed 
            data from corresponding subsets. 
            </remarks>
        </member>
        <member name="T:Fdt.TransactionClosedEventHandler">
            <summary>
            Event raised if another DTM instance has closed a transaction (dataset is un-locked).
            </summary>
        </member>
    </members>
</doc>
