diff --git a/preload/apps/card10_nickname/__init__.py b/preload/apps/card10_nickname/__init__.py index 16fc8ad00869017bca56a5a329e3eeb13b074225..09d8b149846e3d94026ed71bbaa1e09a81336f9c 100644 --- a/preload/apps/card10_nickname/__init__.py +++ b/preload/apps/card10_nickname/__init__.py @@ -80,17 +80,17 @@ def get_bat_color(bat): Voltage threshold's are currently estimates as voltage isn't that great of an indicator for battery charge. :param bat: battery config tuple (boolean: indicator on/off, array: good rgb, array: ok rgb, array: bad rgb) - :return: false if old firmware, RGB color array otherwise + :return: battery status tuple (float: battery voltage, false if old firmware, RGB color array otherwise) """ try: v = os.read_battery() if v > 3.8: - return bat[1] + return (v, bat[1]) if v > 3.6: - return bat[2] - return bat[3] + return (v, bat[2]) + return (v, bat[3]) except AttributeError: - return False + return (0, False) def render_battery(disp, bat): @@ -100,10 +100,15 @@ def render_battery(disp, bat): :param disp: open display :param bat: battery config tuple (boolean: indicator on/off, array: good rgb, array: ok rgb, array: bad rgb) """ - c = get_bat_color(bat) + v, c = get_bat_color(bat) if not c: return - disp.rect(140, 2, 155, 9, filled=True, col=c) + if v > 4.0: + disp.rect(140, 2, 155, 9, filled=True, col=c) + else: + disp.rect(140, 2, 154, 8, filled=False, col=c) + if v > 3.5: + disp.rect(141, 3, 142 + int((v - 3.5) * 24), 8, filled=True, col=c) disp.rect(155, 4, 157, 7, filled=True, col=c)