新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于GPIB總線的無線電頻譜監(jiān)測系統(tǒng)的設(shè)計

        基于GPIB總線的無線電頻譜監(jiān)測系統(tǒng)的設(shè)計

        作者: 時間:2009-11-04 來源:網(wǎng)絡(luò) 收藏

          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;

          }

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

        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的狀態(tài)

          if(ibsta ERR)

          {

        return FALSE;

          }

          return ibcntl;

          }

          ③從儀器接收字節(jié)的方法主要用于完成從ESVN40的數(shù)據(jù)緩沖區(qū)中讀入一個字節(jié)。該方法對于讀取儀器的狀態(tài)寄存器非常有用。

        int CGPIB∷ReadChar(char*ch)

        {

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

        return FALSE;

          int i=1;

          RecvData((void*)ch,i);

          return TRUE;

        }

          



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 长武县| 旺苍县| 灵武市| 尖扎县| 丹东市| 华安县| 罗定市| 东安县| 宁都县| 朝阳县| 岱山县| 郧西县| 睢宁县| 伊宁市| 甘肃省| 盐亭县| 法库县| 长寿区| 四子王旗| 山西省| 德兴市| 玉门市| 五大连池市| 黄冈市| 祥云县| 沙湾县| 万荣县| 同江市| 曲阜市| 永平县| 水富县| 玛纳斯县| 张家川| 娱乐| 张掖市| 晋城| 皋兰县| 毕节市| 古蔺县| 邹城市| 石家庄市|