Boost logo

Boost Users :

Subject: Re: [Boost-users] [StateChart] pass objectpointer to FSM?
From: Igor R (boost.lists_at_[hidden])
Date: 2011-03-14 17:18:21


> My question:
> How can I pass a pointer to an object into the state machine?
>
> I want to use my state machine to control a real-life elevator. All the
> functions for controlling this elevator is inside class Elevator;
> I.e: myElevator->startEngine(UP);
>
> I've tried different approaches as you might see in my attached code, but I
> keep getting this error:
> statemachine: ../boost/boost/cast.hpp:97: Target
> boost::polymorphic_downcast(Source*) [with Target = ElevatorSM*, Source =
> boost::statechart::state_machine<ElevatorSM, ElevatorActive>]: Assertion
> `dynamic_cast<Target>(x) == x' failed.
> Aborted
>
> h-file: http://codepad.org/i3rAjT1p
> cpp-file: http://codepad.org/TpaWluCz

Your code compiles well (after a few cosmetic changes, like fixing
test123() name, adding "e" member to your fsm, etc.).
boost 1.45, MSVC10.


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