Example #1
0
        void getAvailableResources()
        {
            Ivi.Visa.Interop.ResourceManager rMgr = new ResourceManagerClass();
            FormattedIO488 src = new FormattedIO488Class();


            string [] resources = rMgr.FindRsrc("USB?*");
            comboBox1.Items.AddRange(resources);
            string port = comboBox1.ToString();


            // string srcAddress = "USB0::0xF4ED::0xEE3A::SDG2XBA3150073::INSTR";

            // src.IO = (Ivi.Visa.Interop.IMessage)rMgr.Open(port, Ivi.Visa.Interop.AccessMode.NO_LOCK, 0, "");



            /*src.IO = (IMessage)rMgr.Open(, AccessMode.NO_LOCK, 2000, "");
             *    src.IO.Timeout = 12000;
             *    src.WriteString("*IDN?\n");
             *    string IDN = src.ReadString();
             *
             *    Console.WriteLine(IDN);
             */
        }
Example #2
0
 /// <summary>
 /// 连接IO488对象,GPIB,TCP协议
 /// </summary>
 /// <param name="m_IOName">GPIB0::" + addr + "::INSTR,TCPIP0::192.168.0.10::5000::SOCKET</param>
 /// <returns></returns>
 public bool Open(string m_IOName)
 {
     if (m_IOName.Contains("GPIB"))
     {
         commMode = InstrumentCommunicationMode.GPIB;
     }
     if (m_IOName.Contains("TCPIP"))
     {
         commMode = InstrumentCommunicationMode.TCP;
     }
     try
     {
         Close();
         string m_Description = string.Empty;
         m_IO488 = new FormattedIO488Class();
         // 初始化m_IOName指定的接口
         m_IO488.IO = (IMessage)m_IOResourceManager.Open(m_IOName, AccessMode.NO_LOCK, 2000); //TCPIP0::172.17.200.11::5000::SOCKET
         return(true);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(false);
     }
 }
Example #3
0
        public bool Close()
        {
            try
            {
                IO_Obj.IO.Close();
            }
            catch { }

            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(IO_Obj);
            }
            catch { }

            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(Rm);
            }
            catch { }

            Rm     = null;
            IO_Obj = null;
            bOpen  = false;
            return(true);
        }
Example #4
0
 /// <summary>
 /// 关闭IO488 IO接口
 /// </summary>
 public void Close()
 {
     try
     {
         if (m_IO488 != null)
         {
             m_IO488.IO.Close();
             m_IO488 = null;
         }
     }
     catch { }
 }
        /// <summary>
        /// 连接IO488对象,GPIB,TCP协议
        /// </summary>
        /// <param name="m_IOName">GPIB0::" + addr + "::INSTR,TCPIP0::192.168.0.10::5000::SOCKET</param>
        /// <returns></returns>
        public bool Open(string m_IOName)
        {
            try
            {
                string m_Description = string.Empty;
                m_IO488 = new FormattedIO488Class();
                // 初始化m_IOName指定的GPIB接口
                m_IO488.IO = (IMessage)m_IOResourceManager.Open(m_IOName, AccessMode.NO_LOCK, 2000);

                return(true);
            }
            catch { return(false); }
        }
Example #6
0
        public bool Open(string Addr)
        {
            Rm     = new ResourceManagerClass();
            IO_Obj = new FormattedIO488Class();

            if (String.IsNullOrEmpty(Addr))
            {
                return(false);
            }
            this.InstruAddr = Addr;
            bool ret = true;

            try
            {
                IO_Obj.IO         = (IMessage)Rm.Open(this.InstruAddr, AccessMode.NO_LOCK, 500, null);
                IO_Obj.IO.Timeout = 500;
                bOpen             = ret = true;
            }
            catch (Exception e)
            {
                try
                {
                    IO_Obj.IO.Close();
                }
                catch { }

                try
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(IO_Obj);
                }
                catch { }

                try
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(Rm);
                }
                catch { }

                Rm     = null;
                IO_Obj = null;
                bOpen  = ret = false;
                Log.f(this.GetType().FullName, "Open() :" + e.Message);
            }
            return(ret);
        }
Example #7
0
        private bool OpenIo()
        {
            m_ResourceManager = new ResourceManagerClass();
            m_IoObject        = new FormattedIO488Class();
            // Open the default VISA COM IO object.
            try
            {
                m_IoObject.IO =
                    (IMessage)m_ResourceManager.Open(m_strVisaAddress,
                                                     AccessMode.NO_LOCK, 0, "");
            }
            catch (Exception e)
            {
                return(false);
            }

            return(true);
        }
Example #8
0
File: Visa.cs Project: tomyqg/EPTS
        /// <summary>
        /// Device Agilent Initialization
        /// </summary>
        public virtual void Initialization()
        {
            HandlerError.ClearErrors();

            ResourceManager = new ResourceManagerClass();
            ResourceIO      = new FormattedIO488Class();
            try
            {
                ResourceManager.Open(DeviceAddress, AccessMode.NO_LOCK, 0, "");
                ResourceIO.IO = (IMessage)ResourceManager.Open(DeviceAddress, AccessMode.NO_LOCK, 0, "");
            }
            catch (Exception e)
            {
                HandlerError.ErrorOccurred = true;
                HandlerError.ErrorMsg      = "Init resource Agilent Method. " + e.Message;
                throw new Exception(HandlerError.ErrorMsg);
            }
        }
Example #9
0
        public void BK8600()
        {
            //EC7::0x8800::802197036737120008::INSTR
            string          srcAddress = "USB0::0x2EC7::0x8800::802197036737120008::INSTR";
            ResourceManager rMgr       = new ResourceManagerClass();
            FormattedIO488  src        = new FormattedIO488Class();
            var             addresses  = rMgr.FindRsrc("USB?*");

            var s = rMgr.Description;
            var x = rMgr.SpecVersion;

            src.IO         = (IMessage)rMgr.Open(srcAddress, AccessMode.NO_LOCK, 2000, "");
            src.IO.Timeout = 2000;
            src.IO.Clear();
            src.WriteString("*RST; *OPC ?", true);
            src.WriteString("*IDN?", true);
            string temp = src.ReadString();
        }
Example #10
0
        public bool InitiateIO488(string m_IOName, bool m_LogFileOn)
        {
            bool flag;

            try
            {
                string empty = string.Empty;
                ResourceManagerClass resourceManagerClass = new ResourceManagerClass();
                this.m_IO488 = new FormattedIO488Class()
                {
                    IO = (IMessage)resourceManagerClass.Open(m_IOName, AccessMode.NO_LOCK, 20000, "")
                };
                flag = true;
            }
            catch
            {
                flag = false;
            }
            return(flag);
        }
        static void Main(string[] args)
        {
            var rm = new ResourceManagerClass();


            string addr   = "USB0::0x2A8D::0xB318::MY57330031::0::INSTR";
            var    myDmm2 = new FormattedIO488Class();

            myDmm2.IO = (IMessage)rm.Open(addr, AccessMode.NO_LOCK, 2000, "");



            while (true)
            {
                myDmm2.IO.WriteString("READ?");
                var result = myDmm2.ReadString();
                Console.WriteLine(result);
            }



            while (true)
            {
                Write("Press ENTER to start read/write");
                var key = Console.ReadKey();
                if (key.Key != ConsoleKey.Enter)
                {
                    return;
                }

                Write("Reading from device");

                var myDmm = new FormattedIO488Class();
                try
                {
                    myDmm.IO = (IMessage)rm.Open(addr, AccessMode.NO_LOCK, 2000, "");

                    myDmm.IO.WriteString("DATA:DATA? NVMEM");
                    var result = myDmm.ReadString();

                    var rawNumbers = result.Split(',');

                    Write($"found {rawNumbers.Length} measurements");

                    var formatProvider = new CultureInfo("en-us");

                    var chart = new Chart();

                    chart.AmpereValues = rawNumbers
                                         .Select(x => double.Parse(x, formatProvider))
                                         .ToList();

                    chart.Count              = chart.AmpereValues.Count;
                    chart.Mittelwert         = chart.AmpereValues.Average();
                    chart.Min                = chart.AmpereValues.Min();
                    chart.Max                = chart.AmpereValues.Max();
                    chart.Standardabweichung = chart.AmpereValues
                                               .Select(x =>
                    {
                        var minusMittel = x - chart.Mittelwert;
                        return((double)Math.Sqrt((double)(minusMittel * minusMittel)));
                    })
                                               .Average();

                    Console.WriteLine(chart);

                    Write("Input Title (Default: " + chart.Title + "):");

                    var title = Console.ReadLine();
                    if (!string.IsNullOrWhiteSpace(title))
                    {
                        chart.Title = title + "-" + chart.Title;
                    }

                    Write("Creating file: " + chart.Title);

                    var json = JsonConvert.SerializeObject(chart);
                    File.WriteAllText(@"D:\GoogleDrive\FH Joanneum\Master\graphs\logs\" + chart.Title + ".json", json,
                                      Encoding.UTF8);

                    Write("Done creating file");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                finally
                {
                    myDmm.IO.Close();
                }
            }

            Console.Read();
        }
Example #12
0
        public static void ScanIOStatus(ref string[] m_IOAddress, ref string[] m_Description)
        {
            string empty = string.Empty;
            string str   = string.Empty;

            try
            {
                ResourceManagerClass resourceManagerClass = new ResourceManagerClass();
                string[]             portNames            = new string[1];
                FormattedIO488Class  formattedIO488Class  = new FormattedIO488Class();
                portNames = resourceManagerClass.FindRsrc("GPIB?*");
                for (int i = 1; i < (int)portNames.Length; i++)
                {
                    try
                    {
                        string empty1 = string.Empty;
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[i], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.IO.Clear();
                        try
                        {
                            formattedIO488Class.WriteString("*IDN?", true);
                            Thread.Sleep(100);
                            empty1 = formattedIO488Class.ReadString();
                        }
                        catch
                        {
                        }
                        if (!(empty1 != string.Empty) || !(empty1 != "\r\n"))
                        {
                            try
                            {
                                formattedIO488Class.WriteString("ID?", true);
                                Thread.Sleep(100);
                                empty1 = formattedIO488Class.ReadString();
                            }
                            catch
                            {
                            }
                            if (empty1 != string.Empty)
                            {
                                if (empty != string.Empty)
                                {
                                    empty = string.Concat(empty, ";");
                                    str   = string.Concat(str, ";");
                                }
                                empty = string.Concat(empty, portNames[i]);
                                str   = string.Concat(str, empty1);
                            }
                        }
                        else
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[i]);
                            str   = string.Concat(str, empty1);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("TCPIP0::?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int j = 0; j < (int)portNames.Length; j++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[j], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.IO.Timeout = 2000;
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str1 = formattedIO488Class.ReadString();
                        if (str1 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[j]);
                            str   = string.Concat(str, str1);
                        }
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("ASRL?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int k = 0; k < (int)portNames.Length; k++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[k], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str2 = formattedIO488Class.ReadString();
                        if (str2 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[k]);
                            str   = string.Concat(str, str2);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("USB?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int l = 0; l < (int)portNames.Length; l++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[l], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str3 = formattedIO488Class.ReadString();
                        if (str3 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[l]);
                            str   = string.Concat(str, str3);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                portNames = SerialPort.GetPortNames();
                for (int m = 0; m < (int)portNames.Length; m++)
                {
                    try
                    {
                        int num = 0;
                        while (true)
                        {
                            string     str4       = "*IDN?";
                            SerialPort serialPort = new SerialPort(portNames[m])
                            {
                                BaudRate = 9600,
                                DataBits = 8,
                                Parity   = Parity.None
                            };
                            serialPort.Open();
                            Thread.Sleep(300);
                            serialPort.Write("\r\n");
                            for (int n = 0; n < str4.Length; n++)
                            {
                                serialPort.Write(str4.Substring(n, 1));
                                Thread.Sleep(20);
                                if (n == str4.Length - 1)
                                {
                                    serialPort.Write("\r");
                                }
                            }
                            Thread.Sleep(300);
                            string str5 = serialPort.ReadExisting();
                            serialPort.Close();
                            if (!(str5 != string.Empty) || str5.IndexOf("*IDN?") >= 0)
                            {
                                if (num >= 1)
                                {
                                    break;
                                }
                                num++;
                            }
                            else
                            {
                                if (empty != string.Empty)
                                {
                                    empty = string.Concat(empty, ";");
                                    str   = string.Concat(str, ";");
                                }
                                empty = string.Concat(empty, portNames[m]);
                                str   = string.Concat(str, str5);
                                break;
                            }
                        }
                    }
                    catch (Exception exception)
                    {
                    }
                }
            }
            catch
            {
            }
            char[] chrArray = new char[] { ';' };
            m_IOAddress = empty.Split(chrArray);
            char[] chrArray1 = new char[] { ';' };
            m_Description = str.Split(chrArray1);
        }