public static double ReadDB(string addr, string window, string m1)
        {
            int resourceManager = 0, viError;
            int session = 0;


            viError = AgVisa32.viOpenDefaultRM(out resourceManager);

            viError = AgVisa32.viOpen(resourceManager, addr.ToString(),
                                      AgVisa32.VI_NO_LOCK, AgVisa32.VI_TMO_IMMEDIATE, out session);
            System.Threading.Thread.Sleep(100);

            viError = AgVisa32.viPrintf(session, "CALC:PAR:SEL '" + window + "'" + "\n");

            viError = AgVisa32.viPrintf(session, "CALC:" + m1 + ":Y?" + "\n");
            string res = "";

            AgVisa32.viRead(session, out res, 100);

            System.Threading.Thread.Sleep(100);
            AgVisa32.viClose(session);
            AgVisa32.viClose(resourceManager);
            double dtmp = double.Parse(res.ToString().Split(',')[0]);

            return(dtmp);
        }
示例#2
0
        public void Dispose()
        {
            // If the user hasn't called Close() we need to
            // close the VISA session without the possibility
            // of throwing an exception (so call viClose directly)
            if (mSession != 0)
            {
                int status = AgVisa32.viClose(mSession);
                mSession = 0;
                if (status != 0)
                {
                    Debug.Print("AgVisa.viClose(session) failed.  Status={0:x}", status);
                }

                // Release any virtual memory...
                lock ( mVirtualMemoryLock )
                {
                    if (mVirtualMemory != (IntPtr)0)
                    {
                        VirtualFree(mVirtualMemory, (UIntPtr)0, (uint)MemoryFreeType.MEM_RELEASE);
                        mVirtualMemory     = (IntPtr)0;
                        mVirtualMemorySize = 0;
                    }
                }

                // Release Default Resource manager
                lock ( mResourceManagerLock )
                {
                    mResourceManagerCount--;
                    if (mResourceManagerCount <= 0)
                    {
                        mResourceManagerCount = 0;
                        if (mResourceManager != 0)
                        {
                            status           = AgVisa32.viClose(mResourceManager);
                            mResourceManager = 0;
                            if (status != 0)
                            {
                                Debug.Print("AgVisa.viClose(manager) failed.  Status={0:x}", status);
                            }
                        }
                    }
                }
            }
        }
        public static void VisaWrite(string ip, string command)
        {
            StringBuilder gpib = new StringBuilder();

            gpib = gpib.AppendFormat("TCPIP0::{0}::inst0::INSTR", ip);

            int resourceManager = 0, viError;
            int session = 0;


            viError = AgVisa32.viOpenDefaultRM(out resourceManager);

            viError = AgVisa32.viOpen(resourceManager, gpib.ToString(),
                                      AgVisa32.VI_NO_LOCK, AgVisa32.VI_TMO_IMMEDIATE, out session);
            System.Threading.Thread.Sleep(100);
            viError = visa32.viPrintf(session, command + "\n");
            System.Threading.Thread.Sleep(100);
            AgVisa32.viClose(session);
            AgVisa32.viClose(resourceManager);
        }
        public static void SetMark(string p, string m1, double value)
        {
            StringBuilder gpib = new StringBuilder();

            gpib = gpib.AppendFormat("TCPIP0::{0}::inst0::INSTR", p);

            int resourceManager = 0, viError;
            int session = 0;


            viError = AgVisa32.viOpenDefaultRM(out resourceManager);

            viError = AgVisa32.viOpen(resourceManager, gpib.ToString(),
                                      AgVisa32.VI_NO_LOCK, AgVisa32.VI_TMO_IMMEDIATE, out session);
            System.Threading.Thread.Sleep(100);
            viError = visa32.viPrintf(session, "CALC:" + m1 + ":X " + value + "MHz" + "\n");
            System.Threading.Thread.Sleep(100);
            AgVisa32.viClose(session);
            AgVisa32.viClose(resourceManager);
        }
        public static void OpenPWR(string p, int dbm)
        {
            StringBuilder gpib = new StringBuilder();

            gpib = gpib.AppendFormat("TCPIP0::{0}::inst0::INSTR", p);

            int resourceManager = 0, viError;
            int session = 0;


            viError = AgVisa32.viOpenDefaultRM(out resourceManager);

            viError = AgVisa32.viOpen(resourceManager, gpib.ToString(),
                                      AgVisa32.VI_NO_LOCK, AgVisa32.VI_TMO_IMMEDIATE, out session);
            System.Threading.Thread.Sleep(100);
            viError = visa32.viPrintf(session, ":OUTPut ON" + "\n");
            viError = visa32.viPrintf(session, ":POWer " + dbm + " dBm" + "\n");
            System.Threading.Thread.Sleep(100);
            AgVisa32.viClose(session);
            AgVisa32.viClose(resourceManager);
        }
示例#6
0
 /// <summary>
 /// Close the underlying driver
 /// </summary>
 public void Close()
 {
     if (mSession != 0)
     {
         CheckStatus(AgVisa32.viClose(mSession));
         mSession = 0;
     }
     // Make sure cached values are cleared
     mSlot      = -1;
     mModelCode = -1;
     mModelName = string.Empty;
     // Release any virtual memory...
     lock ( mVirtualMemoryLock )
     {
         if (mVirtualMemory != (IntPtr)0)
         {
             VirtualFree(mVirtualMemory, (UIntPtr)0, (uint)MemoryFreeType.MEM_RELEASE);
             mVirtualMemory     = (IntPtr)0;
             mVirtualMemorySize = 0;
         }
     }
 }
        public static bool MmemLoad(string addr, string filename)
        {
            try
            {
                int resourceManager = 0, viError;
                int session = 0;


                viError = AgVisa32.viOpenDefaultRM(out resourceManager);

                viError = AgVisa32.viOpen(resourceManager, addr.ToString(),
                                          AgVisa32.VI_NO_LOCK, AgVisa32.VI_TMO_IMMEDIATE, out session);
                System.Threading.Thread.Sleep(100);
                viError = visa32.viPrintf(session, "MMEM:LOAD '" + filename + "'" + "\n");
                System.Threading.Thread.Sleep(100);
                AgVisa32.viClose(session);
                AgVisa32.viClose(resourceManager);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#8
0
 /// <summary>
 /// 断开连接
 /// </summary>
 public virtual void VisaClose()
 {
     AgVisa32.viClose(_Session);
     AgVisa32.viClose(_ResourceManager);
 }
 public void VisaClose()
 {
     AgVisa32.viClose(session);
     AgVisa32.viClose(resourceManager);
 }