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,9 +186,24 @@ 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
# Charge Limiter
if not ec_commands.framework_laptop.EC_CMD_CHARGE_LIMIT_CONTROL in app.no_support:
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]}%")
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_CHARGE_LIMIT_CONTROL)
else:
raise e
# Battery Extender
if not ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER in app.no_support:
try: try:
ec_extender = ec_commands.framework_laptop.get_battery_extender( ec_extender = ec_commands.framework_laptop.get_battery_extender(
app.cros_ec app.cros_ec
@@ -201,16 +216,17 @@ class BatteryPage(Gtk.Box):
self.bat_ext_reset_time.set_subtitle( self.bat_ext_reset_time.set_subtitle(
format_timedelta(ec_extender["reset_timedelta"]) format_timedelta(ec_extender["reset_timedelta"])
) )
success = True
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( app.no_support.append(
ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER ec_commands.framework_laptop.EC_CMD_BATTERY_EXTENDER
) )
return False
else: else:
raise e raise e
return app.current_page == 2 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 ""