新闻资讯
看你所看,想你所想

TMS(维护触发器讯息池)

TMS(维护触发器讯息池)

Trigger Management System,也叫触发管理系统,它提供了注册、删除、更新、分发触发器讯息的方法。

Trigger Management System,过滤然后分发触发器讯息的类。它提供了注册、删除、更新、分发触发器讯息的方法。
(1)触发器讯息结构定义
根据Agent之间通信的需要,定义了包含传送、接受ID、讯息类型、附加变数在内的结构体。附加变数主要包括最新速度、通用布尔变数、Agent分组信息等内容。
(2)注册触发器讯息
讯息能够通过TMS提供的注册函式RegisterMessge()注册到系统中。TMS负责创建一个新的触发器讯息并且设定其属性,完成后会将讯息实例的指针返回,将讯息压人讯息池。
(3)删除触发器讯息
当讯息失效后,Agent调用TMS提供的删除函式RemoveMessage()删除讯息池中的无用讯息。
(4)更新触发器讯息
触发器讯息系统的核心是Update()函式。这个函式可以删除过期的触发器讯息,刷新动态位置的触发器讯息,并通知与某个触发器讯息有关的所有智慧型体。Update()函式在每个时钟周期内均会被调用一次。
(5) TMS负责维护的触发器讯息池
Agent message在TMS注册后,压入讯息池(TMS MessagePool)进行保存。为了提高查找效率,讯息池会按照讯息类型对Message进行分组管理。
(6)触发器讯息分发模组
触发器讯息分发模组是TMS中较为独立的一个部分,它负责过滤讯息和建立Agent和该Agent独有讯息的映射表。是保证Multi-Agent进行高效通信与事件同步的基础。
系统在每个运算周期中均会调用触发器讯息类中讯息分发函式DistributeMessage()来分发讯息池中的讯息,创建讯息映射表,提高Agent获得讯息的速度,进而确保系统的实时性。DistributeMessage()函式首先获取讯息池中的讯息,然后根据讯息的接收ID将讯息压入讯息映射表中。各个Agent在下个运算周期中访问相应的讯息映射表,取出讯息从而进行操作。
讯息的分发实现了每个Agent只要对它感兴趣的事件Event做出反应即可,同时两个运算周期的配合也保证了系统的实时性。
(7) TMS分发讯息后产生的Agent对应讯息映射表
为了避免轮询,从而进一步提高效率设计了这个映射表。每个Agent ID对应一组经过分发模组检测后生成的讯息指针。Agent对象只需要根据自己的类型和ID查询该表就可以快速的得到自己在新的时钟周期所应处理的讯息。
(8)触发器的逻辑概念
触发器( Trigger ) 是负责触发器讯息产生的逻辑运算机,当满足了触发条件时, Agent就会产生并注册触发器讯息。

转载请注明出处海之美文 » TMS(维护触发器讯息池)

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com