Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost MSM: No transition from submachine to external state
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2012-01-24 15:46:09


>> Thanks Christophe. I will make the change to see it work; but based on
>> your
>> comments, I'll probably switch to one of the other front-ends.
>>
>> Thanks,
>>
>> Steve
>
> What I mean is that eUML is not used as long as other front-ends and
> therefore less tested. But there has been so far no bug I haven't been
> able to fix within a few days.
> In the case you reported, I have a fix which seems to be working (and
> reduces the syntax needed), I just need to play with it a bit more before
> committing it.

Hi,

as promised, I fixed this problem (trunk rev. 76655). It even requires less
typing. You define a submachine with front-end like always and use it in
another state machine. In your case, you'd have:

typedef boost::msm::back::state_machine<Normal_T> Normal_TImpl;

The remaining code is unchanged:
Alarm_TImpl alarm;

        BOOST_MSM_EUML_DECLARE_TRANSITION_TABLE((
          normal + evAlarm / resetDeviceInited() == alarm,
          alarm + evAlarmCleared == normal
          ),transition_table)

You probably moved to another front-end, but in case you want to try eUML,
this problem is fixed.

Cheers,
Christophe


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net