函数
viOpenDefaultRM
原型 | ViStatus viOpenDefaultRM (ViSession sesn ); |
描述 | 这个函数用来初始化一个VISA资源管理器,此函数必须要在其他任何VISA函数之前调用。函数通过sesn参数返回一个独立的VISA资源管理器ID。 |
参数 | 名称 | 方向 | 类型 | 描述 | sesn | OUT | ViSession | 返回一个独一无二的VISA资源管理器逻辑标识符 | | | | |
|
返回值 | 返回值为函数运行结果,如果成功sesn返回VISA资源管理器标识符,否则返回0。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | VISA资源管理器初始化成功。 | VI_ERROR_ALLOC | | 系统资源不足。 | VI_ERROR_INV_SETUP | | 配置文件无效或者不存在。 | VI_ERROR_SYSTEM_ERROR | | VISA系统初始化失败。 | | | |
|
| |
viOpen
原型 | ViStatus viOpen (ViSession sesn, ViRsrc rsrcName, ViAccessMode accessMode, ViUInt32 timeout, ViSession vi); |
描述 | 连接一个指定的设备,返回一个可用于调用其他功能的连接标识符。 |
参数 | 名称 | 方向 | 类型 | 描述 | sesn | IN | ViSession | VISA资源管理器逻辑标识符。 | rsrcName | IN | ViRsrc | 地址名称。 | accessMode | IN | ViAccessMode | 连接打开方式,可以是以下值: VI_EXCLUSIVE_LOCK独占方式打开; VI_LOAD_CONFIG更具外部配置文件打开; VI_NULL正常多访问打开。 | timeout | IN | ViUInt32 | 如果是以独占模式连接,该参数是一个绝对时间(单位ms),超时就返回一个错误。其他连接方式忽略此值。 | vi | OUT | ViSession | 返回打开连接逻辑标识符。 | | | | |
|
返回值 | 返回值为函数运行结果,如果成功vi返回设备连接标识符,否则返回0。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | 连接成功。 | VI_SUCCESS_DEV_NPRESENT | | 连接成功。但是指定的地址无响应。 | VI_WARN_CONFIG_NLOADED | | 指定的地址不存在或者地址格式不正确。 | VI_ERROR_ALLOC | | 系统资源不足。 | VI_ERROR_INTF_NUM_NCONFIG | | 指定的地址是有效的,但无法使用。 | VI_ERROR_INV_ACC_MODE | | 非法的存取模式。 | VI_ERROR_INV_RSRC_NAME | | 地址名称语法错误。 | VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT | | 无效的vi。 | VI_ERROR_LIBRARY_NFOUND | | VISA库加载不完全。 | VI_ERROR_NSUP_OPER | | 资源管理器sesn不支持此函数。 | VI_ERROR_RSRC_BUSY | | sesn是有效的,但当前无法访问。 | VI_ERROR_RSRC_LOCKED | | sesn被独占。 | VI_ERROR_RSRC_NFOUND | | 信息不足或者资源不存在。 | VI_ERROR_TMO | 0xBFFF0015 | 操作超时。 | | | |
|
| |
viClose
原型 | ViStatus viClose(ViSession vi); ViStatus viClose(ViEvent vi); ViStatus viClose(ViFindList vi); |
描述 | 关闭一个资源管理器或者设备连接,并释放内存。 |
参数 | 名称 | 方向 | 类型 | 描述 | vi | IN | ViSession ViEvent ViFindList | 需要关闭的对象。 | | | | |
|
返回值 | 返回值为函数运行结果。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | 关闭成功。 | VI_WARN_NULL_OBJECT | | 要关闭的对象是空对象。 | VI_ERROR_CLOSING_FAILED | | vi不能标识正当对话通道。 | VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT | | 无法释放与该对话通道相关联的内存数据结构。 | | | |
|
| |
viFindRsrc
原型 | ViStatus viFindRsrc(ViSession sesn, ViString expr, ViPFindList findList, ViPUInt32 retcnt, ViRsrc instrDesc); |
描述 | 该函数用于查VISA系统里与指定接口相连的资源设备。该函数查的与expr参数相匹配的有效资源设备。 该函数成功完成将返回与exor相匹配的资源组中的第一个资源(instrDesc),还返回一个资源组中的个数(retnt)。 另外还返回一个到的队列句柄,可以同过调用viFindNext传入这个句柄来获得其他到的资源。当这个句柄不需要时必须调用viClose关闭。 expr参数不区分大小写,搜寻标准由两个部分组成:一个资源的正则表达式和一个可选的属性值逻辑表达式。这个正则表达式是与已知的VISA资源管理器相匹配。 如果这资源字符串与正则表达式相匹配,并且属性值也与逻辑表达式匹配,则这匹配是成功的,这资源将添加到资源查询队列(findList)中。(安捷伦的VISA不支持匹配属性值。) 这可选的属性逻辑表达式允许使用逻辑符号AND,OR,NOT。相等(==)和不等(!=)可以用与任何类型的属性比较。另外的非等号比较的(>,<,>=,<=)只能用于数值类型的属性比较。仅仅全局属性才能参与属性表达式。 如果findList参数传入的是VI_NULL,则会自动调用viClose关闭查到的资源队列。findList参数和retcnt参数都是可选的,如果只需要第一个匹配到的设备并且不需要知道连接了多少设备这两个参数都可以传入VI_NULL。 所有返回的字符串都需要经过viParseRsrc和viOpen函数的验证,不是所有查询到的资源都可以通过和查询的。 |
参数 | 名称 | 方向 | 类型 | 描述 | sesn | IN | ViSession | 资源管理器。必须要被viOpenDefaultRM函数初始化。 | expr | IN session下载 | ViString | 表达要搜索的一个接口或者所有接口存在的设备。(参照下面的格式描述字符串表) | findList | OUT | ViPFindList | 返回一个搜索到的句柄标识符,这句柄可以作为viFindNext函数的参数传入。如果为VI_NULL,自动动调用viClose关闭findList。 | retcnt | OUT | ViPUInt32 | 匹配到的设备数量。如果为VI_NULL,不返回到的个数。 | instrDesc | OUT | ViRsrc | 返回一个设备识别地址字符串,可以直接传给viOpen建立一个会话。 | | | | |
expr参数描述字符串说明: 接口 | 表达 | GPIB | GPIB[0-9]*::?*INSTR | VXI | VXI?*INSTR | GPIB-VXI | GPIB-VXI?*INSTR | GPIB和GPIB-VXI | GPIB?*INSTR | All VXI | ?*VXI[0-9]*::?*INSTR | ASRL | ASRL[0-9]*::?*INSTR | All | ?*INSTR | | |
|
返回值 | 返回值为函数运行结果。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | 到资源。 | VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT | | 传递的对象无效。 | VI_ERROR_NSUP_OPER | | 不支持该函数。 | VI_ERROR_INV_EXPR | | 无效的搜索指定。 | VI_ERROR_RSRC_NFOUND | | 没有到设备。 | | | |
|
| |
viFindNext
原型 | ViStatus viFindNext(ViFindList findList, ViPRsrc instrDesc); |
描述 | 返回查资源队列上的下一个资源。 |
参数 | 名称 | 方向 | 类型 | 描述 | findList | IN | ViFindList | 查队列句柄。必须由viFindRsrc函数创建。 | instrDesc | OUT | ViPRsrc | 返回一个地址字符串。字符串可以通过调用viOpen函数建立一个会话连接。 | | | | |
|
返回值 | 返回值为函数运行结果。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | 到资源。 | VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT | | findList不能标志正确的连接。 | VI_ERROR_NSUP_OPER | | findList不支持该函数。 | VI_ERROR_RSRC_NFOUND | | 没到资源。 | | | |
|
| |
viParseRsrc
原型 | ViStatus viParseRsrc(ViSession sesn, ViRsrc rsrcName, ViPUInt16 intfType, ViPUInt16 intfNum); |
描述 | 从语法上分析一个指向设备的资源字符串。这操作分析字符串的有效性。viFindRsrc函数返回的所有字符串都必须在分析成功后才能调用viOpen函数。 返回的intfType和intfNum分别对应VI_ATTR_INTF_TYPE和VI_ATTR_INTF_NUM属性。这些值将与使用viOpen函数连接后使用viGetAttribute函数查询的值一样。 在viOpen函数中设置别名,viParesRsrc函数也能识别。 rsrcName参数不区分大小写。 |
参数 | 名称 | 方向 | 类型 | 描述 | sesn | IN | ViSession | 默认资源管理器(必须经过viOpenDefaultRM函数初始化)。 | rsrcName | IN | ViRsrc | 资源独立的名称。 | intfType | OUT | ViPUInt16 | 会话连接的接口类型。 | intfNum | OUT | ViPUInt16 | 会话连接的板号。 | | | | |
|
返回值 | 返回值为函数运行结果。 标识符 | 值 | 描述 | VI_SUCCESS | 0 | 资源字符串是有效的。 | VI_ERROR_ALLOC | | 内存不足。 | VI_ERROR_INTF_NUM_NCONFIG | | 接口类型是有效的,但接口号是无效的。 | VI_ERROR_INV_RSRC_NAME | | 无效的资源指示字符串。语法错误。 | VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT | | sesn不能标志正确的连接。 | VI_ERROR_LIBRARY_NFOUND | | 一个VISA必须库无法加载。 | VI_ERROR_NSUP_OPER | | 给定的sesn不支持该函数。例如,该函数仅仅支持默认资源管理器的sesn。 | VI_ERROR_RSRC_NFOUND | | 位置信息不足。 | | | |
|
| |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论