我有两个版本的相同Labview程序 - 一个带摄像头控制,一个没有。这是因为我没有足够的NI Vision许可证用于我的所有系统(其中一些有摄像头),而具有视觉子程序的程序不能在非NI Vision系统上运行。
我想将这些版本合并到包含相机控件的一个版本中,但如果它所在的系统没有相机,则忽略它们。有没有办法以编程方式检查系统是否在运行时具有NI-Vision模块?目前,如果由于错误而未包含NI Vision,则甚至无法启动主vi。
答案 0 :(得分:5)
您可以使用系统配置API Get Installed Software.vi
在运行时检测已安装的NI软件。
使您的应用程序支持可选存在LabVIEW模块的下一步是让您的应用程序可选依赖它。
在运行时,这由dynamically calling VIs完成。 在构建时,这是通过使用conditional disable structure从编译中删除程序框图的区域来完成的。
当您在程序框图上放置VI时,您将该VI静态链接到您的应用程序。由于它是静态链接的,因此应用程序必须能够找到加载时使用的函数和API。
当您动态链接VI时,应用程序不知道它将调用哪个VI,直到您的代码告诉它在运行时调用什么。通过指定要使用的VI的路径和连接器窗格,您可以按需引用和调用它们,而不是按负载调用它们。 NI有一个guided tutorial,可以介绍这种设计模式的设置和使用。