LabWindows™/CVI:20多年来致力于高效高产的测试开发环境
概览
NI公司的LabWindows/CVI是一个久经验证的用于测试和测量的ANSI C开发环境,极大地提高了工程师和科学家们的生产效率。他们使用LabWindows/CVI来开发高性能的、可靠的应用程序,用于制造测试、军事/航天、通讯、设计验证和汽车工业等领域。开发人员可以在设计阶段利用LabWindows/CVI的硬件配置助手、综合调试工具以及交互式执行功能,来运行各项功能,使得这些领域的开发流水线化。使用内置的测量库,你可以迅速的开发出复杂的应用程序,例如多线程编程和ActiveX的服务器/客户端程序。由于LabWindows/CVI的便利性,你可以通过在相似环境中重复使用以前的代码来维护你的代码投资,并且实现Windows、Linux®或实时平台上分布测试系统的无缝集成。
目录
20年来的可靠性和创新性
LabWindows/CVI 8.5软件为增强开发的灵活性引入一些新的技术,包括:
• 可重叠的源代码区域:改善了代码可靠性和易读性
• 新型的标签化工作区:采用标签浏览技术,快速访问函数面板和源文件
• 支持在调试中编辑代码,因此使得寻找程序缺陷和修正程序这样的循环更为紧凑
• LabWindows/CVI 8.5 实时系统中的高级多核技术,可以全面控制不同核上的线程的执行
了解更多:
LabWindows/CVI的新增特性

集成开发环境
LabWindows/CVI 8.5对LabWindows/CVI 7.0中高度集成的工作空间进一步加强,采用工作空间(Workspace)窗取代了项目(Project)窗,来管理来自某个环境中的多个项目和窗口。现在LabWindows/CVI 8.5在工作空间窗口中集成了一些功能面板和调试窗口,例如变量(Variables)、观察(Watch)和存储显示(Memory Display)等窗口。
工作空间窗口分成5个主要区域—— 工程文件目录树(Project Tree)区域、库文件目录树 (Library Tree)区域、窗口限制区域(Window Confinement Region)、 输出区域(Output Region)和调试区域 (Debugging Region)。
图1. LabWindows/CVI有一个新型的标签化工作空间。这样,你可以快速地开发、调试并管理大型应用程序
集成的工作空间提供了一个直观而且便利的界面,用以创建并管理大型项目。你可以按照你自己的开发风格和爱好来自定义其中的每一个区域。
• 工程文件目录树包含了工作空间中的任一工程下的所有文件。你可以在工程目录树的列表上右击,获得多种选项,例如:源文件、编译文件,以及将文件从工程选项中删除。在目录树中你所选择的文件不一样,右击菜单选项也会不一样。你还可以浏览每个文件的信息、自定义工程和工作空间、添加或移除工程,并且可以指定工程目录树中各个工程的排列方式。你可以使用编辑工程对话框在工程中添加、移除或替代工程中的某个文件。你还可以在这个对话框中指定头文件路径和源代码控制选项。
• 库文件目录树包含了一个树型视窗,可以查看所有的LabWindows/CVI库函数、载入的设备以及设备驱动。树型视图可以直观地去寻找函数并演示。你还可以使用库文件目录树来获取已知的函数。要快速寻找某个函数,只需在目录树上右击,并选择Find。
• 窗口控制区域包含了打开源代码、用户界面编辑器、函数面板编辑器、函数树型编辑器窗口和函数面板。当你打开任一窗口时,菜单和工具条会相应地随着该窗口而改变。如果你更喜欢传统的LabWindows/CVI工作空间风格,你可以很方便地从窗口控制区域中释放出该窗口。
• 输出区域包含了标签化错误显示、调试输出和搜寻结果窗口。当LabWindows/CVI寻找到工程中的结构错误、运行时间错误和源代码控制错误时,它将在输出区域显示这些错误。双击输出区域中的某个错误,来高亮显示代码中的相应错误行。你还可以双击输出区域中的某个搜寻结果,来高亮显示代码中的寻找到的相应项目。
• 调试区域包含了标签化变量、观察和存储显示窗口。变量窗口中列出了所有变量(包含局部变量和全局变量),以及它们在当前范围内的对应值。变量窗口中还包含了堆栈区域之间的跳转选项。Watch窗口仅显示用户选择的变量和其相应值。存储显示窗口显示了存储地址和值信息。你可以从源代码窗口、交互式执行窗口、变量窗口或者观察窗口中将变量拖拽到存储显示窗口中。
最新的硬件功能
通常,测量程序中最重要的部分是与某个仪器相连接,并进行测量。LabWindows/CVI提供了两个测量助手,可以流水线化采集进程;还提供了一个新型数据采集接口,可以使多线程测量的性能提高20倍、使单端I/O的性能提高10到20倍。

新型数据采集构架
LabWindows/CVI与NI-DAQmx库兼容。该库中包含一些函数,可以与数据采集设备进行通信并控制这些设备。NI-DAQmx的下一代驱动软件在实现并发式I/O时,比传统的NI-DAQ提高了40倍的循环速率。另外,对于单端I/O,NI-DAQmx提供了10到20倍的性能改进。这些性能的提高,是因为NI-DAQmx是一个专门针对NI的数据采集设备而优化的多线程驱动程序。
DAQ助手
除了集成的NI-DAQmx库外,LabWindows/CVI中还包含了DAQ助手。这是一个与这种新型的驱动框架相匹配的交互式接口。如图3所示,DAQ助手交互式定义测量任务,决定指定的数据采集设备的测量功能,并生成具备采集功能的代码模块。当你创建了一个新的数据采集任务时,需要指定该任务的测量类型和添加到任务的通道。对新任务而言,你还可以选择是在工程中还是在NI的测量自动浏览器中存储这些任务。如果你在工程中存储任务,那么DAQ助手会自动地生成源代码来创建指定的任务。生成的源代码和头文件定义了一个入口函数,来配置任务并返回任务句柄。DAQ助手还会生成一个 .mxb文件,包含了该项任务的二进制描述。当你在DAQ助手中编辑任务时,如果你创建了一个基于工程的任务,则DAQ助手将会使用这个.mxb文件自动将所有三个文件添加到工程中。DAQ助手还具备上下文相关的帮助主题,描述了如何根据任务来使用DAQ助手。DAQ助手和NI-DAQmx与LabWindows/CVI的紧密结合,为执行数据采集任务的工程师们在ANSI C环境中进行测量提供了非常有效的方法。
图2. DAQ助手交互式定义测量任务,决定指定的数据采集设备的测量功能,并生成具有采集功能的代码模块。
M系列
LabWindows/CVI与M系列设备完全兼容。M系列是多功能数据采集设备的新一代产品。这些革命性的DAQ设备的采样速率高达1.25MHz、精度高达18bits、提供80MHz的时钟定时,以及多项式曲线拟合校准专利技术——而且所有这些功能都是在低单位I/O通道成本条件下实现的。在M系列的设备上,具有多达48个的I/O通道、32个模拟输入、4个模拟输出和2个计数器。要了解关于M系列的更多信息,请访问M Series的主页。
仪器I/O助手
测试领域的工程师和科学家们认识到,在选择软件包时,不同厂家的各种仪器之间便利的连通性是非常重要的考虑因素。LabWindows/CVI协同NI LabVIEW软件,具备来自200多个厂家的5000多个仪器驱动的仪器驱动网络,成为仪器控制和仪器连通性领域的行业领导者。你可以使用这些驱动程序方便地编写仪器控制应用程序。LabWindows/CVI采用仪器I/O助手,将仪器控制的生产力提高到一个新的水平。你可以采用仪器I/O助手生成代码,无需使用任何仪器驱动程序,就可以与串行设备、以太网以及GPIB等仪器进行通信。
图3. LabWindows/CVI的仪器I/O助手自动地解析仪器数据,生成可重复使用的代码,并交互式定义基本通信
仪器I/O助手提供了一个简单的界面,用户可以迅速地原型化应用程序,并无需任何编程即可自动解析仪器数据。你可以将生成的代码方便地到导入到任何现存的应用程序中,这样可以避免仪器连接、基本通信和字符串解析等沉闷的代码编写任务。只需输入两行代码,你就可以调用由仪器I/O助手创建的300多行代码,然后就迅速致力于测量任务。
还可以参考:
数据采集(DAQ)软件
M系列数据采集产品
LabWindows/CVI实时模块的确定性性能
采用通用的操作系统如Microsoft Windows等,难以实现高度可靠的确定性应用程序。可靠的确定性应用程序需要对系统中所有正在运行的任务有更多的控制——这种级别的控制是通用操作系统无法提供的。因此,测试和控制工程师们通常借助于实时操作系统,以实现具有确定性性能或者高度可靠性的应用程序。
LabWindows/CVI与LabWindows/CVI的实时模块一起,可以帮你创建可靠的、确定性应用程序,以应用于专用的实时硬件。下面的特性帮助用户降低了实时应用程序的开发时间:
• 重复利用现有的ANSI C代码和熟悉的LabWindows/CVI开发环境
• 以商业上即时可用的硬件为目标,尤其是PXI和PC目标,还有I/O
• 使用同一个工具链来进行实时系统和Windows系统的开发
将DLL部署到实时目标后,你可以采用LabWindows/CVI调试器的所有功能来对DLL进行远程调试。
图4. 借助LabWindows/CVI的实时模块,你可以创建可靠的确定性应用程序。该程序可以在专用的实时硬件上运行,并进行远程调试
还可以参考:
LabWindows/CVI实时模块
对多核程序的运行进行跟踪和调试
并行执行任务时,经常会发现一些在单线程应用程序中所没有注意到的设计缺陷——尤其是当应用程序的正确性是取决于多任务间的精确执行时序、存储器存取和通信等的时候。LabWindows/CVI不仅具备简化的ANSI C线程同步功能以及与之相应的优化的线程结构来解决这些问题;还包含了一些高级功能,以简化多核系统中的故障排除任务和设计最优的实现。
特别地,你可以使用LabWindows/CVI的线程(Treads)窗口来观察每一个线程的详细调试信息。线程窗口列出了正在调试的程序中所有的线程。

图5. 采用LabWindows/CVI的线程窗口,可以方便地在环境中正在调试的多个线程间进行切换
如果你希望查看某个线程的局部变量和调用堆栈,那么可以使用这个对话框来选择该线程。当你在这个对话框中选中了某个线程并单击View后,LabWindows/CVI将在变量窗中列出所选中线程中的局部变量,并在源代码窗中显示该线程当前的源代码位置。Run菜单中的Up Call Stack、Down Call Stack和Call Trace等命令会显示当前选中线程的有关信息。
另外,实时执行跟踪工具箱(Real-Time Execution Trace Toolkit)中有一个Highlight CPU Mode选项,该选项可用来高亮化某一特定CPU上运行的所有线程活动。通过高亮化特定CPU上所有的线程活动,你可以跟踪系统中每一个CPU的执行路径,从而确定那些线程是否如期执行。同时,通过在实时执行跟踪工具箱中观察处理器的使用率,基于你为各个处理器所设置的不同代码比例,你可以原型化检测不同设计的性能潜力。

图6. 在Highlight CPU Mode选项中选择特定的CPU,高亮化该CPU上所有的线程活动。
还可以参考:
使用LabWindows/CVI调试多核ANSI C应用程序
简化的交叉平台通信
因为商业上始终追求企业间的连通性,所以应用程序对分布式解决方案的要求持续增长。这种趋势为提供解决方案的程序员们提出了巨大的挑战。现在有各种各样类型的硬件、软件,以及应用程序之间的协议。这种复杂性迫使程序员们在不同协议间进行协商处理以传输数据,而这就需要大量的开发时间和资源。LabWindows/CVI为了简化对于这种应用的编程,迈出了一大步。这个新型的网络变量库(Network Variable Library),是基于NI-PSP(NI Publish-Subscribe Protocol)协议的。如果你需要在同一系统的两个应用程序之间或在网络中共享实时的测量数据,则该网络变量库为你提供了一个简化的API。你还可以在不影响系统性能的情况下,使用该API在两个实时系统之间传递数据。该API对底层通信协议(例如TCP/IP或DDE)进行了抽象,同时非常灵活,可以与各种测量数据类型相兼容(例如标量、多维数组和结构体等)。
LabWindows/CVI的网络变量库具有以下功能:
• 订阅(Subscriber) - 接收发布到网络变量的新数据
• 缓冲订阅(Buffered Subscriber) - 接收缓冲数据,并接收缓冲器空、溢出或失效等事件
• Writer – 使用新数据来更新网络变量
• 缓冲写Buffered Writer – 异步更新发布数据
• 读Reader – 读入网络变量中存储的新数据
• 异步读Asynchronous Reader – 在独立线程中读入新的网络变量数据
• 数据功能Data Functions – 处理网络变量数据
• 网络变量浏览器弹出Network Variable Browser Popup – 自动浏览可用的网络变量
• 浏览器功能Browser Functions – 创建自定义的界面来浏览网络变量

图7. 网络变量描述网络中存在并在应用程序、远程计算机和硬件之间进行通信的对象
网络变量先向一个称为共享变量引擎的服务器发送数据,然后该服务器将这些数据发布给网络上的所有客户端程序,读取网络变量。因为数据是采用一个发布-订阅消息结构来传输的,所以大量客户端程序无需编写额外代码就可以读写相同变量。此外,该共享变量引擎可以在Windows PC机和实时目标系统上建立。
LabWindows/CVI实时模块扩展了网络变量的功能。采用LabWindows/CVI实时模块,你可以在数据处理中结合线程安全队列来配置网络变量。线程安全队列的使用,可以保证任务之间或者网络中数据传递的可靠性,从而不会使应用程序发生不稳定。
还可以参考:
网络变量资源网页
高级数据管理和高速文件输入/输出
LabWindows/CVI中,引入了一种新的数据存储格式,称为技术数据管理流(.tdms)。该格式既包含了二进制数据高效地存储千亿多的数据点,还包含了描述数据和通道信息的元数据。这种格式是为高速数据流而最优设计的,并且,二进制数据和元数据的组合实现了高效文件存储和自我描述文件的双重优点。该种格式的关键优点是TDMS文件中的描述性信息。它提供了一种简单的方法来记录数据,而无需设计自己的文件头。尽管文档需求增加,但你无需去重新设计应用程序;你只需要扩展这种TDMS数据模型来解决你的特定需求。你可以在LabWindows/CVI和NI DIAdem(一种强大的数据管理工具,可以在单一文件中处理1千亿多的数据点)中使用这种TDMS文件格式。在采集了大量数据后,你可以使用DIAdem来交互式管理、检查、分析、报告和自动操作这些数据。

图8. 采用TDM Streaming库存储千亿多的数据点,包括二进制数据和元数据,并针对高速流数据进行了优化
还可以参考:
LabWindows/CVI的TDM Streaming库的简介
高级科学分析功能
LabWindows/CVI提供了强大的算法和函数,专门用于测量分析和数据处理。LabWindows/CVI的分析函数包括信号分析工具,可用来调节和转换信号(采用平滑窗、数字滤波器和频域转换)。有了这些数学函数,你可以轻松地处理1D和2D数组,并执行复杂的数值算法。你还可以使用这些函数将各种各样用户定义的公式应用到你的数据中,实现向量和矩阵代数。有了这些函数,你就不需要再自己编写算法去实现原始数据向重要信息的转换。要从原始数据中获取信息,你需要对采集的数据进行处理和分析,然后提取信息。拥有LabWindows/CVI完整开发系统中包含的LabWindows/CVI高级分析库,你可以:
• 从采集的数据和单次测量中提取信息
• 生成、更改、处理和分析信号
• 将智能和决策制定功能添加到你的应用程序中
• 执行在线和离线分析
• 使用一些通用的工具,以及一些专用的工具和附加软件
• 利用一些理论分析示例

图9. LabWindows/CVI为数据分析提供了一套强大、全面的函数集
还可以参考:
LabWindows/CVI分析函数完全列表
开源技术- .NET库、Internet库和XML库
行业标准正在推行更多的开源技术,例如.NET和XML Web服务、以及网络驱动的应用程序等,所以,LabWindows/CVI中集成了这些技术。
.NET库
采用LabWindows/CVI,你可以利用最新的Mircrosoft .NET技术,从.NET的组件中调用各种算法和函数集并获取它们的有关性质。.NET组件是所有.NET应用程序的基本组成部分;因此,LabWindows/CVI程序员们可以利用该项功能来调用各项Web服务,例如:发送自动生成的e-mail、存取丰富的数据库功能、与Microsoft Windows的API算法(如观察CPU的使用率和错误日志)直接交互。
Internet库
LabWindows/CVI包含了Internet库,可以让你即时将应用程序通过e-mail、FTP、Telnet和ping等方式连接到网络中。LabWindows/CVI的Internet库提供了如下功能:
• FTP – 采用某个用户名密码连接到FTP服务器上,上传并下载文件。
• Telnet – 在远程机器的Telnet服务器上读或写
• POP3 – 连接到你的e-mail服务器上收发邮件
• SendMail – 确定了邮件的地址、服务器、主题、正文和附件后,迅速发送邮件
• LaunchDefaultWebBrowser – 使用某指定的URL来启动默认的Web浏览器
• Ping – 利用ping功能,迅速定位同一网络中的其他计算机
具备了这些添加的功能,现在你可以发送e-mail或者文字消息来通报指定事件(譬如机器过热)给操作员。你还可以将采集的数据记录到FTP服务器上。现有的TCP支持库同样也可以全面地提供各种通信函数,包括RegisterTCPServer和ClientTCPRead。
XML API
LabWindows/CVI还包含了一个XML的函数库。cvixml.fp仪器驱动器包含了可以用来创建并修改XML文档的函数。XML文档是数据的多层次表达,与父子关系树相似。XML文档中,数据表达为元素,包含标签名和值。元素还包含属性项。cvixml.fp仪器驱动器具有以下函数类型:
• 文档函数 – 打开XML文档进行修改,创建新的XML文档,保存并格式化修改后的XML文档
• 元素函数 – 创建新的元素,修改现有元素,复制元素,通过标签搜寻元素,删除元素
• 子元素函数 – 获得元素的子级和父级,以及子级个数
• 属性函数 – 获得元素的属性个数、元素的属性,创建新的属性,修改现有的属性,删除属性
• 错误处理函数 – 处理错误.
• 低级函数 – 获得文档的Active X句柄、元素的Active X句柄,和属性的Active X句柄。
用XML格式保存函数面板
除了XML API,LabWindows/CVI还提供了一个选项——以XML格式保存函数面板文件,并从XML格式中载入函数面板文件。在函数面板编辑器中选择Options >> Save in XML Format,将函数面板转换为XML文档。你可以在任何XML编辑器或者文本编辑器或者微软的IE中打开转换后.fpx文件。
形象化显示测试和测量数据
LabWindows/CVI的每个版本都提供了额外的用户界面控件,可以为测试和测量应用创建专业的前端界面。
固有的Windows风格控件
在LabWindows/CVI中,你可以在特定仪器控件中可视化观察测试和测量数据;如今,你则可以利用Windows风格的最新用户界面控件。基于固有的Windows系统主题,你可以显示诸如制表符、开关、铃音、按钮等控件。

图10. 你可以使用最新的主题控件,创建现代的用户界面
交互式图形控件
为了让你能更有效地可视化检测采集到的测量数据,LabWindows/CVI的图形控件提供了丰富的运行中交互式操作,包括通过交互式图例实现图表外观的改变。另外,你可以交互式编辑坐标轴的范围;你还可以在控件运行时点击坐标轴末端上的标签,激活图形控件以颠倒轴的方向。
扩展的用户接口事件
现在,你已经可以利用你的应用程序获取更多的用户交互式操作。你无需进行低层的编程就可以方便地获取额外的鼠标交互操作,例如:自动感应用户是否在翻滚某个标签页或控件列表;检测面板运动以及窗口的大小调整动作。举个例子:如果你希望能够控制用户改变界面大小或移动界面这些动作,程序便可以检测到这些动作,处理相关事件,并调用相应的合适函数。
多产的开发工具
LabWindows/CVI还具备了关键的高产特性,可以让你高效地设计端到端的解决方案。一些附加的高效工具中包含了新建项目模版和新建文件模版,来实现一致的编程风格,同时减少多个应用程序之间的冗余任务。
新建项目向导
开始一个新的项目的时候,同一组的开发人员使用一致的代码风格或一致的用户界面模版是很常见的。如果需要在不同的机器上进行开发,则当从一个项目转到另一个项目时,一些常见的设置(典型的例如源代码控制或创建选项)需要进行重设。采用新建项目向导,你就可以基于现有的模版创建新的工程或源文件。如果你希望所有的用户界面的左下角都有一个公司标志,所有的源文件都有版权信息,那么在LabWindows/CVI中,你可以使用内置的模版,或者你自己创建一个自定义模版来实现这种一致性。文件命名规则、代码文档、创建和目标选项及用户界面设计,都可以使用模版实现。
函数面板HTML文档
除了这些可以帮助迅速开始创建新工程的新型工具外,LabWindows/CVI还可以在工程完成时帮你快速发布文档信息。常采用LabWindows/CVI来开发仪器驱动程序,并以函数面板形式存储。拥有了这种新型的函数面板HTML文档生成功能,你可以利用已经包含在仪器驱动或包含在LabWindows/CVI的开源仪器驱动中的文档,生成易于发布并搜寻的可上网文档。生成了HTML文档后,你就拥有了一个高层的HTML页面,显示了仪器驱动的高层文档。该HTML页面中包含了一些记录每个函数的特性的单独页面。在HTML生成的源代码中,你还可以设置迅速导航链接,这样,你可以按照字母顺序或者按照函数层次,寻找特定的函数文档和示例代码。
设置下一条语句
LabWindows/CVI提供了Set Next Statement(设置下一条语句)命令,可以用来跳过那些已知会失败的代码,或者用来检查运行中失败的代码。调试的时候使用这个命令来定位下一条运行语句。将光标放置到你希望运行的语句行,并选择Run >> Set Next Statement。
源代码名称补全
为了帮助你迅速开发出应用程序,LabWindows/CVI在源代码窗中提供了名称补全选项。按住<Ctrl-Space>,将显示可能与你正键入的函数、变量或宏的名称相匹配的一列名称。

图12. 采用源代码名称补全功能,LabWindows/CVI将显示一列与输入字符相匹配的函数、变量和宏。
可折叠源代码区域/代码折叠
采用LabWindows/CVI,可以即时关注代码中的感兴趣区域并理解应用程序的大致性能,这样,你可以隐藏函数以增强源代码的可读性。
分界符匹配
当你在源代码编辑器中键入字符时,LabWindows/CVI将高亮相匹配的和不匹配的分界符,譬如圆括号()、方括号[]、大括号{}和基于ANSI C语法规则的成对语言关键字(if、while、else语句)。
源代码变量声明
在源代码中输入了新变量的名称后,按住<Ctrl-D>,可以从源代码窗中声明变量。这个命令将在当前位置代码块的初始位置自动声明合适的变量类型和名称。如果你输入的变量是一个数组,则LabWindows/CVI将提示你输入数组的元素个数。
函数原型帮助
显示在源代码窗中的LabWindows/CVI函数原型,可以帮助你进行实时开发。如果你在编辑器选项对话框中使能Show function prototypes and struct/union fields while typing这个选项,那么当你输入函数名和开括号后,LabWindows/CVI将会显示出函数的原型。输入参数值后,LabWindows/CVI将高亮函数原型中的当前参数。要获得函数或参数的帮助,你可以单击函数原型左边的问号按钮,或者按<F1>。
如果LabWindows/CVI提供一个输入选择对话框,或者当前参数的一列备选常数值,LabWindows/CVI就会在函数原型的参数边上显示一个椭圆按钮。输入选择对话框中包含了常数值、文件选择、通道名称等等与当前参数相关的列表。
图13. LabWindows/CVI提供了设计时源代码补全选项和帮助
可编辑的数据工具提示
最新LabWindows/CVI版本还创新地引入了可编辑数据工具提示。当你调试应用程序时,你可以在源代码窗中将鼠标放在变量名上,在工具提示中观察变量值。如果工具提示中的变量名黑体显示,则你可以双击这个值并进行编辑。
附加的增强功能
LabWindows/CVI的64位整型数据有__int64和unsigned __int64两种数据类型。LabWindows/CVI还可以方便的将用户界面资源文件(.uir)嵌入到一个可执行文件或DLL文件中,这样就避免了为应用程序部署这些文件的需要。
LabWindows/CVI的附加NI软件功能
NI TestStand集成
NI TestStand引入了最新的测试管理软件技术,以更快速更有效地开发自动测试系统。NI TestStand的某些功能(包括LabWindows/CVI的灵活的模块适配器和用于LabWindows/CVI的NI TestStand用户界面(UI)控件),是专门设计用来快速开发LabWindows/CVI测试系统的。
LabWindows/CVI灵活的模块适配器通过增加代码的重复可用性,以保证在一定的软件开发投资条件下获得最大的收益。现在,你可以在任意LabWindows/CVI 的.c、.obj、.lib或.dll文件中调用函数而无需考虑函数的原型问题。LabWindows/CVI灵活的模块适配器还进行了一些升级,以在NI TestStand中配置模块时提高参数的可视化。这些改进充分地降低了开发时间,并避免了不必要的编程。

图14. 采用新型灵活的LabWindows/CVI适配器,你可以从NI TestStand向LabWindows/CVI的任何文件中调用函数而无需考虑函数原型
用于LabWindows/CVI 的NI TestStand用户界面控件
NI TestStand用户界面控件使得开发NI TestStand用户接口的复杂程度降低了90%多。这些新的控件将NI TestStand和用户接口之间所有的必需通信封装在一起。另外,这些新的控件自动安装了最新版本的NI TestStand。采用NI TestStand 3.0所提供的LabWindows/CVI用户接口,你可以少写11,000多行的必需代码。

图15. 采用NI TestStand用户界面控件,你可以在LabWindows/CVI和NI TestStand之间实现无缝通信,使程序代码减少90%
还可以参考:
NI TestStand中文主页
总结
LabWindows/CVI开发环境,采用集成的工作区和增强的开发工具,有着更为鲁棒的硬件功能和实时连接性能,拥有高级数据管理工具以及紧密的测试管理集成,使你的ANSI C应用程序的开发更有效率。
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Linux®是Linus Torvalds在美国和其他国家的注册商标。
法律条款
本教程由National Instruments公司(简称“NI”)开发。 尽管National Instruments可为该程序提供技术支持,但是该指南的内容并非完全通过测试和验证,NI不以任何方式保证其质量,也不保证相关产品或驱动程序的新版本出现时继续为其提供技术支持。本教程仅以其“现状”向用户提供,教程没有任何担保。教程使用受ni.com网站上《使用条款》的约束。 (http://ni.com/legal/termsofuse/unitedstates/us/)



