VI服务器应用程序的编程模式以引用句柄为基础。引用句柄也可以用于文件I/O、网络连接和LabVIEW的其他对象中。

通常在打开一个指向应用程序实例或VI的引用句柄之后,就可把这个引用句柄作为其他VI的参数。这些VI可用于获取(读)或设置(写)属性、执行方法、动态加载和调用引用的VI。最后,关闭引用句柄,从内存中释放曾引用过的VI。

下列应用程序控制函数和节点可用于创建VI服务器的应用程序:

  • 打开应用程序引用 - 打开访问本地或远程应用程序实例的引用。
  • 打开VI引用 - 打开可指向本地或远程计算机上VI的引用或者从磁盘动态加载VI。
  • 属性节点 - 获得或设置VI及其对象和应用程序的属性
  • 调用节点 - 调用VI及其对象和应用程序的方法
  • 通过引用调用节点 - 调用动态加载的VI。
  • 开始异步调用节点 - 开始异步调用一个动态加载的VI。
  • 等待异步调用节点 - 收集异步调用VI的结果。
  • 关闭引用 - 关闭通过VI服务器访问的正在引用的VI及其对象或应用程序。

应用程序和VI引用

使用VI服务器的各项功能主要通过两类对象:引用应用程序对象和VI对象。在创建对某对象的引用之后,就可引用某个VI或引用对该对象执行某种操作的函数。

应用程序引用可指向一个本地或远程应用程序实例。应用程序属性和方法可用来更改LabVIEW引用设置和提供系统信息。VI引用句柄是指应用程序实例中的某个VI。

应用程序的引用可用于预获如LabVIEW的工作平台、版本以及内存中所有VI列表等环境信息。还可进行信息设置,比如设置导出到其他应用程序实例中的VI列表。因为可一次打开多个应用程序实例,在某个应用程序实例中使用VI服务器的属性和方法时,或需要与另一个应用程序实例交互时,都必须使用应用程序引用。例如,LabVIEW将在创建LabVIEW项目或用于LabVIEW项目的终端时打开一个新的应用程序引用句柄。

创建VI的引用句柄时,LabVIEW将该VI加载至内存中。该VI会一直保留在内存中,除非关闭引用或者当VI符合下列条件时:

  • 引用所指的VI没有其他打开的引用。
  • 该VI的前面板未打开。
  • 该VI不是内存中其他VI的子VI,
  • 该VI不是一个打开的项目库的成员。

通过VI引用句柄,可在VI属性对话框中更新所有VI的属性和其动态属性,如前面板窗口的位置。也可通过编程打印VI说明信息保存VI到另一地址,或导出并导入字符串,并将其翻译为其它语言。