新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于GPIB總線的無線電頻譜監測系統的設計

        基于GPIB總線的無線電頻譜監測系統的設計

        作者: 時間:2009-11-04 來源:網絡 收藏

          BOOL C∷Open(int BdIndx,int pad,int sad,int tmo,int eot,int eos)

        { if (m_bOpened==TRUE)

            return TRUE;

          m_ctrl=ibfind(″0″);//獲得卡的控制句柄

          if (m_ctrl0)

           return FALSE;

          ibconfig(m_ctrl,IbcAUTOPOLL,0);//禁止AutoPoll

          eot=1;

          eos=0x0C0A;

          m_dev=ibdev(BdIndx,pad,sad,tmo,1,eos);

                       //獲得ESVN40的控制句柄

          if (ibsta ERR)

          { sprintf(ErrString,″打開GPIB卡出錯!錯誤號:ibsta=

                       0x%x iberr=%dn″,ibsta,iberr);

           this->SetError(ErrString);

           return FALSE;

          }

          ibbna(m_dev,″GPIB0″);  //將ESVN40分配給GPIB卡

          setGPIBEos(0x0C0A);

          m_bOpened=TRUE;

          return m_bOpened;

          }

         ?、贕PIB類中向儀器寫字符串的方法主要用于完成從控制計算機向儀器發送控制字符串的功能,可以用異步或者同步方式進行傳送。在寫之前,要對超時進行合理的設置。通常,如果字符串較長,可以把超時設定得大一些。其關鍵代碼如下:

        int CGPIB∷SendData(const char*buf,int DataLength)

        { string tmpbuf;

          tmpbuf=buf;

          tmpbuf +=10;

          ibeot(m_dev,1);

          ibwrta(m_dev,(void*)tmpbuf.c_str( ),tmpbuf.size( ));

                       //異步寫字符串到儀器

          ibwait(m_dev,0x4100);   //等待寫操作完成

          ibwait(m_dev,0x0000);   //讀出GPIB的狀態

          if(ibsta ERR)

          {

        return FALSE;

          }

          return ibcntl;

          }

          ③從儀器接收字節的方法主要用于完成從ESVN40的數據緩沖區中讀入一個字節。該方法對于讀取儀器的狀態寄存器非常有用。

        int CGPIB∷ReadChar(char*ch)

        {

          if(!(m_bOpened)||(m_dev==NULL))

        return FALSE;

          int i=1;

          RecvData((void*)ch,i);

          return TRUE;

        }

          



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 井研县| 景宁| 武陟县| 罗山县| 舒兰市| 昌邑市| 浙江省| 莲花县| 邯郸县| 永兴县| 明水县| 凤冈县| 龙口市| 冀州市| 鹤岗市| 正宁县| 阿鲁科尔沁旗| 榕江县| 玉屏| 永川市| 邻水| 郸城县| 赤壁市| 义马市| 老河口市| 通许县| 克什克腾旗| 舟山市| 当阳市| 南昌市| 南汇区| 佛教| 当雄县| 齐河县| 海淀区| 遂平县| 和硕县| 建瓯市| 连山| 云和县| 西峡县|