书上给的例子是一个NER方式,一个TAR方式,这个比较好理解。 NER方式下的联邦成员,其LBTS就是另外一个TAR方式联邦的输出时间。而TAR方式的联邦的输出时间:1)时间批准情况下,为 当前仿真时间+lookahead;2)在时间推进情况下,为 请求推进时间+lookahead。
现在假设两个联邦成员组成的一个联邦,都是NER方式,当前都处在时间推进方式下(NER 1.01, NER 1.5),当前仿真时间都是0.01,则RTI如何发出time grant? 假设两个联邦其内部队列中都没有事件。
如上图,分几种情况讨论:
1)A NER 1.0, B NER 1.5, 则A time grant to 1.0;接着 A NER 1.5, 则A time grant to 1.5, B time grant to 1.5;
在上述基础上,
2)B NER 1.8, A updateAttributeValues with timestamp 1.7 (TSO) then A NER 1.7,则B time grant to 1.7, A time grant to 1.7
注意,后一种情况下,当A发出updateAttributeValues at 1.7时,B并没有立即进行callback调用。而是等B time grant to 1.7时,才发出reflectAttributeValues callback调用。实验中,B time grant to 1.69时,甚至都不会引发callback调用。猜测RTI中会有事件队列,并会根据各个联邦成员的时间推进情况,适时发出callback调用。