熟悉VC的人都知道,WM_USER是Mircrosoft专门为用户预留的消息,通过它就可以向主窗口发送各种命令和数据.
现在,LABVIEW也具有了这种能力了,不知道大家用过了没有.
假如一个项目,控制了几台设备,同时并行工作,各个并行的控制循环如何和主循环交换数据那?可以通过全局变量,共享变量,通过控件参考,利用队列...
今天介绍一个新的方法,充分利用USER EVENT.
首先,利用Custom Control制作一个strict type def 的簇,我举的例子是模拟WINDOWS消息,实际可以是任何类型,用变体数据可能更为合适一些.
这里我定义了50种消息
每个事件需要传递的信息是:
1.消息号(50种,可以理解成50种命令)
2.字符串,用来传递信息
3.4是两个数据,模拟WINDOWS的 wParam 和lParam
下一步要利用Action Engine方法,把所有的操作都封装在一个SUBVI中
首先在First call=TRUE 中生成用户事件,并返回参考,存储在SHIFT REGISTER中.
[page]
这里共定义了三个命令: GetRef(取得参考) Fire(产生事件) Release(释放)
这样一个完整的AE就形成了,具体调用方法如下图:
具体效果演示:
上一篇:事件结构----基本参数的含义.
下一篇:属性节点系列----owner and owningVI
推荐阅读最新更新时间:2024-03-30 23:03