certi-devel
[Top][All Lists]
Advanced

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

Re: [certi-dev] Time advancement


From: Michael Raab
Subject: Re: [certi-dev] Time advancement
Date: Mon, 22 Nov 2010 09:45:28 +0100

Hi,

thanks for your effords. Have you changed something in TICK management source code? I did a CVS update and now the 'error' stays the same (TICK request cannot be called recursively) but the way to it is different..
I'm attaching a log file that may help to identify the problem. It seems to me that there is TICK_REQUEST message missing that should be sent from RTIA to libRTI when tick_state changes from TICK_NEXT to TICK_RETURN.
I inserted some more logging info into RTIA and a hand written comment into the respective line of the log file. May be someone can have a short look.

Thanks & Best regards,
Michael



Dipl.-Inf. Michael Raab

Fraunhofer-Institut für Fabrikbetrieb und -automatisierung IFF
Virtuell Interaktives Training
Sandtorstr. 22, 39106 Magdeburg, Germany                
Telefon +49 (0) 391/ 40 90 122
Telefax +49 (0) 391/ 40 90 115
address@hidden
http://www.iff.fraunhofer.de oder http://www.vdtc.de



Von:        Eric Noulard <address@hidden>
An:        CERTI development discussions <address@hidden>
Datum:        11/21/2010 01:22 PM
Betreff:        Re: [certi-dev] Time advancement
Gesendet von:        address@hidden




Hi,

The Uppaal model (see
http://www.uppaal.org/)
should now reflect the state of the current time management code
(with some detail abstracted away).

The model itself can be found in:
certi/doc/CERTI-tickHandling.xml

I attach screenshot of automaton diagrams for libRTI/Federate and
corresponding RTIA.
Those models are 'template' which can be instantiated.

I'll try to do some model-checking with this in order to check for
potential deadlock
or other unexpected/unwanted properties.

I did add some more comments about time management in
both libRTI and RTIA source code files.
I think it's definitely better than before but like I said
the code in this part is not simple because

1) Federate and RTIA are different "asynchronous" process
  and even if Federate believes it's "only calling tick()" several
  messages may be exchange behind the scene

2) RTIA **needs** somehow to be asynchronous w.r.t. Federate because
  it should always be ready to receive message from RTIG
  (potential callbacks originating in other federate)

3) The code was simpler than the current one, but it got more complicated
   because of the introduction of the "timeout" version of "tick" which
   is handled asynchronously in one process (RTIA) and "look-like"
synchronously
   in libRTI but not quite.

May be this part of the code needs re-thinking/design, however it works for many
of us but Michael so, that we have to fix it but carefully...

Michael, would you be able to provide us with a strip-down autonomous
example which exhibit the problem?

I'll definitely help on this but I do not currently have enough free
time to take it down now.

--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
[Anhang "libRTI-model-shot.png" gelöscht von Michael Raab/VDT/ILA] [Anhang "RTIA-model-shot.png" gelöscht von Michael Raab/VDT/ILA] --
CERTI-Devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/certi-devel

Attachment: error_tick.txt
Description: Text document


reply via email to

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