生产链
如前所述,(中间件元器件及传感器)的几个模块,可同时注册到一个单一的OpenNI实施。这种拓扑结构为应用提供了灵活性来选择特定的传感器设备和中间件组件,用以生产和处理数据。
什么是生产链?
在生产节点部分,给出了一个例子,其中一个生产节点类型是由用户生成的应用程序创建的。为了制作人体数据,这条生产节点使用一个低层深度发生器,它从一个传感器读取原始数据。在下面的的例子,节点序列(用户发生器=>深度发生器)是互相依赖,以产生所需的人体数据,被称为一个生产链。
不同的供应商品牌名称)可以提供自己实现的相同类型的生产节点。
例如
品牌A提供了一个用户发生器的中间件实现(模块)。 B品牌提供单独的中间件,实现了用户发生器。这两个发生器可用于应用程序开发人员。 OpenNI使应用程序确定哪些模块或生产,能够使用。OpenNI接口枚举所有可能的生产链,其根据注册模块。应用程序可以选择这些链之一,取决于一个特定品牌,组件或版本偏好等,并创建它。
注意:一个应用程序也可以不具体,并要求从OpenNI第一枚举生产链。通常,应用程序只关心每个链中的顶级产品节点。这样节点,其在实际水平上产出所需的数据,例如,一只手点发生器。 OpenNI使应用程序能够使用单个节点,无须了解该节点的下一个生产链。对于高级调节,有一个选项来访问这个链,并配置每个节点。
例如,如果我们看一下较早提出的系统插图,它描述多个注册的模块和设备。一旦一个应用程序请求用户发生器,OpenNI返回以下四个可选的生产链将用于获得身体数据:
上面的图显示了一个情景,以下模块中被登记到OpenNI:
二体中间件组件,每一个是不同的品牌。
两个三维传感器,每一个被两个不同的品牌。
此图显示了四个可选的生产链,这些都是为这个实现建立。每个链代表一个可能的组合,由身体中间件组件和一个三维传感装置。 OpenNI为应用程序提供了选择,基于上述四个备选生产链。