LS,

I've implemented a state machine (synchronous) with a couple of states and their events. Its purpose is to implement an USDT CAN stack. Because the lower level driver (made that too) passes the incoming CAN messages through a callback function I needed to derive one state in the state machine from:

a) the expected boost state base
b) my own interface which handles the callback for new messages (observer)

The state machine is performing well with one exception, hence this email.

The callback function is a member of a struct which is derived from a & b and it is called by the CAN driver.

But then when I want to notify the state that the machine is currently in with a post_event this event seems to be discarded even though it should react on it (the machine state has transitions defined for this event and the current state is that state). I also tried using the transit call but that doesn't do anything either.

It is just this one member-function that is the problem and before rewriting the state-machine to an asynchronous state machine I wanted to consult some other users.

Regards,

Iwan Sanders