commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jacob Beard <jbea...@cs.mcgill.ca>
Subject Re: [scxml] question on datamodel
Date Mon, 03 Dec 2012 15:02:13 GMT
Hi Francesco,

The example you describe looks like the special "timeout" event described
by Harel in his original papers on Statechart semantics:
http://research.microsoft.com/apps/pubs/default.aspx?id=148785
http://dl.acm.org/citation.cfm?id=235322

If so, this event can be implemented in SCXML as a transformation, as in
the following example: https://gist.github.com/4195449

In this example, on entering state "a", the event "$timeout_1" is scheduled
to be sent after 1 second. If the state is exited before that time, the
scheduled event will be cancelled via the <cancel> action. If the machine
stays in state "a", and after 1 second the event is sent, then the
transition in state "a" with event "$transition_1" will be selected, and
the machine will leave state "a" and enter state "b".

This transformation can be implemented easily in a language like XSLT.
Therefore, SCXML should be able to handle your example out of the box. Does
your application have other, more complex requirements for transition
conditions?

Jake

On Mon, Dec 3, 2012 at 9:30 AM, Francesco Spegni <francesco.spegni@gmail.com
> wrote:

> The first problem we are trying to solve is: how to extend the definition
> of Transition to accept custom XML nodes to be interpreted as complex
> conditions? E.g. we would like to express something as:
>
> <scxml xmlns="http://www.w3.org/2005/**07/scxml<http://www.w3.org/2005/07/scxml>
> "
>        version="1.0"
>        initialstate="a"
>        datamodel="xmlns:cc="someurl" >
>
>     <state id="a">
>         <transition target="b" cond="cc:eval(//condition)" >
>             <cc:condition>
>                 <time exp="clock > 1 sec" />
>             </cc:condition>
>         </transition>
>     </state>
>
>     <state id="b" final="true">
>
>     </state>
> </scxml>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message