]> git.earman.xyz Git - sensor-watch.git/commitdiff
temperature logger: skip if no temperature sensor is available
authorJoey Castillo <joeycastillo@utexas.edu>
Wed, 21 May 2025 05:15:03 +0000 (01:15 -0400)
committerJoey Castillo <joeycastillo@utexas.edu>
Wed, 21 May 2025 05:15:03 +0000 (01:15 -0400)
watch-faces/sensor/temperature_logging_face.c

index 2016d94afb0c6bc792a5f996e26f23a0126011ba..a68238fa66d88e7024def949e055602bdde73de4 100644 (file)
@@ -27,6 +27,8 @@
 #include "temperature_logging_face.h"
 #include "watch.h"
 
+static bool skip = false;
+
 static void _temperature_logging_face_log_data(temperature_logging_state_t *logger_state) {
     watch_date_time_t date_time = watch_rtc_get_date_time();
     size_t pos = logger_state->data_points % TEMPERATURE_LOGGING_NUM_DATA_POINTS;
@@ -81,6 +83,10 @@ static void _temperature_logging_face_update_display(temperature_logging_state_t
 
 void temperature_logging_face_setup(uint8_t watch_face_index, void ** context_ptr) {
     (void) watch_face_index;
+
+    // if temperature is invalid, we don't have a temperature sensor which means we shouldn't be here.
+    if (movement_get_temperature() == 0xFFFFFFFF) skip = true;
+
     if (*context_ptr == NULL) {
         *context_ptr = malloc(sizeof(temperature_logging_state_t));
         memset(*context_ptr, 0, sizeof(temperature_logging_state_t));
@@ -112,6 +118,10 @@ bool temperature_logging_face_loop(movement_event_t event, void *context) {
             logger_state->ts_ticks = 0;
             // fall through
         case EVENT_ACTIVATE:
+            if (skip) {
+                movement_move_to_next_face();
+                return false;
+            }
             _temperature_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
             break;
         case EVENT_TICK: