Пример #1
0
        public void Browse(OpcBrowseType p_Type, out ArrayList p_Lst)
        {
            p_Lst = null;
            UCOMIEnumString l_Enumerator;

            BrowseOPCItemIDs(p_Type, "", VarEnum.VT_EMPTY, 0, out l_Enumerator);
            if (l_Enumerator == null)
            {
                return;
            }

            p_Lst = new ArrayList(500);
            int l_Cft;

            string[] l_StrF = new string[100];
            int      l_HResult;

            do
            {
                l_Cft     = 0;
                l_HResult = l_Enumerator.Next(100, l_StrF, out l_Cft);
                if (l_Cft > 0)
                {
                    for (int i = 0; i < l_Cft; ++i)
                    {
                        p_Lst.Add(l_StrF[i]);
                    }
                }
            }while (l_HResult == HResults.S_OK);

            Marshal.ReleaseComObject(l_Enumerator);
            l_Enumerator = null;
            p_Lst.TrimToSize();
        }
Пример #2
0
 public string[] BrowseItemIds(OpcBrowseType browseType, string filterCriteria, short dataTypeFilter, int accessRightsFilter)
 {
     IEnumString ppIEnumString = null;
     _server.BrowseOPCItemIDs((OPCBROWSETYPE)browseType, filterCriteria, dataTypeFilter, accessRightsFilter, out ppIEnumString);
     var enumString = new EnumString(ppIEnumString, 100);
     return Enumerable.Repeat(enumString, int.MaxValue).Select(_ => _.Next()).TakeWhile(_ => _ != null).ToArray();
 }
Пример #3
0
        public void BrowseOPCItemIDs(OpcBrowseType p_FilterType, string p_FilterCriteria,
                                     VarEnum p_DataTypeFilter, OpcAccessRights p_AccessRightsFilter, out UCOMIEnumString p_StringEnumerator)
        {
            object l_EnumTemp;

            m_IfBrowse.BrowseOPCItemIDs(p_FilterType, p_FilterCriteria, (short)p_DataTypeFilter, p_AccessRightsFilter, out l_EnumTemp);
            p_StringEnumerator = (UCOMIEnumString)l_EnumTemp;
        }
Пример #4
0
        public string[] BrowseItemIds(OpcBrowseType browseType, string filterCriteria, short dataTypeFilter, int accessRightsFilter)
        {
            IEnumString ppIEnumString = null;

            _server.BrowseOPCItemIDs((OPCBROWSETYPE)browseType, filterCriteria, dataTypeFilter, accessRightsFilter, out ppIEnumString);
            var enumString = new EnumString(ppIEnumString, 100);

            return(Enumerable.Repeat(enumString, int.MaxValue).Select(_ => _.Next()).TakeWhile(_ => _ != null).ToArray());
        }