在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于HP-VISA庫的VXI總線測試應用編程

            基于HP-VISA庫的VXI總線測試應用編程

            作者: 時間:2013-03-30 來源:網絡 收藏
            一、引言
              總線是一種基于模塊化概念的標準儀器控制總線技術體系。經過十年來的發(fā)展,目前已在自動測試、虛擬儀器及其它相關專業(yè)領域內得到了廣泛應用。隨著這一概念及技術的高速發(fā)展,在大型應用系統(tǒng)的設計中,往往會碰到不同廠商儀器模塊,不同接口類型等之間的兼容性與互操作性問題。為此,即插即用聯(lián)盟為模塊專門制定了統(tǒng)一的軟、硬件標準,并于1996年底開發(fā)了一套VISA(VirtualInstrumentSoftwareArchitecture)庫。它為用戶提供了一套獨立且易用的低層I/O庫及相應的函數接口,使用戶可以方便地開發(fā)與儀器、接口類型無關的測試應用。目前,VXI庫可以支持的操作系統(tǒng)包括:WIN、WIN95/NT、SUN、HP-UX等。支持的語言及開發(fā)環(huán)境有:C/C++(VC、BC)、VB、Labview、Labwindows/CVI、HPVEE等。同時,作為一種通用的I/O標準,VISA與儀器、接口類型無關的特性,也為開發(fā)人員提供了方便,并大大縮短了開發(fā)周期。
              本文將結合HPVISA1.0中的有關內容,以Win95平臺上的VC語言為例詳細討論VXI應用編程中的有關細節(jié)。
            二、基于VISA庫的編程細節(jié)
              1.相關的頭文件及庫文件
              在應用源程序的開頭應包含對VISA庫頭文件Visa*h的引用,一般該文件在../Vxipnp/Win95/include子目錄下。Visa*h頭文件中主要是對VISA庫函數的原型聲明及相關常量、錯誤碼的定義。它還自動包含了另一個頭文件Visatype*h,該文件中包括了VISA庫中用到的數據類型的定義。
              另外,在工程文件中還需加入VISA靜態(tài)庫Visa32.lib。該文件在../Vxipnp/Win95/lib/Msc子目錄下。
              2.會話的建立與關閉
              會話(session)即與設備進行通訊的通道。在基于VISA庫編程中,與任何一個設備(包括儀器、PC機甚至打印機等)通訊之前,都必須首先與之建立一個會話。通訊結束后,應關閉這一會話。
              最先建立的應是由資源管理器之間的會話,它管理所有的資源,并成為其后打開的所有會話的“文”會話。這由以下函數調用完成:
               ViOpenDefaultRM(sesn);
              sesn是一個ViSession類型的變量指針,所指的值為資源管理會話句柄。
              接下來,為每一個需要與之通信的設備建立一個會話:ViOpen(sesn,rsrc-name,accessmode,timeout,Vi);rsrcname為設備地址,Vi指向設備會話句柄。
              設備地址為標識某一設備的字串,通常由VISA接口類型標識及設備的邏輯地址兩部分組成。具體內容可參見下表:


            接口類型設備地址示例
            VXIVXIO::24
            GPIB-VXIGPIB-VXI::128
            GPIBGPIBO::7::0
            ASRLASRL::INSTR

              在與設備通訊結束后,應調用ViClose(Vi)函數關閉會話。這樣可以釋放會話所占用的數據結構資源。
              最后,應關閉資源管理會話。
              3.資源
              如前所述,資源管理會話負責管理所有的資源??梢酝ㄟ^它來查詢指定資源及與其相關的會話。
              ViFindRsrc函數:對某一接口查詢指定的設備資源,并返回匹配項。
              ViFindNext函數:與ViFindRsrc配對使用,用于對有多個匹配項的列表。
              4.I/O命令
              一旦與設備的會話建立之后,就可以利用VISA庫中的I/O函數與設備進行通訊,VISA庫中提供了兩類I/O方式。
              ①格式化I/O
              提供了一種類似于ANSI-C語言Stdio中格式化輸入輸出方式的操作能力。包括:
              ViPrintf函數:將格式化的數據寫入設備。
              ViVprintf函數:與ViPrintf函數功能類似。
              ViScanf函數:從設備中讀出數據并按照給定的格式轉換。
              ViQueryf函數:向設備寫入一個格式化后的數據串,并接受及轉換響應數據。
              其它ViVscanf及ViVQueryf函數分別與ViScanf及ViQueryf函數功能類似。
              數據的格式是由一個格式字串確定的,具體格式與ANSI-C語言相同。
              ②無格式I/O
              無格式I/O直接發(fā)送或接收原始數據,不經過格式轉換過程。它所執(zhí)行的是一種低層的I/O操作,因此在對同一個會話的I/O中,不能混用格式化I/O與無格式I/O兩種方式。
              ViRead函數:從設備讀出數據并存放于緩沖區(qū);
              ViWrite函數:將緩沖區(qū)中數據寫入設備。
              這兩個函數執(zhí)行的是同步操作方式,另外:
              ViReadAsync函數:功能與ViRead相似,只是以異步方式讀數據,即在讀操作結束之前就可以返回。函數返回一個jobId用以標識尚未完成的操作??梢岳肰iTerminate函數強制結束它,或直到操作完成。
              ViWriteAsync函數與此類似。

            c++相關文章:c++教程



            上一頁 1 2 3 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉