[+] 放大图片
图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 – 创建自定义的界面来浏览网络变量
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库CVI8.5介绍(2)在线全文阅读。
相关推荐: