Wed 28 Nov 2007 12:24:55 PM UTC, comment #4:
Hello.
Time constrained federates have to call enableAsynchronousDelivery before they can get callbacks without invoking timeAdvanceRequest followed by tick.
So they have to call enableAsynchronusDelivery before exchanging any messages which should cause callbacks while calling tick.
In my opinion, point 1 and point 2 in the scenario Eric described have to changed and everything would work.
I think that the question of pending messages can not be answered completely through the HLA standard specification.
In my opinion it is more logical to regard the service enableAsynchronousDelivery as early part of the initialization phase of the federate. Normally, it should be clear before programming the federate if it needs to receive callbacks not only in a time advance phase.
The pending messages Eric described would be received after a time advance call followed by tick. So in this scenario federates have to advance their logical time to get the interaction callback receiveInteraction.
That's why I would say that the calling order described by Eric can be regarded as a possible but wrong handling of the HLA API.
Some RTI implementations handle the situation as Eric described, but this is not a must.
|