summaryrefslogtreecommitdiffstats
path: root/movement/watch_faces/demos/lis2dh_logging_face.h
diff options
context:
space:
mode:
authorJoey Castillo <joeycastillo@utexas.edu>2021-12-01 14:57:06 -0500
committerJoey Castillo <joeycastillo@utexas.edu>2021-12-01 14:57:06 -0500
commit0679d84c037f5a9c0c4abb056599f806a59aae3b (patch)
treeeb4aa79abf4b7734cf71b5929b3cfac4eb3420bd /movement/watch_faces/demos/lis2dh_logging_face.h
parent2504a922a369c8487b18b9d5f09aad9e9743e8b9 (diff)
downloadSensor-Watch-0679d84c037f5a9c0c4abb056599f806a59aae3b.tar.gz
Sensor-Watch-0679d84c037f5a9c0c4abb056599f806a59aae3b.tar.bz2
Sensor-Watch-0679d84c037f5a9c0c4abb056599f806a59aae3b.zip
movement: add experimental accelerometer data logging face
Diffstat (limited to 'movement/watch_faces/demos/lis2dh_logging_face.h')
-rw-r--r--movement/watch_faces/demos/lis2dh_logging_face.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/movement/watch_faces/demos/lis2dh_logging_face.h b/movement/watch_faces/demos/lis2dh_logging_face.h
new file mode 100644
index 00000000..d8ab0e24
--- /dev/null
+++ b/movement/watch_faces/demos/lis2dh_logging_face.h
@@ -0,0 +1,37 @@
+#ifndef LIS2DH_LOGGING_FACE_H_
+#define LIS2DH_LOGGING_FACE_H_
+
+#include "movement.h"
+#include "watch.h"
+
+#define LIS2DH_LOGGING_NUM_DATA_POINTS (24)
+
+typedef struct {
+ watch_date_time timestamp;
+ uint32_t interrupts;
+} lis2dh_logger_data_point_t;
+
+typedef struct {
+ uint8_t display_index; // the index we are displaying on screen
+ uint8_t log_ticks; // when the user taps the ALARM button, we enter log mode
+ int32_t data_points; // the absolute number of data points logged
+ uint8_t interrupts[3]; // the number of interrupts we have logged in each of the last 3 minutes
+ uint32_t interrupts_this_hour; // the number of interrupts we have logged in the last hour
+ lis2dh_logger_data_point_t data[LIS2DH_LOGGING_NUM_DATA_POINTS];
+} lis2dh_logger_state_t;
+
+void lis2dh_logging_face_setup(movement_settings_t *settings, void ** context_ptr);
+void lis2dh_logging_face_activate(movement_settings_t *settings, void *context);
+bool lis2dh_logging_face_loop(movement_event_t event, movement_settings_t *settings, void *context);
+void lis2dh_logging_face_resign(movement_settings_t *settings, void *context);
+bool lis2dh_logging_face_wants_background_task(movement_settings_t *settings, void *context);
+
+static const watch_face_t lis2dh_logging_face = {
+ lis2dh_logging_face_setup,
+ lis2dh_logging_face_activate,
+ lis2dh_logging_face_loop,
+ lis2dh_logging_face_resign,
+ lis2dh_logging_face_wants_background_task
+};
+
+#endif // LIS2DH_LOGGING_FACE_H_