On Sat, Sep 4, 2010 at 12:55 PM, Azraiyl <azra...@gmail.com> wrote:
> Hello,
>
> I've a simple state machine
>
> <?xml version="1.0" encoding="UTF-8"?>
> <scxml xmlns="http://www.w3.org/2005/07/scxml"; version="1.0"
> name="Fan2" initial="Off" exmode="strict">
>       <datamodel>
>               <data id="T" expr="10"/>
>       </datamodel>
>       <state id="Off">
>               <onentry>
>                       <log expr="'OnEntry Off'"/>
>               </onentry>
>               <transition cond="T &gt; 30" target="On"/>
>               <onexit>
>                       <log expr="'OnExit Off'"/>
>               </onexit>
>       </state>
>       <state id="On">
>               <onentry>
>                       <log expr="'OnEntry On'"/>
>               </onentry>
>               <transition cond="T &lt; 20" target="Off"/>
>               <onexit>
>                       <log expr="'OnExit On'"/>
>               </onexit>
>       </state>
> </scxml>
>
> and like to update T through Java. I tried this:
>
> fan2.getEngine().getRootContext().set("T", "40");
>
> but somehow the engine does not switch into the new state. Do I have
> to manually trigger the engine to reevaluate all conditions or what
> I'am missing?
>
<snip/>

Yes, once in steady state, the conditions will be evaluated again only
during the next event processing.

Couple of options:
 * Send the new value of T through the payload of an event
 * Trigger an event after the set value of T above

-Rahul


> Thanks in advance for any hint
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to