certi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [certi-dev] Problems using timed simulation


From: Christoph Laesche
Subject: Re: [certi-dev] Problems using timed simulation
Date: Mon, 23 May 2011 16:44:27 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110326 Lightning/1.0b3pre Thunderbird/3.1.9

On 05/23/2011 04:21 PM, Eric Noulard wrote:
> 2011/5/23 Christoph Laesche <address@hidden>:
>> (...)
>>
>> The first problem I encountered is that when one requests a time advance
>> (using timeAdvanceRequest) one has to supply a RTI1516fedTime object (or
>> a derived one) and not a object that is derived from LogicalTime. This
>> is because internally there is a certi_cast from the supplied time
>> object to a RTI1516fedTime object. What is the reason for this
>> implementation? It seems to limit compatibility with other RTIs.
> 
> Mostly: lack of time to do it cleanly.
> You may find a longer story here (and reference therein):
> https://savannah.nongnu.org/bugs/?30003
> 
> The design of libRTI + libFedTime has created a circular ref which is
> just a pain,
> I would be glad to have a portable solution for this issue.
> 
> Conveying user-provided LogicalTime class does not currently work with CERTI,
> mainly because until now we did not have the need for it.
> 
> Do you use your own LogicalTime class?

It is used in a project which I am porting from pitch rti. But having in
mind that there is this issue it might be possible to work around it.
But it's good to know why there is this kind of implementation.

> [note that the optional NULL_MESSAGE_PRIME
>  time management protocol
>  used by CERTI needs CERTI FedTime as well
>  see http://download.savannah.gnu.org/releases/certi/papers/11S-SIW-045.pdf
>  for the detail]
> 
>> The other problem is with the RTI1516fedTime class itself. It implements
>> various operators which require an LogicalTimeInterval object. As far as
>> i can see, there is a RTI1516fedTimeInterval object which implements the
>> LogicalTimeInterval. However, the operator functions of the
>> RTI1516fedTime class cast the LogicalTimeInterval object to a
>> HLA1516fedTime object (unfortunately without throwing an exception so
>> one won't notice if it fails). So, how am i supposed to, e.g., add a
>> time to an RTI1516fedTime object when I am required to provide an
>> RTI1516fedTime to the operator+= function which is not a derived class
>> of LogicalTimeInterval? Am i missing something?
> 
> Some bugs were fixed in this areas lately, which version of CERTI are you 
> using?
> Is is 3.4.0 or did you already tried CVS HEAD?
> 
> If it is CVS HEAD please give us the reference file + line number such
> that we can
> look at the very same piece of source code.
> 
> If if is 3.4.0, could you try CVS HEAD?

I've checked out the cvs and found the problem there, too. It is in the
file libRTI/RTI1516fedTime.cpp in line 137 (for operator+=) and in line
158 (for operator-=).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]