diff options
author | Joey Castillo <joeycastillo@utexas.edu> | 2022-02-05 17:42:43 -0500 |
---|---|---|
committer | Joey Castillo <joeycastillo@utexas.edu> | 2022-02-05 17:42:43 -0500 |
commit | 18302bf9c46093c90e6bfea499360e342c996151 (patch) | |
tree | a669ea0621ad3a6f1d5382e85fd6fbe928218d4b /movement/watch_faces | |
parent | df0c2bfd80e5d0da61b43cdcb79443d797179820 (diff) | |
download | Sensor-Watch-18302bf9c46093c90e6bfea499360e342c996151.tar.gz Sensor-Watch-18302bf9c46093c90e6bfea499360e342c996151.tar.bz2 Sensor-Watch-18302bf9c46093c90e6bfea499360e342c996151.zip |
movement: add low battery warning to simple clock
Diffstat (limited to 'movement/watch_faces')
-rw-r--r-- | movement/watch_faces/clock/simple_clock_face.c | 14 | ||||
-rw-r--r-- | movement/watch_faces/clock/simple_clock_face.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/movement/watch_faces/clock/simple_clock_face.c b/movement/watch_faces/clock/simple_clock_face.c index 60a7a4db..ac9e2a1f 100644 --- a/movement/watch_faces/clock/simple_clock_face.c +++ b/movement/watch_faces/clock/simple_clock_face.c @@ -68,6 +68,20 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting previous_date_time = state->previous_date_time; state->previous_date_time = date_time.reg; + // check the battery voltage once a day... + if (date_time.unit.day != state->last_battery_check) { + state->last_battery_check = date_time.unit.day; + watch_enable_adc(); + uint16_t voltage = watch_get_vcc_voltage(); + watch_disable_adc(); + // 2.2 volts will happen when the battery has maybe 5-10% remaining? + // we can refine this later. + state->battery_low = (voltage < 2200); + } + + // ...and set the LAP indicator if low. + if (state->battery_low) watch_set_indicator(WATCH_INDICATOR_LAP); + if (date_time.reg >> 6 == previous_date_time >> 6 && event.event_type != EVENT_LOW_ENERGY_UPDATE) { // everything before seconds is the same, don't waste cycles setting those segments. pos = 8; diff --git a/movement/watch_faces/clock/simple_clock_face.h b/movement/watch_faces/clock/simple_clock_face.h index 6e8665bf..aa625700 100644 --- a/movement/watch_faces/clock/simple_clock_face.h +++ b/movement/watch_faces/clock/simple_clock_face.h @@ -29,8 +29,10 @@ typedef struct { uint32_t previous_date_time; + uint8_t last_battery_check; uint8_t watch_face_index; bool signal_enabled; + bool battery_low; } simple_clock_state_t; void simple_clock_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr); |