从系统到数据流的每一个模块都可以通过一个端口去配置这个模块的内部参数,并发送信号通知使用者。缓存模块的端口是备选的。
4.1配置
4.1.1模块
每一个GenTL模块(缓存模块除外)必须支持TLI的端口函数,缓存模块也支持这些函数。
4.1.1.1设备模块
4.1.1.2缓存模块
4.1.2XML描述
4.1.2.1模块注册表(推荐)
4.1.2.2本地目录
4.1.2.2发行商网址
4.1.3例子
4.2信号传输
信号用来在异步事件上通知使用者,通常所有的通信是使用者发起的,通过事件使用者可以在生产者操作时得到通知。这种机制是观察者模式的一种实现,使用者是观察者而生产者是被观察者。
选择时间对象方式而不是回调函数的原因是主线程优先级问题。回调函数通知数据到来通常是在采集引擎的线程环境内。这样的话回调函数里的所有操作优先操作。如果没有附加的一场处理,当回调函数不工作时,采集引擎也就崩溃了。
通过基于事件的方法,采集引擎只需要准备好数据,并通过之前注册的事件对象通知使用者数据可读取了。使用者可以决定在哪个线程环境下以哪个优先级进行数据处理。这样的话事件和信号生成的处理就分开来了。
4.2.1时间对象
事件对象允许异步事件通知使用者。事件对象有两个状态:有信号和无信号。
4.2.2事件对象队列