VISA常用函數(shù)_第1頁
VISA常用函數(shù)_第2頁
VISA常用函數(shù)_第3頁
VISA常用函數(shù)_第4頁
VISA常用函數(shù)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、函數(shù)viOpenDefaultRM原型ViStatus viOpenDefaultRM (ViSession sesn );描述這個函數(shù)用來初始化一個VISA資源管理器,此函數(shù)必須要在其他任何VISA函數(shù)之前調(diào)用。函數(shù)通過sesn參數(shù)返回一個獨(dú)立的VISA資源管理器ID。參數(shù)名稱方向類型描述sesnOUTViSession返回一個獨(dú)一無二的VISA資源管理器邏輯標(biāo)識符返回值返回值為函數(shù)運(yùn)行結(jié)果,如果成功sesn返回VISA資源管理器標(biāo)識符,否則返回0。標(biāo)識符值描述VI_SUCCESS0VISA資源管理器初始化成功。VI_ERROR_ALLOC系統(tǒng)資源不足。VI_ERROR_INV_SETUP配

2、置文件無效或者不存在。VI_ERROR_SYSTEM_ERRORVISA系統(tǒng)初始化失敗。viOpen原型ViStatus viOpen (ViSession sesn, ViRsrc rsrcName, ViAccessMode accessMode, ViUInt32 timeout, ViSession vi);描述連接一個指定的設(shè)備,返回一個可用于調(diào)用其他功能的連接標(biāo)識符。參數(shù)名稱方向類型描述sesnINViSessionVISA資源管理器邏輯標(biāo)識符。rsrcNameINViRsrc地址名稱。accessModeINViAccessMode連接打開方式,可以是以下值:VI_EXCLUSI

3、VE_LOCK獨(dú)占方式打開;VI_LOAD_CONFIG更具外部配置文件打開;VI_NULL正常多訪問打開。timeoutINViUInt32如果是以獨(dú)占模式連接,該參數(shù)是一個絕對時間(單位ms),超時就返回一個錯誤。其他連接方式忽略此值。viOUTViSession返回打開連接邏輯標(biāo)識符。返回值返回值為函數(shù)運(yùn)行結(jié)果,如果成功vi返回設(shè)備連接標(biāo)識符,否則返回0。標(biāo)識符值描述VI_SUCCESS0連接成功。VI_SUCCESS_DEV_NPRESENT連接成功。但是指定的地址無響應(yīng)。VI_WARN_CONFIG_NLOADED指定的地址不存在或者地址格式不正確。VI_ERROR_ALLOC系統(tǒng)資

4、源不足。VI_ERROR_INTF_NUM_NCONFIG指定的地址是有效的,但無法使用。VI_ERROR_INV_ACC_MODE非法的存取模式。VI_ERROR_INV_RSRC_NAME地址名稱語法錯誤。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT無效的vi。VI_ERROR_LIBRARY_NFOUNDVISA庫加載不完全。VI_ERROR_NSUP_OPER資源管理器sesn不支持此函數(shù)。VI_ERROR_RSRC_BUSYsesn是有效的,但當(dāng)前無法訪問。VI_ERROR_RSRC_LOCKEDsesn被獨(dú)占。VI_ERROR_RSRC_NFOUN

5、D信息不足或者資源不存在。VI_ERROR_TMO0xBFFF0015操作超時。viClose原型ViStatus viClose(ViSession vi);ViStatus viClose(ViEvent vi);ViStatus viClose(ViFindList vi);描述關(guān)閉一個資源管理器或者設(shè)備連接,并釋放內(nèi)存。參數(shù)名稱方向類型描述viINViSessionViEventViFindList需要關(guān)閉的對象。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0關(guān)閉成功。VI_WARN_NULL_OBJECT要關(guān)閉的對象是空對象。VI_ERROR_CLOSING_FAIL

6、EDvi不能標(biāo)識正當(dāng)對話通道。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT無法釋放與該對話通道相關(guān)聯(lián)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)。viFindRsrc原型ViStatus viFindRsrc(ViSession sesn, ViString expr, ViPFindList findList, ViPUInt32 retcnt, ViRsrc instrDesc);描述該函數(shù)用于查找VISA系統(tǒng)里與指定接口相連的資源設(shè)備。該函數(shù)查找的與expr參數(shù)相匹配的有效資源設(shè)備。該函數(shù)成功完成將返回與exor相匹配的資源組中的第一個資源(instrDesc),還返回一個資源組中的

7、個數(shù)(retnt)。另外還返回一個找到的隊列句柄,可以同過調(diào)用viFindNext傳入這個句柄來獲得其他找到的資源。當(dāng)這個句柄不需要時必須調(diào)用viClose關(guān)閉。expr參數(shù)不區(qū)分大小寫,搜尋標(biāo)準(zhǔn)由兩個部分組成:一個資源的正則表達(dá)式和一個可選的屬性值邏輯表達(dá)式。這個正則表達(dá)式是與已知的VISA資源管理器相匹配。如果這資源字符串與正則表達(dá)式相匹配,并且屬性值也與邏輯表達(dá)式匹配,則這匹配是成功的,這資源將添加到資源查詢隊列(findList)中。(安捷倫的VISA不支持匹配屬性值。)這可選的屬性邏輯表達(dá)式允許使用邏輯符號AND,OR,NOT。相等(=)和不等(!=)可以用與任何類型的屬性比較。另外

8、的非等號比較的(>,<,>=,<=)只能用于數(shù)值類型的屬性比較。僅僅全局屬性才能參與屬性表達(dá)式。如果findList參數(shù)傳入的是VI_NULL,則會自動調(diào)用viClose關(guān)閉查找到的資源隊列。findList參數(shù)和retcnt參數(shù)都是可選的,如果只需要第一個匹配到的設(shè)備并且不需要知道連接了多少設(shè)備這兩個參數(shù)都可以傳入VI_NULL。所有返回的字符串都需要經(jīng)過viParseRsrc和viOpen函數(shù)的驗證,不是所有查詢到的資源都可以通過和查詢的。參數(shù)名稱方向類型描述sesnINViSession資源管理器。必須要被viOpenDefaultRM函數(shù)初始化。exprINVi

9、String表達(dá)要搜索的一個接口或者所有接口存在的設(shè)備。(參照下面的格式描述字符串表)findListOUTViPFindList返回一個搜索到的句柄標(biāo)識符,這句柄可以作為viFindNext函數(shù)的參數(shù)傳入。如果為VI_NULL,自動動調(diào)用viClose關(guān)閉findList。retcntOUTViPUInt32匹配到的設(shè)備數(shù)量。如果為VI_NULL,不返回找到的個數(shù)。instrDescOUTViRsrc返回一個設(shè)備識別地址字符串,可以直接傳給viOpen建立一個會話。expr參數(shù)描述字符串說明:接口表達(dá)GPIBGPIB0-9*:?*INSTRVXIVXI?*INSTRGPIB-VXIGPIB-

10、VXI?*INSTRGPIB和GPIB-VXIGPIB?*INSTRAll VXI?*VXI0-9*:?*INSTRASRLASRL0-9*:?*INSTRAll?*INSTR返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0找到資源。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT傳遞的對象無效。VI_ERROR_NSUP_OPER不支持該函數(shù)。VI_ERROR_INV_EXPR無效的搜索指定。VI_ERROR_RSRC_NFOUND沒有找到設(shè)備。viFindNext原型ViStatus viFindNext(ViFindList findList,

11、 ViPRsrc instrDesc);描述返回查找資源隊列上的下一個資源。參數(shù)名稱方向類型描述findListINViFindList查找隊列句柄。必須由viFindRsrc函數(shù)創(chuàng)建。instrDescOUTViPRsrc返回一個地址字符串。字符串可以通過調(diào)用viOpen函數(shù)建立一個會話連接。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0找到資源。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTfindList不能標(biāo)志正確的連接。VI_ERROR_NSUP_OPERfindList不支持該函數(shù)。VI_ERROR_RSRC_NFOUND沒找到資源。

12、viParseRsrc原型ViStatus viParseRsrc(ViSession sesn, ViRsrc rsrcName, ViPUInt16 intfType, ViPUInt16 intfNum);描述從語法上分析一個指向設(shè)備的資源字符串。這操作分析字符串的有效性。viFindRsrc函數(shù)返回的所有字符串都必須在分析成功后才能調(diào)用viOpen函數(shù)。返回的intfType和intfNum分別對應(yīng)VI_ATTR_INTF_TYPE和VI_ATTR_INTF_NUM屬性。這些值將與使用viOpen函數(shù)連接后使用viGetAttribute函數(shù)查詢的值一樣。在viOpen函數(shù)中設(shè)置別名,

13、viParesRsrc函數(shù)也能識別。rsrcName參數(shù)不區(qū)分大小寫。參數(shù)名稱方向類型描述sesnINViSession默認(rèn)資源管理器(必須經(jīng)過viOpenDefaultRM函數(shù)初始化)。rsrcNameINViRsrc資源獨(dú)立的名稱。intfTypeOUTViPUInt16會話連接的接口類型。intfNumOUTViPUInt16會話連接的板號。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0資源字符串是有效的。VI_ERROR_ALLOC內(nèi)存不足。VI_ERROR_INTF_NUM_NCONFIG接口類型是有效的,但接口號是無效的。VI_ERROR_INV_RSRC_NAME

14、無效的資源指示字符串。語法錯誤。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTsesn不能標(biāo)志正確的連接。VI_ERROR_LIBRARY_NFOUND一個VISA必須庫無法加載。VI_ERROR_NSUP_OPER給定的sesn不支持該函數(shù)。例如,該函數(shù)僅僅支持默認(rèn)資源管理器的sesn。VI_ERROR_RSRC_NFOUND位置信息不足。viClear原型ViStatus viClear(ViSession vi);描述清空設(shè)備,執(zhí)行IEEE 488.1系統(tǒng)的清空操作。如果連接方式是使用VXI總線,將清空所有連接設(shè)備;如果連接方式是使用GPIB數(shù)據(jù)采集板,將

15、只清空指定地址的設(shè)備;如果連接方式是使用TCPIP套接字,需要把VI_ATTR_IO_PROT屬性設(shè)置成VI_PROT_4882_STRS,將相當(dāng)于向設(shè)備發(fā)送”*CLSn”字符串,其他設(shè)置操作無效。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0函數(shù)執(zhí)行成功。VI_ERROR_BERR總線錯誤。VI_ERROR_CONN_LOST連接丟失。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_INV_SETUP設(shè)置無效,不能執(zhí)行操作。VI_ERROR_NCI

16、C非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_NSUP_OPERvi不支持此函數(shù)VI_ERROR_RAW_RD_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_WR_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO操作超時。viFlush原型ViStatus viFlush(ViSession vi, ViUInt16 mask);描述手動刷新格式化I/O緩沖區(qū)。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。maskINViUInt16緩沖區(qū)類型。返回值返回值為

17、函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0函數(shù)執(zhí)行成功。VI_ERROR_INV_MASK緩沖區(qū)類型設(shè)置錯誤VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_IOI/O錯誤VI_ERROR_RSRC_LOCKED存取鎖定模式不支持特定操作VI_ERROR_TMO超時。viReadSTB原型ViStatus viReadSTB(ViSession vi, ViPUInt16 status);描述讀取一個服務(wù)請求狀態(tài)。例如,在IEEE488.2接口上,這消息將輪訓(xùn)所有的連接設(shè)備。其他接口這消息只讀取一個設(shè)備的服務(wù)請求狀態(tài)。

18、連接方式是使用TCPIP套接字,如果VI_ATTR_IO_PROT屬性的值為VI_PROT_4882_STRS,將向這設(shè)備發(fā)送字符串”*STB?n”查詢狀態(tài),其他設(shè)置則操作將無效。如果這個設(shè)備狀態(tài)信息只有一個字節(jié)(BYTE)長度,則另外一個字節(jié)設(shè)為0。如果服務(wù)請求沒有在規(guī)定時間周期內(nèi)完成,將返回VI_ERROR_TMO。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。statusOUTViUInt16服務(wù)請求狀態(tài)字節(jié)。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0函數(shù)執(zhí)行成功。VI_ERROR_BERR總線錯誤。VI_ERROR_CONN_LOST連接丟失。VI_ER

19、ROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_INV_SETUP設(shè)置無效,不能執(zhí)行操作。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_NSUP_OPERvi不支持此函數(shù)VI_ERROR_RAW_RD_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_WR_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_SRQ_NOCCURRED對象沒有收到服務(wù)請求。VI_ERROR_TMO操作超時。viRead

20、原型ViStatus viRead(ViSession vi, ViBuf buf, ViUInt32 count,ViUInt32 retCount);描述同步讀取數(shù)據(jù)。讀取的數(shù)據(jù)存儲在buf中。當(dāng)數(shù)據(jù)讀取完畢函數(shù)才返回。任何時間都只能存在一個同步讀取。遇到以下情況同步讀取結(jié)束: 收到END指示器 讀取到終止符 讀取的數(shù)據(jù)大小達(dá)到count的值注意:必須設(shè)置讀取終止符。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。bufOUTViBuf返回數(shù)據(jù)存取地址。countINViUInt32指定讀取長度。retCountOUTViUInt32實(shí)際讀取長度。如果為VI_NULL表示不關(guān)心該

21、值。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0成功讀取,讀取到END指示器結(jié)束。VI_SUCCESS_MAX_CNT成功讀取,已經(jīng)達(dá)到最大長度count。VI_SUCCESS_TERM_CHAR成功讀取,讀取到特定終止符。VI_ERROR_ASRL_FRAMING構(gòu)架錯誤。VI_ERROR_ASRL_OVERRUN溢出錯誤。VI_ERROR_ASRL_PARITY同步錯誤。VI_ERROR_BERR總線錯誤。VI_ERROR_CONN_LOST連接丟失。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_I

22、NV_SETUP設(shè)置無效,不能執(zhí)行操作。VI_ERROR_IO未知I/O錯誤。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_NSUP_OPERvi不支持此函數(shù)VI_ERROR_OUTP_PROT_VIOL設(shè)備記錄一個輸出協(xié)議錯誤。VI_ERROR_RAW_RD_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_WR_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO操作超時。viReadAsync原型ViStatus viReadAsync(ViSess

23、ion vi, ViBuf buf, ViUInt32 count, ViJobId jobId);描述異步讀取數(shù)據(jù)。讀取的數(shù)據(jù)存儲在buf中。當(dāng)數(shù)據(jù)讀取完畢函數(shù)才返回。當(dāng)數(shù)據(jù)傳輸結(jié)束時觸發(fā)一個I/O結(jié)束事件。該函數(shù)返回一個jobId表示該操作的標(biāo)識符,可以使用viTerminate函數(shù)傳入jobId終止或者等待I/O結(jié)束事件來確定異步讀操作完成。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。bufOUTViBuf返回數(shù)據(jù)存取地址。countINViUInt32指定讀取長度。jobIdOUTViJobId異步讀操作工作標(biāo)識符。如果為VI_NULL表示不關(guān)心該值。返回值返回值為函數(shù)運(yùn)

24、行結(jié)果。標(biāo)識符值描述VI_SUCCESS0異步讀成功進(jìn)入隊列。VI_SUCCESS_SYNC讀操作進(jìn)行異步。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_QUEUE_ERROR隊列錯誤。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。viReadToFile原型ViStatus viReadToFile (ViSession vi, ViConstString fileName, ViUInt32 count, ViUInt32 retCount);描述同步讀取數(shù)據(jù)并把數(shù)據(jù)保存到文件中。fileName指定的文件只有

25、只寫權(quán)限。如果VI_ATTR_FILE_APPEND_EN屬性值為VI_FLASE,數(shù)據(jù)寫入將直接覆蓋原來的數(shù)據(jù),否則在文件內(nèi)容尾部添加數(shù)據(jù)。僅當(dāng)數(shù)據(jù)讀取和保存操作完成此函數(shù)才返回。此函數(shù)一般用于保存未處理的數(shù)據(jù)便于后期處理。VSIA使用ANSI C(標(biāo)準(zhǔn)C)文件操作。viReadToFile的模式通常是”wb”或者”ab” 。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。fileNameINViConstString寫入的文件地址。countINViUInt32讀取數(shù)據(jù)長度。retCountOUTViUInt32實(shí)際讀取數(shù)據(jù)長度。如果為VI_NULL表示不關(guān)心該值。返回值返回值為

26、函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0操作成功。VI_SUCCESS_MAX_CNT讀取的數(shù)據(jù)長度達(dá)到了count的值。VI_SUCCESS_TERM_CHAR讀取到指定的終止符號。VI_ERROR_ASRL_FRAMING格式錯誤。VI_ERROR_ASRL_OVERRUN溢出錯誤。VI_ERROR_ASRL_PARITY同步錯誤。VI_ERROR_BERR總線錯誤。VI_ERROR_CONN_LOST連接丟失。VI_ERROR_FILE_ACCESS打開文件錯誤。可能是提供的無效路徑或者沒有訪問權(quán)限。VI_ERROR_FILE_IO訪問文件時發(fā)生錯誤。VI_ERROR_INV_S

27、ESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_INV_SETUP設(shè)置無效,不能執(zhí)行操作。VI_ERROR_IO未知I/O錯誤。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_NSUP_OPERvi不支持此函數(shù)VI_ERROR_OUTP_PROT_VIOL設(shè)備報告輸出協(xié)議錯誤。VI_ERROR_RAW_RD_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_WR_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO

28、超時。viWrite原型ViStatus viWrite(ViSession vi, ViBuf buf, ViUInt32 count, ViUInt32 retCount);描述同步寫入數(shù)據(jù)。寫入的數(shù)據(jù)存儲在buf中。當(dāng)數(shù)據(jù)寫入完畢函數(shù)才返回。任何時間都只能存在一個同步寫入。如果retCount的值為VI_NULL將不返回寫入數(shù)據(jù)長度值。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。bufINViBuf寫入數(shù)據(jù)存放地址。countINViUInt32指定寫入長度。retCountOUTViUInt32實(shí)際寫入長度。如果為VI_NULL表示不關(guān)心該值。返回值返回值為函數(shù)運(yùn)行結(jié)果。

29、標(biāo)識符值描述VI_SUCCESS0成功讀取,讀取到END指示器結(jié)束。VI_SUCCESS_MAX_CNT成功讀取,已經(jīng)達(dá)到最大長度count。VI_SUCCESS_TERM_CHAR成功讀取,讀取到特定終止符。VI_ERROR_ASRL_FRAMING格式錯誤。VI_ERROR_ASRL_OVERRUN溢出錯誤。VI_ERROR_ASRL_PARITY同步錯誤。VI_ERROR_BERR總線錯誤。VI_ERROR_CONN_LOST連接丟失。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_INV_SETUP設(shè)置無效,不能執(zhí)

30、行操作。VI_ERROR_IO未知I/O錯誤。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_NSUP_OPERvi不支持此函數(shù)VI_ERROR_OUTP_PROT_VIOL設(shè)備報告輸出協(xié)議錯誤。VI_ERROR_RAW_RD_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_WR_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO操作超時。viWriteAsync原型ViStatus viWriteAsync(ViSession vi, ViBuf bu

31、f, ViUInt32 count, ViJobId jobId);注意:在安捷倫設(shè)備中將調(diào)用同步寫入。描述異步寫入數(shù)據(jù)。需要寫入的數(shù)據(jù)存放在buf中。當(dāng)數(shù)據(jù)寫入完畢函數(shù)才返回。當(dāng)數(shù)據(jù)傳輸完整結(jié)束時會觸發(fā)一個I/O結(jié)束事件。該函數(shù)返回一個jobId表示該操作的標(biāo)識符,可以使用viTerminate函數(shù)傳入jobId終止或者等待I/O結(jié)束事件來確定異步讀操作完成。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。bufINViBuf寫入數(shù)據(jù)存取地址。countINViUInt32寫入數(shù)據(jù)長度。jobIdOUTViJobId異步寫入操作工作標(biāo)識符。如果為VI_NULL表示不關(guān)心該值。返回值

32、返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0異步寫成功進(jìn)入隊列。VI_SUCCESS_SYNC寫操作進(jìn)行異步。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_QUEUE_ERROR隊列錯誤。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。viWriteFromFile原型ViStatus viWriteFromFile (ViSession vi, ViConstString fileName, ViUInt32 count, ViUInt32 retCount);描述從一個指定的文件中獲取數(shù)據(jù)并同步寫入設(shè)

33、備中。指定的fileName是以只讀模式打開讀取數(shù)據(jù)(讀取全部數(shù)據(jù)或者數(shù)據(jù)長度達(dá)到count的值)。讀取到的數(shù)據(jù)都將寫入到設(shè)備中。該函數(shù)僅當(dāng)操作完成才結(jié)束返回。該操作通常是發(fā)送已經(jīng)經(jīng)過處理的數(shù)據(jù)。VISA以ANSI C(標(biāo)準(zhǔn)C)文件操作,所以viWriteFromFile模式一般都是”rb”。如果retCount參數(shù)設(shè)為VI_NULL,函數(shù)將不返回實(shí)際發(fā)送的數(shù)據(jù)長度,此操作常用于只需知道是否成功的操作。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。fileNameINViConstString讀取的文件地址。countINViUInt32寫入數(shù)據(jù)長度。retCountOUTViUI

34、nt32實(shí)際寫入長度。如果為VI_NULL表示不關(guān)心該值。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0操作成功。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_NSUP_OPERvi不支持該函數(shù)。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO超時。VI_ERROR_RAW_RW_PROT_VIOL傳輸時讀協(xié)議被破壞。VI_ERROR_RAW_RD_PROT_VIOL傳輸時寫協(xié)議被破壞。VI_ERROR_OUTP_PROT_VIOL傳輸時設(shè)備報告輸入?yún)f(xié)議錯誤。VI_ERROR_

35、BERR總線錯誤。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS沒有檢測到聽者。VI_ERROR_IO未知I/O錯誤。VI_ERROR_FILE_ACCESS打開文件錯誤。可能是提供的無效路徑或者沒有訪問權(quán)限。VI_ERROR_FILE_IO訪問文件時發(fā)生錯誤。VI_ERROR_CONN_LOST連接丟失。viPrintf原型ViStatus viPrintf(ViSession vi, ViString writeFmt, arg1, arg2,.);描述格式化字符串并發(fā)送格式化后的字符串給設(shè)備。(字符串格式化可以參照MFC里CString類中的Format函數(shù)

36、。)不能在同一資源上同時使用viWrite和viPrintf函數(shù)。部分VSIA函數(shù)的參數(shù)是可變的(如viPrintf, viScanf和viQueryf),導(dǎo)致VB不能調(diào)用。用戶可以使用與這些函數(shù)功能相當(dāng)?shù)暮瘮?shù)代替。writeFmt參數(shù)可以包含普通字符、一般格式化字符和特殊字符。普通字符(包括空格)書寫方式與平常一樣,不用做任何修改。特殊字符則要在該字符前面加一個反斜杠( );格式化字符由百分號( % )和操作標(biāo)志組成,操作標(biāo)志后面介紹。特殊字符參照下表:n發(fā)送一個ASCII碼換行符,并且END標(biāo)志自動一起發(fā)送。r發(fā)送一個ASCII碼回車。t發(fā)送一個ASCII碼制表符。#發(fā)送一個指定的八進(jìn)制數(shù)

37、。”發(fā)送一個ASCII碼雙引號。發(fā)送一個ASCII碼反斜杠。格式化字符格式化說明符轉(zhuǎn)換是根據(jù)后面的參數(shù)值來進(jìn)行改變和格式化的。格式化完成后直接發(fā)送給設(shè)備。格式化字符串語法如下:% arraySize , flags width . precision F | N | h | l typearraySize表示數(shù)組的大小,逗號表示數(shù)組修飾符。arraySize可以是常量,也可以用*代替。*代替需要增加一個參數(shù)表示arraySize的值。只支持type 為d和f。flags表示規(guī)定輸出格式,可用符號如下:符號作用無右對齊,左邊填充0或空格。-左對齊,右邊填充空格。+在數(shù)字前增加符號 + 或 - 。

38、空格只對負(fù)數(shù)顯示符號。#type = c, s, d, i, u時沒有影響。type = o, x, X時,分別在數(shù)值前增加'0',"0x","0X"。type = e, E, f時,總是使用小數(shù)點(diǎn)。type = g, G時,除了數(shù)值為0外總是顯示小數(shù)點(diǎn)。width表示控制顯示數(shù)值的寬度,取值和含義如下:符號作用無按缺省寬度顯示。n(n=1,2,3.)寬度至少為n位,不夠以空格填充。0n(n=1,2,3.)寬度至少為n位,不夠左邊以0填充。*格式列表中,下一個參數(shù)還是width。precision用于控制小數(shù)點(diǎn)后面的位數(shù),取值和含義如下:

39、符號作用無按缺省精度顯示。0type=d,i,o,u,x時,沒有影響。type=e,E,f時,不顯示小數(shù)點(diǎn)。n(n=1,2,3.)type=e,E,f時表示的最大小數(shù)位數(shù)。type=其他,表示顯示的最大寬度。*格式列表中,下一個參數(shù)還是precision。F | N | h | l表示指針是否是遠(yuǎn)指針或整數(shù)是否是長整數(shù)。F表示遠(yuǎn)指針,N表示近指針,h表示短整數(shù)或單精度浮點(diǎn)數(shù),l表示長整數(shù)或雙精度浮點(diǎn)數(shù)。type可用符號如下:符號作用符號作用d / i有符號10進(jìn)制整數(shù)u無符號10進(jìn)制整數(shù)x小寫字母無符號16進(jìn)制X大寫字母無符號16進(jìn)制f / F浮點(diǎn)數(shù)e / E科學(xué)記數(shù)法表示浮點(diǎn)數(shù)c單個字符s字

40、符串o無符號8進(jìn)制整數(shù)%顯示百分號p指針的值g自動選擇合適的表示法參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。writeFmtINViString格式化字符串。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0參數(shù)成功格式化。VI_ERROR_ALLOC內(nèi)存不足。VI_ERROR_INV_FMTwriteFmt包含無效格式化說明符。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_IO未知I/O錯誤。VI_ERROR_NSUP_FMTwriteFmt有不支持的格式說明符。VI_ERROR_RSRC_

41、LOCKEDvi被獨(dú)占。VI_ERROR_TMO操作超時。viScanf原型ViStatus viScanf(ViSession vi, ViString readFmt, arg1, arg2,.);描述這操作從設(shè)備讀取一個字符串,然后格式化后保存值arg變量中。格式字符串包含說明符,空格字符和普通字符。VISA中參數(shù)不確定的函數(shù)(如viPrintf, viScanf, 和 viQueryf)不能被VB調(diào)用。可以用功能相似的viVPrintf, viVScanf, 和viVQueryf函數(shù)代替。隱式分割符(空格符,制表符,換行符,回車符)是被忽略的,除非是%c和%。除%外所有普通字符應(yīng)該與從

42、設(shè)備讀取到的字符相匹配。格式字符串的語法格式如下: % , arraySize width F | N | h | l typearraySize表示返回數(shù)組的大小,逗號表示數(shù)組修飾符。arraySize可以是常量,也可以用#代替。#表示把返回的數(shù)組大小保存到一個參數(shù)中。只支持type 為d和f。width表示控制顯示數(shù)值的寬度,取值和含義如下:符號作用無按缺省寬度顯示。n(n=1,2,3.)表示輸入數(shù)據(jù)所占列寬。F | N | h | l表示指針是否是遠(yuǎn)指針或整數(shù)是否是長整數(shù)。F表示遠(yuǎn)指針,N表示近指針,h表示短整數(shù)或單精度浮點(diǎn)數(shù),l表示長整數(shù)或雙精度浮點(diǎn)數(shù)。type可用符號如下:符號作用符

43、號作用d / i有符號10進(jìn)制整數(shù)u無符號10進(jìn)制整數(shù)x小寫字母無符號16進(jìn)制X大寫字母無符號16進(jìn)制f / F浮點(diǎn)數(shù)e / E科學(xué)記數(shù)法表示浮點(diǎn)數(shù)c單個字符s字符串t以END結(jié)尾的字符串T以“n”結(jié)尾的字符串y二進(jìn)制數(shù)組。viScanf函數(shù)以END結(jié)束符結(jié)尾或者所有格式字符都匹配完成。如果碰到一個不匹配的字符該函數(shù)也將結(jié)束,所以先在檢測格式化字符串是否匹配前查找END符。還有在格式化完成后在緩沖區(qū)還殘留一些數(shù)據(jù)的話,這些數(shù)據(jù)將留個下一個viScanf函數(shù)使用。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。writeFmtINViString格式化字符串。返回值返回值為函數(shù)運(yùn)行結(jié)果

44、。標(biāo)識符值描述VI_SUCCESS0成功讀到數(shù)據(jù)并且格式化到arg參數(shù)里。VI_ERROR_ALLOC內(nèi)存不足。VI_ERROR_INV_FMTwriteFmt包含無效格式化說明符。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_IO未知I/O錯誤。VI_ERROR_NSUP_FMTwriteFmt有不支持的格式說明符。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO操作超時。viQueryf原型ViStatus viQueryf(ViSession vi, ViString writeFmt,

45、 ViString readFmt, arg1, arg2,.);描述這函數(shù)執(zhí)行一個格式化寫和進(jìn)行一個讀取操作請求。這函數(shù)提供一個機(jī)制“發(fā)送,然后讀取”一個典型的從設(shè)備獲取數(shù)據(jù)的命令。讀取是在發(fā)送命令后立即執(zhí)行的。該函數(shù)相當(dāng)于viPrintf函數(shù)和viScanf函數(shù)結(jié)合起來。arg先匹配writeFmt,然后在匹配readFmt。具體格式化格式請參考viPrintf函數(shù)和viScanf函數(shù)的說明。該函數(shù)的返回值和viPrintf, viScanf, viFlush一樣。VISA中參數(shù)不確定的函數(shù)(如viPrintf, viScanf, 和 viQueryf)不能被VB調(diào)用。可以用功能相似的vi

46、VPrintf, viVScanf, 和viVQueryf函數(shù)代替。參數(shù)名稱方向類型描述viINViSession對象標(biāo)識符。writeFmtINViString寫入格式化字符串。readFmtOUTViString讀取格式化字符串。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0成功完成一個查詢操作。VI_ERROR_ALLOC內(nèi)存不足。VI_ERROR_INV_FMT0xBFFF003FwriteFmt包含無效格式化說明符。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_IO未知I/O錯誤。VI_ERRO

47、R_NSUP_FMT0xBFFF0041writeFmt有不支持的格式說明符。VI_ERROR_RSRC_LOCKEDvi被獨(dú)占。VI_ERROR_TMO0xBFFF0015操作超時。viSetAttribute原型ViStatus viSetAttribute(ViSession vi, ViAttr attribute, ViAttrState attrState);ViStatus viSetAttribute(ViEvent vi, ViAttr attribute, ViAttrState attrState);ViStatus viSetAttribute(ViFindList v

48、i, ViAttr attribute, ViAttrState attrState);描述修改指定對象的指定屬性值。如果一個資源屬性不能被修改,并且該資源是有效的和屬性說明不能指定為其他值,viSetAttribute將返回錯誤代碼VI_ERROR_NSUP_ATTR_STATE。VI_WARN_NSUP_ATTR_STATE和VI_ERROR_NSUP_ATTR_STATE都指明傳遞的值不是有效值。除特殊情況外,一般都返回錯誤代碼VI_ERROR_NSUP_ATTR_STATE,如果返回完成代碼VI_WARN_NSUP_ATTR_STATE表示不支持傳遞的值,但操作沒有失敗。參數(shù)名稱方向類

49、型描述viINViSessionViEventViFindList對象標(biāo)識符。事件標(biāo)識符。查找隊列。attributeINViAttr要設(shè)置的資源屬性。attrStateOUTViAttrState要設(shè)置的值。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0成功設(shè)置資源屬性。VI_WARN_NSUP_ATTR_STATE設(shè)置的屬性是有效的,但不支持此屬性啟用。(這請求將停止,但可能會有性能改變。)VI_ERROR_ATTR_READONLY只讀屬性。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能標(biāo)志正確的連接。VI_ERROR_NSUP_A

50、TTR該資源中沒有指定的屬性。VI_ERROR_NSUP_ATTR_STATE傳的值不是有效值,或者該屬性不支持該定義的值。(該操作將被阻止并返回錯誤。)VI_ERROR_RSRC_LOCKEDvi被上鎖。viGetAttribute原型ViStatus viGetAttribute(ViSession vi, ViAttr attribute, void _VI_PTR attrState);ViStatus viGetAttribute(ViEvent vi, ViAttr attribute, void _VI_PTR attrState);ViStatus viGetAttribute(ViFindList vi, ViAttr attribute, void _VI_PTR attrState);描述返回指定對象的指定屬性值。參數(shù)名稱方向類型描述viINViSessionViEventViFindList對象標(biāo)識符。事件標(biāo)識符。查找隊列。attributeINViAttr要返回的資源屬性。attrStateOUTvoid*要返回的屬性值存放位置的指針。由于屬性值類型長度不同,所以必須要先明確屬性類型來分配存放的內(nèi)存空間。返回值返回值為函數(shù)運(yùn)行結(jié)果。標(biāo)識符值描述VI_SUCCESS0成功獲取資源屬性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論