Cotask及CotaskConstructor

Cotask及CotaskConstructor

这些软件对象允许用户处理ADN设备的特定任务。TaskCotaskCotaskConstructor紧密相连并一起使用。

Cotask(子任务)

Cotask允许用户以他可以理解的形式接收信息,这意味着它可以转换任务(Task)的源数据。Cotask提供用于处理特定任务的接口,并隐藏数据包的传输和处理。

每个Cotask只与一个对应的任务交互,在某种程度上,它是这项任务的一个响应部分。同时,根据用户需要转换源数据的方式,一个任务可以有几个子任务。例如,Alt的跟踪任务有两个ITrackingCotaskITrackingDataCotask

根据一般协议,cotask已返回准备工作,因此创建一个cotask应该与启动相应的任务一起进行。因此,您需要一个对象来完成这项工作。

CotaskConstructor(协同任务构造函数)

CotaskConstructor是一个软件对象,创建一个cotask并在ADN节点(Node)上启动相应的任务。此外,它可以检查节点是否支持所需任务,并使用isSupportedfindSupportedNodes方法在设备树中搜索此类节点。

CotaskConstructor返回cotask实例。要启动一个任务,CotaskConstructor通常只需要一个INetwork实例和所需的标识符(NodeHandle),但一些CotaskConstructor可能需要额外的输入参数。数据包传输、源数据的处理、工作逻辑和任务标识符(GUID)隐藏在cotask和CotaskConstructor中。通常每个任务至少有一个cotask,每个cotask有一个CotaskConstructor。这允许您创建更通用的API和用户友好的界面来处理任务。

典型使用案例

要在一个或多个设备上启动特定任务(例如,跟踪所有连接的Alt),需要:

与cotask工作的完成

Cotask可以在两种情况下完成:由用户发起的,或者当任务在设备上完成时(包括当设备物理断开连接时)。根据部分销毁(partial destroy)原则销毁cotask实例。
如果cotask完成是由用户发起的,则需要释放接口引用。

有用链接