mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 11:10:29 +08:00
Revert PR #471 - add DST to sunrise/sunset
The DST code has not yet been fully tested, the upcoming movement refactor is upon us and it will integrate with the micro timezone library anyway. Revert it so that next can be merged into main. This reverts commit0cc28b9811
, reversing changes made to337864eb54
.
This commit is contained in:
parent
ea5efb4d82
commit
683032219e
|
@ -49,29 +49,20 @@ static void _sunrise_sunset_face_update(movement_settings_t *settings, sunrise_s
|
|||
double rise, set, minutes, seconds;
|
||||
bool show_next_match = false;
|
||||
movement_location_t movement_location;
|
||||
int16_t tz;
|
||||
watch_date_time date_time = watch_rtc_get_date_time(); // the current local date / time
|
||||
if (state->longLatToUse == 0 || _location_count <= 1) {
|
||||
tz = get_timezone_offset(settings->bit.time_zone, date_time);
|
||||
if (state->longLatToUse == 0 || _location_count <= 1)
|
||||
movement_location = (movement_location_t) watch_get_backup_data(1);
|
||||
}
|
||||
else{
|
||||
movement_location.bit.latitude = longLatPresets[state->longLatToUse].latitude;
|
||||
movement_location.bit.longitude = longLatPresets[state->longLatToUse].longitude;
|
||||
if (longLatPresets[state->longLatToUse].uses_dst && dst_occurring(date_time))
|
||||
tz = movement_timezone_dst_offsets[longLatPresets[state->longLatToUse].timezone];
|
||||
else
|
||||
tz = movement_timezone_offsets[longLatPresets[state->longLatToUse].timezone];
|
||||
}
|
||||
|
||||
if (movement_location.reg == 0) {
|
||||
watch_clear_all_indicators();
|
||||
watch_clear_colon();
|
||||
watch_display_string("RI no Loc", 0);
|
||||
return;
|
||||
}
|
||||
|
||||
watch_date_time utc_now = watch_utility_date_time_convert_zone(date_time, tz * 60, 0); // the current date / time in UTC
|
||||
watch_date_time date_time = watch_rtc_get_date_time(); // the current local date / time
|
||||
watch_date_time utc_now = watch_utility_date_time_convert_zone(date_time, state->tz * 60, 0); // the current date / time in UTC
|
||||
watch_date_time scratch_time; // scratchpad, contains different values at different times
|
||||
scratch_time.reg = utc_now.reg;
|
||||
|
||||
|
@ -86,7 +77,7 @@ static void _sunrise_sunset_face_update(movement_settings_t *settings, sunrise_s
|
|||
// sunriset returns the rise/set times as signed decimal hours in UTC.
|
||||
// this can mean hours below 0 or above 31, which won't fit into a watch_date_time struct.
|
||||
// to deal with this, we set aside the offset in hours, and add it back before converting it to a watch_date_time.
|
||||
double hours_from_utc = ((double)tz) / 60.0;
|
||||
double hours_from_utc = ((double)state->tz) / 60.0;
|
||||
|
||||
// we loop twice because if it's after sunset today, we need to recalculate to display values for tomorrow.
|
||||
for(int i = 0; i < 2; i++) {
|
||||
|
@ -343,6 +334,7 @@ void sunrise_sunset_face_activate(movement_settings_t *settings, void *context)
|
|||
movement_location_t movement_location = (movement_location_t) watch_get_backup_data(1);
|
||||
state->working_latitude = _sunrise_sunset_face_struct_from_latlon(movement_location.bit.latitude);
|
||||
state->working_longitude = _sunrise_sunset_face_struct_from_latlon(movement_location.bit.longitude);
|
||||
state->tz = get_timezone_offset(settings->bit.time_zone, watch_rtc_get_date_time());
|
||||
}
|
||||
|
||||
bool sunrise_sunset_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
||||
|
|
|
@ -52,14 +52,13 @@ typedef struct {
|
|||
uint8_t rise_index;
|
||||
uint8_t active_digit;
|
||||
bool location_changed;
|
||||
int16_t tz;
|
||||
watch_date_time rise_set_expires;
|
||||
sunrise_sunset_lat_lon_settings_t working_latitude;
|
||||
sunrise_sunset_lat_lon_settings_t working_longitude;
|
||||
uint8_t longLatToUse;
|
||||
} sunrise_sunset_state_t;
|
||||
|
||||
#define SUNRISE_USE_LOCAL_TZ 0xFF
|
||||
|
||||
void sunrise_sunset_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr);
|
||||
void sunrise_sunset_face_activate(movement_settings_t *settings, void *context);
|
||||
bool sunrise_sunset_face_loop(movement_event_t event, movement_settings_t *settings, void *context);
|
||||
|
@ -77,18 +76,14 @@ typedef struct {
|
|||
char name[2];
|
||||
int16_t latitude;
|
||||
int16_t longitude;
|
||||
uint8_t timezone; // References element in movement_timezone_offsets
|
||||
bool uses_dst;
|
||||
} long_lat_presets_t;
|
||||
|
||||
// Locations must either use the same timezone as local time, or not observe DST.
|
||||
static const long_lat_presets_t longLatPresets[] =
|
||||
{
|
||||
{ .name = " "}, // Default, the long, lat, and timezone get replaced by what's set in the watch
|
||||
// { .name = "Ny", .latitude = 4072, .longitude = -7401, .timezone = 33, .uses_dst = true }, // New York City, NY
|
||||
// { .name = "LA", .latitude = 3405, .longitude = -11824, .timezone = 30, .uses_dst = true }, // Los Angeles, CA
|
||||
// { .name = "dE", .latitude = 4221, .longitude = -8305, .timezone = 33, .uses_dst = true }, // Detroit, MI
|
||||
// { .name = "To", .latitude = 3567, .longitude = 13965, .timezone = 15, .uses_dst = false }, // Tokyo, JP
|
||||
{ .name = " "}, // Default, the long and lat get replaced by what's set in the watch
|
||||
// { .name = "Ny", .latitude = 4072, .longitude = -7401 }, // New York City, NY
|
||||
// { .name = "LA", .latitude = 3405, .longitude = -11824 }, // Los Angeles, CA
|
||||
// { .name = "dE", .latitude = 4221, .longitude = -8305 }, // Detroit, MI
|
||||
};
|
||||
|
||||
#endif // SUNRISE_SUNSET_FACE_H_
|
||||
|
|
Loading…
Reference in a new issue