ADN

ADN

Antilatency Device Network(Antilatency设备网络)定义一种将设备相互连接并将它们组合成一个网络的方法。

在本文中

一般信息

连接到同一主设备(Host)的所有Antilatency设备以设备树的形式构成网络。根点是主设备,其余设备被视为节点(Node)。设备树的每个节点都可以执行实现此设备功能的任务(Task)。每个设备都有自己的一组任务。
AADN支持使用各种协议连接设备:USB、IP、SPI和无线电协议,并提供节点与主设备之间的数据传输。此外,ADN创建设备连接层次结构,并将用户从其物理连接的详细信息中抽象出来。

与ADN的交互

要使用ADN,请使用Antilatency.DeviceNetwork库。此库允许您接收和跟踪已连接设备列表中的更改,查找设备,使用其属性,以及运行任务和使用它们。
在此处阅读有关使用库的更多信息:Antilatency Device Network Library
设备树显示在AntilatencyService应用程序Device Network选项卡中。您可以在此处读取和编辑任何已连接设备的属性

ADN示例

每个用户的全套VR设备的设备树可能如下所示:
这些设备共同构成一个网络,可以根据对五个点的位置的了解来跟踪用户身体的位置。
下面是AntilatencyService中上述一套设备的设备树:

设备树

在ADN内,设备以树状组织。此树的结构重复设备的物理连接结构。此树中的每个设备都与一个节点(Node)关联。连接设备时,其节点在网络中被分配一个唯一的号码(NodeHandle)。不同ADN网络中的节点编号,即使是在同一可执行进程中创建的节点号码,也可能重叠。因此,Antilatency SDK中的许多功能都将“实例ADN——网络上的节点号码”对作为参数,这是一个唯一的设备标识符。
常见的设备树如下所示:
树根是一个带有号码的虚拟节点NodeHandle.Null。根节点的子节点是通过USB或IP网络直接连接到主设备的设备节点(在图中,这是Universal Radio Socket)。连接到它们的设备节点依次成为第二级的子节点,依此类推。在AntilatencyService中可以查看设备树。

使用属性

ADN中的每个设备都具有可以读取、添加、修改和删除的属性。属性存储在设备本身上,因此,在重新连接到ADN和重新启动设备本身时会保存这些属性。
有关设备属性、其类型和接受协议的更多信息,请参阅 此处
AntilatencyService应用程序中,可以在Device Network选项卡中查看设备属性。
DeviceNetwork库中,IPropertyCotask负责处理设备属性。除此之外,还有从属性缓存返回值的INetwork.nodeGetStringPropertyINetwork.nodeGetBinaryProperty方法。

属性缓存

每个节点(Node)的属性缓存在ADN中。在连接设备和首次启动任何任务之间,IPropertyCotask会隐式启动,并且所有属性都会写入缓存。此外,当请求nodeGetStringPropertynodeGetBinaryProperty时,用户从缓存中获取值。
某些属性的值可以随每个请求更新:例如,设备的温度。如果需要最新数据,应使用Antilatency Device Network Library中的IPropertyCotask进行请求。
用户可以使用属性缓存读取任何ADN节点的属性,即使任务已经在该设备上运行。这允许您在需要另一个任务的连续工作时,不运行任务以使用属性。
IPropertyCotask运行时,通过显式读取和覆盖属性来更新设备属性的缓存。

有用链接