Read the EC for the battery limiter

This commit is contained in:
Stephen Horvath
2025-04-13 12:52:02 +10:00
parent 35f9c766b9
commit f2cf2c7923

View File

@@ -107,7 +107,7 @@ class BatteryPage(Gtk.Box):
) )
except ec_exceptions.ECError as e: except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND: if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
app.no_support.append(ec_commands.framework_laptop.EC_CMD_CHARGE_LIMIT) app.no_support.append(ec_commands.framework_laptop.EC_CMD_CHARGE_LIMIT_CONTROL)
self.chg_limit_enable.set_sensitive(False) self.chg_limit_enable.set_sensitive(False)
else: else:
raise e raise e
@@ -186,31 +186,47 @@ class BatteryPage(Gtk.Box):
) )
def _update_battery(self, app): def _update_battery(self, app):
if ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER in app.no_support: success = False
return False
try: # Charge Limiter
ec_extender = ec_commands.framework_laptop.get_battery_extender( if not ec_commands.framework_laptop.EC_CMD_CHARGE_LIMIT_CONTROL in app.no_support:
app.cros_ec try:
) ec_limit = ec_commands.framework_laptop.get_charge_limit(app.cros_ec)
self.chg_limit_label.set_label(f"{ec_limit[0]}%")
self.bat_limit_label.set_label(f"{ec_limit[1]}%")
self.bat_ext_stage.set_subtitle(str(ec_extender["current_stage"])) success = True
self.bat_ext_trigger_time.set_subtitle( except ec_exceptions.ECError as e:
format_timedelta(ec_extender["trigger_timedelta"]) if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
) app.no_support.append(ec_commands.framework_laptop.EC_CMD_CHARGE_LIMIT_CONTROL)
self.bat_ext_reset_time.set_subtitle( else:
format_timedelta(ec_extender["reset_timedelta"]) raise e
)
except ec_exceptions.ECError as e: # Battery Extender
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND: if not ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER in app.no_support:
app.no_support.append( try:
ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER ec_extender = ec_commands.framework_laptop.get_battery_extender(
app.cros_ec
) )
return False
else:
raise e
return app.current_page == 2 self.bat_ext_stage.set_subtitle(str(ec_extender["current_stage"]))
self.bat_ext_trigger_time.set_subtitle(
format_timedelta(ec_extender["trigger_timedelta"])
)
self.bat_ext_reset_time.set_subtitle(
format_timedelta(ec_extender["reset_timedelta"])
)
success = True
except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
app.no_support.append(
ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER
)
else:
raise e
return app.current_page == 2 and success
def format_timedelta(timedelta): def format_timedelta(timedelta):
days = f"{timedelta.days} days, " if timedelta.days else "" days = f"{timedelta.days} days, " if timedelta.days else ""