第三章 虚拟仪器系统IO接口软件(6)

2019-08-26 17:46

VI_ATTR_FDC_GEN_SIGNAL_EN 是否允许通过FDC传送数据 VI_ATTR_FDC_MODE FDC模式

VI_ATTR_FDC_USE_PAIR 一对或一个FDC有效 VI_ATTR_FDC_USE_VER FDC协议版本 VI_ATTR_PHYS_ADDR 器件地址 VI_ATTR_7_8_BIT_CMP 终止符有效位

VI_ATTR_NRDY_ABORT_EN 器件不再输出数据时是否被通知 VI_ATTR_OUTP_RDY_NOTIFY_EN 数据有效是否被通知 VI_ATTR_RD_PROT 传送协议

VI_ATTR_REPEAT_ADDR_EN 是否使用重复地址 VI_ATTR_SUPPRESS_END_ON 终止符是否被禁止 VI_ATTR_TERMCHAR 终止符

VI_ATTR_TERMCHAR_EN 终止符是否被允许 VI_ATTR_TMO_UNIT 超时值单位 VI_ATTR_TMO_VALUE 超时值

VI_ATTR_TRANSFER_MECH 传送机制(DMA或PIO) VI_ATTR_CMDR_SERV 主从模式 VI_ATTR_ASRL_BAUD 波特率 VI_ATTR_ASRL_DATA_BITS 数据位 VI_ATTR_ASRL_PARITY 校验极性 VI_ATTR_ASRL_STOP_BITS 停止位

VI_ATTR_ASRL_FLOW_CNTRL 数据流控制状态 3. 读资源定义的事件如下所示: 事件 说明

VI_EVENT_IO_COMPLETION 异步I/O操作已完成 4. 读资源定义的操作如下:

viRead(vi,buf,count,retCount) viReadAsync(vi,buf,count,jobId) viReadStatus(vi,jobId,jobStatus)

4.1. viRead(vi,buf,count,retCount) 1) 目标:从器件同步读取数据 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) buf 输出 ViBuf 数据块位置

count 输入 ViUInt32 读出的字节数

retCount 输出 ViPUInt32 实际传送字节数 3) 返回状态值: 完成代码:

VI_SUCCESS 同步读数据完成

VI_SUCCESS_TERM_CHAR 特定终止符被读取

VI_SUCCESS_MAX_CNT 读取的字节数与count数相同 VI_WARN_NRDY_ABORT 传送退出,器件未准备好输出数据 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_TMO 超时错误

VI_ERROR_RAW_WR_PROT 传送时写协议被破坏 _VIOL

VI_ERROR_RAW_RD_PROT 传送时读协议被破坏 _VIOL

VI_ERROR_OUTP_PROT_VIOL 传送时输出协议错误 VI_ERROR_INP_PROT_VIOL 传送时输入协议错误 VI_ERROR_BERR 传送时总线错误 VI_ERROR_ABORT 传送时用户退出

VI_ERROR_IN_PROGRESS 同步写已执行

VI_ERROR_INV_SETUP 设置错误,不能开始写操作

4) 描述:该操作将从器件中读取的值放在buf,任一读资源通道只能登录一个同 步读操作。

5) 相关项:参见viWriteAsync()、viTerminate()、viWriteStatus()、 viReadAsync()、viReadStatus()。

6) 实现要求:当满足以下三种情况的一种或几种时,被认为读操作完成:一是结 束标号被读取,二是特定终止符被读取,三是读取的字节数与所需字节数相同。 4.2. viReadAsync(vi,buf,count,jobId) 1) 目标:从器件异步读取数据 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) buf 输出 ViBuf 数据块位置

count 输入 ViUInt32 读出的字节数

jobId 输出 ViPjobId 异步读操作作业标识符 3) 返回状态值: 完成代码:

VI_SUCCESS 异步读操作完成 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_QUEUE_ERROR 不能进行读操作排队

4) 描述:该操作将从器件读取的数据放于buf中,任一读资源通道可以登录多个 异步读操作,进行排队处理。

5) 相关项:参见viWrite()、viTerminate()、viWriteAsync()、viRead( )、viReadStatus()。 6) 实现要求:无。

4.3. viReadStatus(vi,jobId,jobStatus) 1) 目标:获取读操作状态 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄)

jobId 输入 VijobId 读操作作业标识符

jobStatus 输出 ViPJobstatus 读操作状态 3) 返回状态值: 完成代码:

VI_SUCCESS 状态获取完成 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_INV_JOBID 作业标识符不当

4) 描述:当操作为同步时,标识符唯一确定,为VI_SYNC;当操作为异步时,标 识符为操作的输出参数值。

5) 相关项:参见viReadAsync()。 6) 实现要求:无。

n 格式化I/O资源(VI_RSRC_FMT_IO):

1. 资源概述:数据流格式化I/O操作,可进行格式化的器件读写操作,并可进行缓 冲区的I/O格式化。

2. 资源属性表及属性描述: 属性名 描述

VI_ATTR_7_8_BIT_CMP 终止符位数

VI_ATTR_END_ON_TERMCHAR_EN 在GPIB系统中,EOI终止符是否被确认 VI_ATTR_NRDY_ABORT 器件不再输出数据时是否被通知 VI_ATTR_PROT 读/写协议

VI_ATTR_RD_BUF_OPER_MODE 读缓冲区操作模式 VI_ATTR_RD_SIZE 读缓冲区大小

VI_ATTR_REPEAT_ADDR 是否使用重复地址 VI_ATTR_RETURN_MODE 读/写操作返回模式 VI_ATTR_SEND_END_EN 是否将END作为终止符

VI_ATTR_SUPPRESS_END 是否禁止END作为终止符 VI_ATTR_TERMCHAR 终止符 VI_ATTR_TMO_UNIT 超时值单位 VI_ATTR_TMO_VALUE 超时值

VI_ATTR_TRANSFER_MECH 传送机制(DMA或PIO) VI_ATTR_WR_BUF_OPER_MODE 写缓冲区操作模式 VI_ATTR_WR_BUF_SIZE 写缓冲区大小 VI_ATTR_ASRL_BAUD 波特率 VI_ATTR_ASRL_DATA_BITS 数据位 VI_ATTR_ASRL_PARITY 校验极性 VI_ATTR_ASRL_STOP_BITS 停止位

VI_ATTR_ASRL_FLOW_CNTRL 数据流控制状态 3. 格式化I/O资源定义的事件如下所示:无 4. 格式化I/O资源定义的操作如下: viSetBuf(vi,mask,size)

viSetUBuf(vi,mask,size,buf) viFlush(vi,mask)

viPrintf(vi,writeFmt,arg1,arg2?) viVPrintf(vi,writeFmt,params)

viSPrintf(vi,buf,writeFmt,arg1,arg2?) viSVPrintf(vi,buf,writeFmt,params) viBWrite(vi,buf,count,retCount) viScanf(vi,readFmt,arg1,arg2?) viVScanf(vi,readFmt,params)

viSScanf(vi,buf,readFmt,arg1,arg2?) viSVScanf(vi,buf,readFmt,params) viBRead(vi,buf,count,retCount)

viQueryf(vi,writeFmt,readFmt,arg1,arg2?) viVQueryf(vi,writeFmt,readFmt,params) 4.1. viSetBuf(vi,mask,size) 1) 目标:设置格式化I/O缓冲区大小 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) mask 输入 ViPUInt16 缓冲区类型 size 输入 ViPUInt32 缓冲区大小 3) 返回状态值: 完成代码:

VI_SUCCESS 缓冲区大小设置完成 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_ALLOC_MEM 系统无法分配缓冲区 VI_ERROR_INV_MASK 缓冲区类型设置错误

4) 描述:该操作改变读/写缓冲区大小,缓冲区类型可取VI_READ及VI_WRITE。 5) 相关项:参见viSefUBuf()、viFlush()。 6) 实现要求:调用该操作会刷新相关缓冲区。 4.2. viSetUBuf(vi,mask,size,buf) 1) 目标:设置格式化I/O用户缓冲区 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) mask 输入 ViPUInt16 缓冲区类型 size 输入 ViPUInt32 缓冲区大小 buf 输入 ViBuf 实际缓冲区地址 3) 返回状态值: 完成代码:

VI_SUCCESS 用户缓冲区设置完成 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作

VI_ERROR_INV_MASK 缓冲区类型设置错误

4) 描述:该操作为格式化I/O开辟一个缓冲区,该缓冲区不能用作其它用途。 5) 相关项:参见viSefBuf()。

6) 实现要求:调用该操作会刷新相关缓冲区。 4.3. viFlush(vi,mask)

1) 目标:手工刷新格式化I/O缓冲区 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) mask 输入 ViPUInt16 缓冲区类型 3) 返回状态值: 完成代码:

VI_SUCCESS 缓冲区刷新完成 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_IO I/O错误

VI_ERROR_TMO 超时错误

VI_ERROR_ABORT 在操作结束前收到退出信号 VI_ERROR_INV_MASK 缓冲区类型设置错误

4) 描述:该操作手动刷新相关读/写缓冲区内容。 5) 相关项:参见viSefBuf()、viSefUBuf()。

6) 实现要求:若对一空缓冲区进行刷新操作,相当于没有动作。 4.4. viPrintf(vi,writeFmt,arg1,arg2?) 1) 目标:按设定格式将数据传送到器件中 2) 参数表:

参数名 输入/输出方向 数据类型 描述

vi 输入 ViSession 对话通道标识符(句柄) writeFmt 输入 ViString 参数格式 arg1,arg2? 输入 各个所需参数 3) 返回状态值: 完成代码:

VI_SUCCESS 参数成功地格式化 错误代码:

VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_IO I/O错误

VI_ERROR_TMO 超时错误

VI_ERROR_ABORT 在操作结束前收到退出信号

VI_ERROR_FILE_NOPEN 文件没有打开或文件存取特性不当 VI_ERROR_NSUP_FMT 参数格式不当

4) 描述:该操作以一定格式将数据传送到器件中,viWrite()实际上是完成低 层I/O操作。任一对话通道不能同时进行viWrite()及viPrintf()操作。

5) 相关项:参见viSPrintf()、viVPrintf()、viSVPrintf()、viBWrite(


第三章 虚拟仪器系统IO接口软件(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:塔河采油二厂在戈壁滩上的绿色油田

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: