@@ -397,10 +397,7 @@ def autonomous(self) -> None:
397397 except :
398398 self .onException (forceReport = True )
399399
400- auto_functions : Tuple [Callable [[], None ], ...] = (
401- self ._execute_components ,
402- self ._update_feedback ,
403- ) + tuple (p [0 ] for p in self .__periodics )
400+ auto_functions : Tuple [Callable [[], None ], ...] = (self ._enabled_periodic ,)
404401
405402 if self .use_teleop_in_autonomous :
406403 auto_functions = (self .teleopPeriodic ,) + auto_functions
@@ -456,12 +453,8 @@ def _disabled(self) -> None:
456453 self .onException ()
457454 watchdog .addEpoch ("disabledPeriodic()" )
458455
459- self ._update_feedback ()
460- for periodic , name in self .__periodics :
461- periodic ()
462- watchdog .addEpoch (name )
456+ self ._do_periodics ()
463457 # watchdog.disable()
464-
465458 watchdog .printIfExpired ()
466459
467460 delay .wait ()
@@ -509,14 +502,8 @@ def _operatorControl(self) -> None:
509502 self .onException ()
510503 watchdog .addEpoch ("teleopPeriodic()" )
511504
512- self ._execute_components ()
513-
514- self ._update_feedback ()
515- for periodic , name in self .__periodics :
516- periodic ()
517- watchdog .addEpoch (name )
505+ self ._enabled_periodic ()
518506 # watchdog.disable()
519-
520507 watchdog .printIfExpired ()
521508
522509 delay .wait ()
@@ -558,12 +545,8 @@ def _test(self) -> None:
558545 self .onException ()
559546 watchdog .addEpoch ("testPeriodic()" )
560547
561- self ._update_feedback ()
562- for periodic , name in self .__periodics :
563- periodic ()
564- watchdog .addEpoch (name )
548+ self ._do_periodics ()
565549 # watchdog.disable()
566-
567550 watchdog .printIfExpired ()
568551
569552 delay .wait ()
@@ -724,23 +707,36 @@ def _setup_reset_vars(self, component) -> None:
724707 component .__dict__ .update (reset_dict )
725708 self ._reset_components .append ((reset_dict , component ))
726709
727- def _update_feedback (self ) -> None :
710+ def _do_periodics (self ) -> None :
711+ """Run periodic methods which run in every mode."""
712+ watchdog = self .watchdog
713+
728714 for method , entry in self ._feedbacks :
729715 try :
730716 value = method ()
731717 except :
732718 self .onException ()
733- continue
734- entry .setValue (value )
735- self .watchdog .addEpoch ("@magicbot.feedback" )
719+ else :
720+ entry .setValue (value )
721+
722+ watchdog .addEpoch ("@magicbot.feedback" )
723+
724+ for periodic , name in self .__periodics :
725+ periodic ()
726+ watchdog .addEpoch (name )
727+
728+ def _enabled_periodic (self ) -> None :
729+ """Run components and all periodic methods."""
730+ watchdog = self .watchdog
736731
737- def _execute_components (self ) -> None :
738732 for name , component in self ._components :
739733 try :
740734 component .execute ()
741735 except :
742736 self .onException ()
743- self .watchdog .addEpoch (name )
737+ watchdog .addEpoch (name )
738+
739+ self ._do_periodics ()
744740
745741 for reset_dict , component in self ._reset_components :
746742 component .__dict__ .update (reset_dict )
0 commit comments