@@ -233,7 +233,7 @@ def main() -> None:
233233 set_ros_loggers()
234234
235235 # Create a finite state machine (FSM)
236- sm = StateMachine(outcomes = [" outcome4" ])
236+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
237237
238238 # Add states to the FSM
239239 sm.add_state(
@@ -370,7 +370,7 @@ def main() -> None:
370370 blackboard[" msg1" ] = " test1"
371371 blackboard[" msg2" ] = " test2"
372372
373- sm = StateMachine(outcomes = [SUCCEED ])
373+ sm = StateMachine(outcomes = [SUCCEED ], handle_sigint = True )
374374 sm.add_state(
375375 " STATE1" ,
376376 Foo(),
@@ -534,7 +534,7 @@ def main() -> None:
534534 set_ros_loggers()
535535
536536 # Create a finite state machine (FSM)
537- sm = StateMachine(outcomes = [" outcome4" ])
537+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
538538
539539 # Create states to run concurrently
540540 foo_state: State = FooState()
@@ -687,7 +687,7 @@ def main() -> None:
687687 set_ros_loggers()
688688
689689 # Create the state machine with 'SUCCEED' as the terminal outcome
690- sm = StateMachine([SUCCEED ])
690+ sm = StateMachine([SUCCEED ], handle_sigint = True )
691691
692692 # Add the publishing state which loops until the condition is met
693693 sm.add_state(
@@ -823,7 +823,7 @@ def main() -> None:
823823 set_ros_loggers()
824824
825825 # Create a finite state machine (FSM)
826- sm = StateMachine(outcomes = [" outcome4" ])
826+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
827827
828828 # Add states to the FSM
829829 sm.add_state(
@@ -987,7 +987,7 @@ def main() -> None:
987987 set_ros_loggers()
988988
989989 # Create a FSM
990- sm = StateMachine(outcomes = [" outcome4" ])
990+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
991991
992992 # Add states
993993 sm.add_state(
@@ -1179,7 +1179,7 @@ def main() -> None:
11791179 set_ros_loggers()
11801180
11811181 # Create a finite state machine (FSM)
1182- sm = StateMachine(outcomes = [" outcome4" ])
1182+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
11831183
11841184 # Add states to the FSM
11851185 sm.add_state(
@@ -1336,7 +1336,7 @@ def main() -> None:
13361336 set_ros_loggers()
13371337
13381338 # Create a finite state machine (FSM)
1339- sm = StateMachine(outcomes = [" outcome4" ])
1339+ sm = StateMachine(outcomes = [" outcome4" ], handle_sigint = True )
13401340
13411341 # Add states to the FSM
13421342 sm.add_state(
@@ -1442,6 +1442,7 @@ def main() -> None:
14421442 get_package_share_directory(" yasmin_demos" ), " state_machines" , " demo_1.xml"
14431443 )
14441444 )
1445+ sm.set_sigint_handler(True )
14451446
14461447 # Publish FSM information for visualization
14471448 viewer = YasminViewerPub(sm, " plugin_demo" )
@@ -1606,7 +1607,7 @@ def main() -> None:
16061607 set_ros_loggers()
16071608
16081609 # Create state machines
1609- sm = StateMachine(outcomes = [SUCCEED , ABORT , CANCEL ])
1610+ sm = StateMachine(outcomes = [SUCCEED , ABORT , CANCEL ], handle_sigint = True )
16101611 nav_sm = StateMachine(outcomes = [SUCCEED , ABORT , CANCEL ])
16111612
16121613 # Add states to the state machine
@@ -1790,7 +1791,7 @@ int main(int argc, char *argv[]) {
17901791
17911792 // Create a state machine
17921793 auto sm = std::make_shared< yasmin::StateMachine > (
1793- std::initializer_list< std::string > {"outcome4"});
1794+ std::initializer_list< std::string > {"outcome4"}, true );
17941795
17951796 // Add states to the state machine
17961797 sm->add_state("FOO", std::make_shared<FooState >(),
@@ -1912,7 +1913,8 @@ int main(int argc, char *argv[]) {
19121913
19131914 // Create a state machine
19141915 auto sm = std::make_shared< yasmin::StateMachine > (
1915- std::initializer_list< std::string > {yasmin_ros::basic_outcomes::SUCCEED});
1916+ std::initializer_list< std::string > {yasmin_ros::basic_outcomes::SUCCEED},
1917+ true);
19161918
19171919 // Add states to the state machine
19181920 sm->add_state("STATE1", std::make_shared<FooState >(),
@@ -2080,7 +2082,7 @@ int main(int argc, char *argv[]) {
20802082
20812083 // Create a state machine
20822084 auto sm = std::make_shared< yasmin::StateMachine > (
2083- std::initializer_list< std::string > {"outcome4"});
2085+ std::initializer_list< std::string > {"outcome4"}, true );
20842086
20852087 // Create states to run concurrently
20862088 auto foo_state = std::make_shared<FooState >();
@@ -2230,7 +2232,8 @@ int main(int argc, char *argv[]) {
22302232
22312233 // Create a state machine with a final outcome
22322234 auto sm = std::make_shared< yasmin::StateMachine > (
2233- std::initializer_list< std::string > {yasmin_ros::basic_outcomes::SUCCEED});
2235+ std::initializer_list< std::string > {yasmin_ros::basic_outcomes::SUCCEED},
2236+ true);
22342237
22352238 // Add states to the state machine
22362239 sm->add_state("PUBLISHING_INT", std::make_shared<PublishIntState >(),
@@ -2373,7 +2376,7 @@ int main(int argc, char *argv[]) {
23732376
23742377 // Create a state machine with a final outcome
23752378 auto sm = std::make_shared< yasmin::StateMachine > (
2376- std::initializer_list< std::string > {"outcome4"});
2379+ std::initializer_list< std::string > {"outcome4"}, true );
23772380
23782381 // Add states to the state machine
23792382 sm->add_state(
@@ -2542,7 +2545,7 @@ int main(int argc, char *argv[]) {
25422545
25432546 // Create a state machine with a specified outcome.
25442547 auto sm = std::make_shared< yasmin::StateMachine > (
2545- std::initializer_list< std::string > {"outcome4"});
2548+ std::initializer_list< std::string > {"outcome4"}, true );
25462549
25472550 // Add states to the state machine.
25482551 sm->add_state("SETTING_INTS",
@@ -2743,7 +2746,7 @@ int main(int argc, char *argv[]) {
27432746
27442747 // Create the state machine
27452748 auto sm = std::make_shared< yasmin::StateMachine > (
2746- std::initializer_list< std::string > {"outcome4"});
2749+ std::initializer_list< std::string > {"outcome4"}, true );
27472750
27482751 // Add states to the state machine
27492752 sm->add_state("CALLING_FIBONACCI", std::make_shared<FibonacciState >(),
@@ -2896,7 +2899,7 @@ int main(int argc, char *argv[]) {
28962899
28972900 // Create a state machine
28982901 auto sm = std::make_shared< yasmin::StateMachine > (
2899- std::initializer_list< std::string > {"outcome4"});
2902+ std::initializer_list< std::string > {"outcome4"}, true );
29002903
29012904 // Add states to the state machine
29022905 sm->add_state("GETTING_PARAMETERS",
@@ -2991,6 +2994,7 @@ int main(int argc, char *argv[]) {
29912994
29922995 // Create the state machine from the XML file
29932996 auto sm = factory.create_sm_from_file(xml_file);
2997+ sm->set_sigint_handler(true);
29942998
29952999 // Execute the state machine
29963000 try {
@@ -3179,7 +3183,8 @@ int main(int argc, char *argv[]) {
31793183 auto sm = std::make_shared<yasmin::StateMachine>(
31803184 std::initializer_list<std::string>{yasmin_ros::basic_outcomes::SUCCEED,
31813185 yasmin_ros::basic_outcomes::ABORT,
3182- yasmin_ros::basic_outcomes::CANCEL});
3186+ yasmin_ros::basic_outcomes::CANCEL},
3187+ true);
31833188 auto nav_sm = std::make_shared<yasmin::StateMachine>(
31843189 std::initializer_list<std::string>{yasmin_ros::basic_outcomes::SUCCEED,
31853190 yasmin_ros::basic_outcomes::ABORT,
0 commit comments