File tree Expand file tree Collapse file tree 1 file changed +20
-11
lines changed
src/frequenz/sdk/microgrid/_battery Expand file tree Collapse file tree 1 file changed +20
-11
lines changed Original file line number Diff line number Diff line change @@ -233,20 +233,29 @@ def get_status(self) -> BatteryStatus:
233233 and self ._no_critical_error (inv_msg )
234234 )
235235
236- if not is_msg_ok :
237- self ._last_status = BatteryStatus .NOT_WORKING
238- return self ._last_status
236+ self ._last_status = self ._get_current_status (is_msg_ok )
237+ return self ._last_status
239238
240- # Use battery as soon as its message is back correct.
241- if self ._last_status == BatteryStatus .NOT_WORKING :
242- self .unblock ()
239+ def _get_current_status (self , is_msg_correct : bool ) -> BatteryStatus :
240+ """Get current battery status.
243241
244- if self .is_blocked ():
245- self ._last_status = BatteryStatus .UNCERTAIN
246- else :
247- self ._last_status = BatteryStatus .WORKING
242+ Args:
243+ is_msg_correct: Whether messages from components are correct.
248244
249- return self ._last_status
245+ Returns:
246+ Battery status.
247+ """
248+
249+ if not is_msg_correct :
250+ return BatteryStatus .NOT_WORKING
251+ if self ._last_status == BatteryStatus .NOT_WORKING :
252+ # If message just become correct, then try to use it
253+ self ._blocking_status .unblock ()
254+ return BatteryStatus .WORKING
255+ if self ._blocking_status .is_blocked ():
256+ return BatteryStatus .UNCERTAIN
257+
258+ return BatteryStatus .WORKING
250259
251260 def is_blocked (self ) -> bool :
252261 """Return if battery is blocked.
You can’t perform that action at this time.
0 commit comments