32 using StateMachine = boost::sml::sm<sml_example::StateMachineLogic>;
38 const std::string output_filename_dot =
"/tmp/sml_transition_diagram.dot";
39 const std::string output_filename_png =
"/tmp/sml_transition_diagram.png";
40 std::ofstream dot_file(output_filename_dot);
41 std::cout <<
"Saving sml tranistion diagram to: `" << output_filename_dot
44 std::cout <<
"You can visualize it by running `dot -Tpng "
45 << output_filename_dot <<
" > " << output_filename_png
46 <<
" && xdg-open " << output_filename_png <<
"`\n";
48 std::cout <<
"----------------------------------------\n";
51 std::cout <<
"----------------------------------------\n";
54 std::cout <<
"----------------------------------------\n";
58 std::cout <<
"----------------------------------------\n";
61 std::reverse(path_1.begin(), path_1.end());
62 for (
size_t i = 0; i < path_1.size() - 1; i++)
66 std::cout <<
"----------------------------------------\n";
69 if (path_2.size() == 1)
70 std::cout <<
"There's no path from 'executing' to 'idle'\n";