示例#1
0
        /// <summary>
        /// Creates an enumerator for the current browse position.
        /// </summary>
        /// <param name="sources">if set to <c>true</c> then sources are enumerated.</param>
        /// <returns>The wrapped enumerator.</returns>
        private EnumString CreateEnumerator(bool sources)
        {
            IEnumString unknown = null;

            string methodName = "IOPCEventAreaBrowser.BrowseOPCAreas";

            try
            {
                IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true);

                OPCAEBROWSETYPE browseType = OPCAEBROWSETYPE.OPC_AREA;

                if (sources)
                {
                    browseType = OPCAEBROWSETYPE.OPC_SOURCE;
                }

                server.BrowseOPCAreas(browseType, String.Empty, out unknown);
            }
            catch (Exception e)
            {
                ComCallError(methodName, e);
                return(null);
            }
            finally
            {
                EndComCall(methodName);
            }

            // wrapper the enumrator. hardcoding a buffer size of 256.
            return(new EnumString(unknown, 256));
        }
示例#2
0
        /// <summary>
        /// Gets the qualified name for the source.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <returns>The qualified name for the area.</returns>
        private string GetQualifiedSourceName(string name)
        {
            string methodName = "IOPCEventAreaBrowser.GetQualifiedSourceName";

            string qualifiedName = null;

            try
            {
                IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true);
                server.GetQualifiedSourceName(name, out qualifiedName);
            }
            catch (Exception e)
            {
                ComCallError(methodName, e);
                return(null);
            }
            finally
            {
                EndComCall(methodName);
            }

            return(qualifiedName);
        }
示例#3
0
        /// <summary>
        /// Changes the browse position.
        /// </summary>
        /// <param name="direction">The direction.</param>
        /// <param name="qualifiedName">The qualified area name.</param>
        private bool ChangeBrowsePosition(OPCAEBROWSEDIRECTION direction, string qualifiedName)
        {
            string methodName = "IOPCEventAreaBrowser.CreateAreaBrowser";

            try
            {
                IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true);
                server.ChangeBrowsePosition(direction, qualifiedName);
                return(true);
            }
            catch (Exception e)
            {
                if (ComUtils.IsUnknownError(e, ResultIds.E_FAIL))
                {
                    ComCallError(methodName, e);
                }

                return(false);
            }
            finally
            {
                EndComCall(methodName);
            }
        }