From f1e63a8fa110701573ac57d663cd1672af81ef26 Mon Sep 17 00:00:00 2001 From: Philipp Schillinger Date: Fri, 27 Dec 2019 16:02:55 +0100 Subject: [PATCH] [flexbe_core] [flexbe_widget] Add simple breakpoint feature (see #93) --- flexbe_core/src/flexbe_core/core/operatable_state.py | 4 +++- flexbe_widget/bin/breakpoint | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100755 flexbe_widget/bin/breakpoint diff --git a/flexbe_core/src/flexbe_core/core/operatable_state.py b/flexbe_core/src/flexbe_core/core/operatable_state.py index 68f4ad32..83341961 100644 --- a/flexbe_core/src/flexbe_core/core/operatable_state.py +++ b/flexbe_core/src/flexbe_core/core/operatable_state.py @@ -79,7 +79,9 @@ def _operatable_execute(self, *args, **kwargs): log_requested_outcome = outcome # request outcome because autonomy level is too low - if not self._force_transition and (self.autonomy.has_key(outcome) and self.autonomy[outcome] >= OperatableStateMachine.autonomy_level): + if not self._force_transition and (self.autonomy.has_key(outcome) and self.autonomy[outcome] >= OperatableStateMachine.autonomy_level or + outcome != OperatableState._loopback_name and + self._get_path() in rospy.get_param('/flexbe/breakpoints', [])): if self._sent_outcome_requests.count(outcome) == 0: self._pub.publish(self._request_topic, OutcomeRequest(outcome=self._outcome_list.index(outcome), target=self._parent._get_path() + "/" + self.name)) rospy.loginfo("<-- Want result: %s > %s", self.name, outcome) diff --git a/flexbe_widget/bin/breakpoint b/flexbe_widget/bin/breakpoint new file mode 100755 index 00000000..42052ba2 --- /dev/null +++ b/flexbe_widget/bin/breakpoint @@ -0,0 +1,7 @@ +#!/usr/bin/env python +import rospy +import sys + + +if __name__ == '__main__': + rospy.set_param('/flexbe/breakpoints', sys.argv[1:])