]> git.earman.xyz Git - sensor-watch.git/commitdiff
add the ability to set location and birthdate in movement config
authormadhogs <madhogs@protonmail.com>
Mon, 18 Mar 2024 18:01:05 +0000 (18:01 +0000)
committermadhogs <madhogs@protonmail.com>
Sun, 31 Mar 2024 12:27:54 +0000 (13:27 +0100)
movement/movement.c
movement/movement.h
movement/movement_config.h

index 0b292a1538fee55de843861905459125439fef52..ec14838dc44b1a81cc1c499cb2f417d5b103acbd 100644 (file)
 #define MOVEMENT_DEFAULT_LED_DURATION 1
 #endif
 
+// Default to no set location latitude
+#ifndef MOVEMENT_DEFAULT_LATITUDE
+#define MOVEMENT_DEFAULT_LATITUDE 0
+#endif
+
+// Default to no set location longitude
+#ifndef MOVEMENT_DEFAULT_LONGITUDE
+#define MOVEMENT_DEFAULT_LONGITUDE 0
+#endif
+
+// Default to no set birthdate year
+#ifndef MOVEMENT_DEFAULT_BIRTHDATE_YEAR
+#define MOVEMENT_DEFAULT_BIRTHDATE_YEAR 0
+#endif
+
+// Default to no set birthdate month
+#ifndef MOVEMENT_DEFAULT_BIRTHDATE_MONTH
+#define MOVEMENT_DEFAULT_BIRTHDATE_MONTH 0
+#endif
+
+// Default to no set birthdate day
+#ifndef MOVEMENT_DEFAULT_BIRTHDATE_DAY
+#define MOVEMENT_DEFAULT_BIRTHDATE_DAY 0
+#endif
+
 #if __EMSCRIPTEN__
 #include <emscripten.h>
 #endif
@@ -384,6 +409,11 @@ void app_init(void) {
     movement_state.settings.bit.to_interval = MOVEMENT_DEFAULT_TIMEOUT_INTERVAL;
     movement_state.settings.bit.le_interval = MOVEMENT_DEFAULT_LOW_ENERGY_INTERVAL;
     movement_state.settings.bit.led_duration = MOVEMENT_DEFAULT_LED_DURATION;
+    movement_state.location.bit.latitude = MOVEMENT_DEFAULT_LATITUDE;
+    movement_state.location.bit.longitude = MOVEMENT_DEFAULT_LONGITUDE;
+    movement_state.birthdate.bit.year = MOVEMENT_DEFAULT_BIRTHDATE_YEAR;
+    movement_state.birthdate.bit.month = MOVEMENT_DEFAULT_BIRTHDATE_MONTH;
+    movement_state.birthdate.bit.day = MOVEMENT_DEFAULT_BIRTHDATE_DAY;
     movement_state.light_ticks = -1;
     movement_state.alarm_ticks = -1;
     movement_state.next_available_backup_register = 4;
@@ -406,10 +436,14 @@ void app_init(void) {
 
 void app_wake_from_backup(void) {
     movement_state.settings.reg = watch_get_backup_data(0);
+    movement_state.location.reg = watch_get_backup_data(1);
+    movement_state.birthdate.reg = watch_get_backup_data(2);
 }
 
 void app_setup(void) {
     watch_store_backup_data(movement_state.settings.reg, 0);
+    watch_store_backup_data(movement_state.location.reg, 1);
+    watch_store_backup_data(movement_state.birthdate.reg, 2);
 
     static bool is_first_launch = true;
 
index 1dabfbc5bbaac102456f98c78fbb437bbb47d6eb..35600091f02e18fd80fbba0a23af5b8ea316391f 100644 (file)
@@ -242,6 +242,8 @@ typedef struct {
 typedef struct {
     // properties stored in BACKUP register
     movement_settings_t settings;
+    movement_location_t location;
+    movement_birthdate_t birthdate;
 
     // transient properties
     int16_t current_face_idx;
index 10a30af77309f73dea3cd43ed8bc2870e2c0b583..abceacf1c07c3419dde2ae2863e71c6cdd9a4e5f 100644 (file)
@@ -76,15 +76,15 @@ const watch_face_t watch_faces[] = {
 /* Set the timeout before switching to low energy mode
  * Valid values are:
  * 0: Never
- * 1: 1 hour
- * 2: 2 hours
- * 3: 6 hours
- * 4: 12 hours
- * 5: 1 day
- * 6: 2 days
+ * 1: 10 mins
+ * 2: 1 hour
+ * 3: 2 hours
+ * 4: 6 hours
+ * 5: 12 hours
+ * 6: 1 day
  * 7: 7 days
  */
-#define MOVEMENT_DEFAULT_LOW_ENERGY_INTERVAL 1
+#define MOVEMENT_DEFAULT_LOW_ENERGY_INTERVAL 2
 
 /* Set the led duration
  * Valid values are:
@@ -95,4 +95,20 @@ const watch_face_t watch_faces[] = {
  */
 #define MOVEMENT_DEFAULT_LED_DURATION 1
 
+/* The latitude and longitude used for the wearers location
+ * Set signed values in 1/100ths of a degree
+ */
+#define MOVEMENT_DEFAULT_LATITUDE 0
+#define MOVEMENT_DEFAULT_LONGITUDE 0
+
+/* The wearers birthdate
+ * Valid values:
+ * Year: 1 - 4095
+ * Month: 1 - 12
+ * Day: 1 - 31
+ */
+#define MOVEMENT_DEFAULT_BIRTHDATE_YEAR 0
+#define MOVEMENT_DEFAULT_BIRTHDATE_MONTH 0
+#define MOVEMENT_DEFAULT_BIRTHDATE_DAY 0
+
 #endif // MOVEMENT_CONFIG_H_