From 3366aeb1bc95ee36411d4cc07f539eae87ac5422 Mon Sep 17 00:00:00 2001 From: Loy van Beek Date: Tue, 19 Jan 2021 15:10:51 +0100 Subject: [PATCH 1/3] Add additional logging --- flexbe_core/src/flexbe_core/core/concurrency_container.py | 5 +++++ flexbe_core/test/test_core.py | 1 + 2 files changed, 6 insertions(+) diff --git a/flexbe_core/src/flexbe_core/core/concurrency_container.py b/flexbe_core/src/flexbe_core/core/concurrency_container.py index 303203a6..af504bf8 100644 --- a/flexbe_core/src/flexbe_core/core/concurrency_container.py +++ b/flexbe_core/src/flexbe_core/core/concurrency_container.py @@ -49,7 +49,12 @@ def _execute_current_state(self): # this sleep returns immediately since sleep duration is negative, # but is required here to reset the sleep time after executing state.sleep() + + Logger.loginfo("BEFORE: state.sleep_duration({ssd}) if sleep_dur({sd}) is None else " + "min(sleep_dur, state.sleep_duration)({m})" + .format(ssd=state.sleep_duration, sd=sleep_dur, m=min(sleep_dur, state.sleep_duration))) sleep_dur = state.sleep_duration if sleep_dur is None else min(sleep_dur, state.sleep_duration) + Logger.loginfo("AFTER: sleep_dur={sd}".format(sd=sleep_dur)) if sleep_dur > 0: self._sleep_dur = sleep_dur diff --git a/flexbe_core/test/test_core.py b/flexbe_core/test/test_core.py index beef515d..41dfcae5 100755 --- a/flexbe_core/test/test_core.py +++ b/flexbe_core/test/test_core.py @@ -358,6 +358,7 @@ def sleep(self): cc.execute(None) cc.sleep() cc.execute(None) + rospy.logwarn("self.assertAlmostEqual(cc.sleep_duration, .1, places=2)") self.assertAlmostEqual(cc.sleep_duration, .1, places=2) cc.sleep() cc['main'].set_rate(15) From ea7d1b74f8be4eb473ee19f256bb0fc269446750 Mon Sep 17 00:00:00 2001 From: Loy van Beek Date: Thu, 21 Jan 2021 09:44:50 +0000 Subject: [PATCH 2/3] Add more asserts --- flexbe_core/src/flexbe_core/core/concurrency_container.py | 4 +--- flexbe_core/test/test_core.py | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/flexbe_core/src/flexbe_core/core/concurrency_container.py b/flexbe_core/src/flexbe_core/core/concurrency_container.py index af504bf8..b0906fc2 100644 --- a/flexbe_core/src/flexbe_core/core/concurrency_container.py +++ b/flexbe_core/src/flexbe_core/core/concurrency_container.py @@ -50,9 +50,7 @@ def _execute_current_state(self): # but is required here to reset the sleep time after executing state.sleep() - Logger.loginfo("BEFORE: state.sleep_duration({ssd}) if sleep_dur({sd}) is None else " - "min(sleep_dur, state.sleep_duration)({m})" - .format(ssd=state.sleep_duration, sd=sleep_dur, m=min(sleep_dur, state.sleep_duration))) + Logger.loginfo("BEFORE: state.sleep_duration({ssd}) if sleep_dur({sd}) is None else".format(ssd=state.sleep_duration, sd=sleep_dur)) sleep_dur = state.sleep_duration if sleep_dur is None else min(sleep_dur, state.sleep_duration) Logger.loginfo("AFTER: sleep_dur={sd}".format(sd=sleep_dur)) if sleep_dur > 0: diff --git a/flexbe_core/test/test_core.py b/flexbe_core/test/test_core.py index 41dfcae5..0384b1bd 100755 --- a/flexbe_core/test/test_core.py +++ b/flexbe_core/test/test_core.py @@ -355,11 +355,14 @@ def sleep(self): pass # all states are called with their correct rate + self.assertEquals(cc.sleep_duration, 0., msg="cc.sleep_duration should be 0. before executing") cc.execute(None) + self.assertAlmostEqual(cc.sleep_duration, .1, delta=0.05, msg="After executing once, cc.sleep_duration should be set to the duration of the 'fastest' state") cc.sleep() + self.assertAlmostEqual(cc.sleep_duration, .0, delta=0.05, msg="After sleeping once, cc.sleep_duration should be reset to 0") cc.execute(None) rospy.logwarn("self.assertAlmostEqual(cc.sleep_duration, .1, places=2)") - self.assertAlmostEqual(cc.sleep_duration, .1, places=2) + self.assertAlmostEqual(cc.sleep_duration, .1, delta=0.05, msg="After executing twice, cc.sleep_duration should be set to the duration of the 'fastest' state") cc.sleep() cc['main'].set_rate(15) cc['side'].set_rate(10) From 41c27fb2642e3b9c42ad4329d1a22fcb2bc69428 Mon Sep 17 00:00:00 2001 From: Loy van Beek Date: Thu, 21 Jan 2021 10:58:04 +0000 Subject: [PATCH 3/3] Remove additional assert and logging --- flexbe_core/src/flexbe_core/core/concurrency_container.py | 3 --- flexbe_core/test/test_core.py | 4 ---- 2 files changed, 7 deletions(-) diff --git a/flexbe_core/src/flexbe_core/core/concurrency_container.py b/flexbe_core/src/flexbe_core/core/concurrency_container.py index b0906fc2..303203a6 100644 --- a/flexbe_core/src/flexbe_core/core/concurrency_container.py +++ b/flexbe_core/src/flexbe_core/core/concurrency_container.py @@ -49,10 +49,7 @@ def _execute_current_state(self): # this sleep returns immediately since sleep duration is negative, # but is required here to reset the sleep time after executing state.sleep() - - Logger.loginfo("BEFORE: state.sleep_duration({ssd}) if sleep_dur({sd}) is None else".format(ssd=state.sleep_duration, sd=sleep_dur)) sleep_dur = state.sleep_duration if sleep_dur is None else min(sleep_dur, state.sleep_duration) - Logger.loginfo("AFTER: sleep_dur={sd}".format(sd=sleep_dur)) if sleep_dur > 0: self._sleep_dur = sleep_dur diff --git a/flexbe_core/test/test_core.py b/flexbe_core/test/test_core.py index 0384b1bd..833e93e4 100755 --- a/flexbe_core/test/test_core.py +++ b/flexbe_core/test/test_core.py @@ -355,13 +355,9 @@ def sleep(self): pass # all states are called with their correct rate - self.assertEquals(cc.sleep_duration, 0., msg="cc.sleep_duration should be 0. before executing") cc.execute(None) - self.assertAlmostEqual(cc.sleep_duration, .1, delta=0.05, msg="After executing once, cc.sleep_duration should be set to the duration of the 'fastest' state") cc.sleep() - self.assertAlmostEqual(cc.sleep_duration, .0, delta=0.05, msg="After sleeping once, cc.sleep_duration should be reset to 0") cc.execute(None) - rospy.logwarn("self.assertAlmostEqual(cc.sleep_duration, .1, places=2)") self.assertAlmostEqual(cc.sleep_duration, .1, delta=0.05, msg="After executing twice, cc.sleep_duration should be set to the duration of the 'fastest' state") cc.sleep() cc['main'].set_rate(15)