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 | |
| 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
| -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);  | 
