Comments (4)
I figured out how to do it, at least for the first class in fsm_list. If you move the state class declaration to the header file you can do it like this:
std::cout << fsm_list::fsmtype::current_state_ptr << std::endl;
std::cout << &fsm_list::fsmtype::state<Up>() << std::endl;
from tinyfsm.
You can print the address of the current state:
std::cout << MyFsm::current_state_ptr << std::endl;
The address of the states can be printed like this:
std::cout << &MyFsm::state<StateA>() << std::endl;
std::cout << &MyFsm::state<StateB>() << std::endl;
[...]
from tinyfsm.
How would you print the addresses of the states if they are classes instead, like in the elevator example?
from tinyfsm.
You can also check if the state machine is in a certain state using the is_in_state
function:
bool in_state_a = MyFsm::is_in_state<StateA>();
bool in_state_b = MyFsm::is_in_state<StateB>();
from tinyfsm.
Related Issues (20)
- Events double dispatching support HOT 3
- Should FSM_INITIAL_STATE call entry? HOT 1
- How do you pass a SM to a function? HOT 1
- non virtual destructor HOT 3
- State update loop HOT 4
- Linking error HOT 3
- Not able to compile with IAR ARM v8.20.2 HOT 2
- size on Mac doesn't support -B flag HOT 1
- calling dispatch() before start() throws unhandled exception with read access violation HOT 2
- any plan for latest tag release ? HOT 4
- Doesn't compile when debug information is enabled. HOT 2
- How to separate state classes from the state machine class?
- Is it possible to set initial state (at runtime) to something which is different from what was passed in FSM_INITIAL_STATE? HOT 1
- is it possible to instantiate multiple Elevators classes, using the same elevator.hpp and .cpp? HOT 3
- connecting IO class with Tiny FSM HOT 2
- Testing tinyFSM state machines with VectorCAST?
- Calling dispatch() and/or transit() from action function HOT 3
- Handle multiple FSMs HOT 2
- Security Disclosure Policy HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinyfsm.