예제 #1
0
        private static string[] GetDeviceAddresses()
        {
            var rm = GetResourceManager();

            if (rm == Visa.VI_NULL)
            {
                return(new string[0]);
            }
            int           search, cnt;
            StringBuilder sb = new StringBuilder(1024);

            if (Visa.viFindRsrc(rm, "?*", out search, out cnt, sb) >= Visa.VI_SUCCESS)
            {
                string[] res = new string[cnt];

                if (cnt > 0)
                {
                    res[0] = sb.ToString();
                }

                int i = 1;
                while ((cnt-- > 0) && (Visa.viFindNext(search, sb) == Visa.VI_SUCCESS))
                {
                    res[i++] = sb.ToString();
                }

                if (i < res.Length)
                {
                    Array.Resize(ref res, i);
                }

                Visa.viClose(search);

                return(res);
            }

            return(new string[0]);
        }