自从LABVIEW全面支持事件结构后,已经很少用到全局键盘和鼠标了。在事件结构之前,轮询键盘和鼠标是非常常见的。
在LABVIEW  "互联接口"函数选板中,提供了“输入设备控制”子选板,如下图所示:
 
 
 
我们都知道两点之间最近的路径是直线,遗憾的是程序员往往走的并非直线
C语言中if语句经常会遇到下面的情形。
if (sth==TRUE)
{
      //do sth
}
实际是上可以简化为:
if(sth)
{
   //do sth
}
在LABVIEW编程中,初学者也经常会有类似的错误,看看下面的程序框图:

 
 
一些初学LV的网友们近期发给我的邮件中多次谈到WHILE循环的一些问题,这些问题虽然很常见,但是是根本性的问题,原因在于这些问题之所以不容易理解,是因为刚刚接触LV,很难理解或者经常忽视了“数据流”的问题。

首先简要回顾一下WHILE循环的基本概念和特点,然后重点回复网友们有关WHILE循环的问题。

几乎所有有关LV的书籍中都把WHILE结构与C语言的DO WHILE循环相提并论 ,其实二者之间是存在很大差别的,其根本区别在于LV是基于数据流驱动的,而C语言则不是。
DO WHILE循环可以保证循环至少运行一次,LV中的WHILE结构也是如此,这是二者之间的共同点。C语言中的WHILE结构如下所示:

do{
// do sth
}while(condition)

我们需要特别注意的是,C语言中DO WHILE循环判断循环条件是在循环中所有语句执行之后,简单地说就是“先运行,后判断”,LABVIEW中的循环结构则不然,这导致了很多LV初学者很难理解LV中WHILE循环的一些特殊现象。

1、可以同时运行多个WHILE循环结构。
同时运行多个WHILE循环结构在C语言中是比较麻烦的,必须开辟多个线程,而LABVIEW是自动多线程的。LABVIEW不仅可以同时并行运行多个WHILE结构,甚至在每个while循环中可以同时运行多个数据流程。
多了同时运行的WHILE循环可以分成两类:
一类是一个VI中多个同时运行的WHILE循环。多个WHILE循环在同一程序框图中。
另一类是每个子VI拥有各自的WHILE循环,此时多个WHILE循环同时工作相当于WINDOWS的多窗口运行。

2、每个循环中必须增加延时函数,释放系统控制权。
如果在循环中没有延时类函数,将导致WHILE循环独占CPU,CPU占用率很快达到100%。

3、仅运行一次的WHILE循环+未初始化的移位寄存器。这就是著名的LV2(功能)全局变量。