Agile ALM
Free SaaS for open source projects on Amazon EC2 cloud
This server hosts 24000 users !
         
View all tags
Tags:  No tags associated yet.
在很多情况下,OpenNI节点中的数据都是来自于硬件设备。由于一个硬件上设备常常设置了一个或多个配置(?),因此,如果多个应用程序同时要使用相同的硬件设备的时候,这些应用程序在此硬件上的配置(?)就需要进行同步。

但是,通常情况下,当我们写一个应用程序的时候,我们不可能知道其他的应用应用程序会和我们的应用程序同时运行,所以呢,配置的同步工作成了不可能完成的任务,关键是有些时候一些应用程序会用到某一个特定的配置而不是其他的(?)。

在OpenNI中,我们有两中方式来在多个应用程序里共享一个硬件设备:

    • 完全共享(默认):在这种模式下,应用程序的节点要能处理任何配置(?)。OpenNI的接口使得任何配置变化的回调函数都能注册,这样每当一个配置产生变化的时候就通知这个应用程序(这个配置变化可能是自己的,也可能是使用相同硬件的其他应用的)。
    • 加锁配置:在这个模式下,应用程序需要对一个特殊节点的当前配置进行加锁。OpenNI就不允许在这个节点上调用Set函数。如果这个节点表示的是一个硬件设备(或者其他任何能被不同进程共享的资源),那么它就应该实现“锁意识”的能力(?),这样就能使得它可以在不同的进程处理中加锁。

注意:当一个节点被锁住的时候,锁住的应用程序就收到一个锁句柄(Lock handle?).你除了可以用这个锁句柄(Lock handle?)进行解锁外,这个句柄还能用来在没有释放锁的情况下更改节点的配置(这样做的好处是这个节点的配置不会受到其他应用程序的干扰)。