Skip to content

Commit

Permalink
TimeLib defines DAYS_PER_WEEK as type time_t with a value of 7. TimeL…
Browse files Browse the repository at this point in the history
…ib's time_t is defined as unsigned long with a value of 7. This is compatable with NeoGPS declaration of DAYS_PER_WEEK with type uint8_t if cast to uint8_t. I modified the code to check if DAYS_PER_WEEK is defined and cast DAYS_PER_WEEK as uint8_t when used.

This is an alternate way to resolve the conflict between NeoGPS and TimeLib. User, tscofield, proposed a similar fix by renaming DAYS_PER_WEEK but I believe this may be a slightly better resolution to the issue.

See issues

- [https://github.com/SlashDevin/NeoGPS/pull/115](https://github.com/SlashDevin/NeoGPS/pull/115 "NeoGPS Issue 115")
- [https://github.com/PaulStoffregen/Time/issues/163](https://github.com/PaulStoffregen/Time/issues/163 "TimeLib Issue 163")

BTW: I looked into applying a similar fix to TimeLib but the issue only seemed to be resolved when applied to NeoGPS.
  • Loading branch information
richteel committed Sep 15, 2021
1 parent 1707c2c commit 9490bf3
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/NeoTime.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ const uint8_t MINUTES_PER_HOUR = 60;
const uint16_t SECONDS_PER_HOUR = (uint16_t) SECONDS_PER_MINUTE * MINUTES_PER_HOUR;
const uint8_t HOURS_PER_DAY = 24;
const uint32_t SECONDS_PER_DAY = (uint32_t) SECONDS_PER_HOUR * HOURS_PER_DAY;
const uint8_t DAYS_PER_WEEK = 7;
#ifndef DAYS_PER_WEEK
const uint8_t DAYS_PER_WEEK = 7;
#endif

/**
* Common date/time structure
Expand Down Expand Up @@ -192,7 +194,7 @@ struct time_t {
*/
static uint8_t weekday_for(uint16_t dayno)
{
return ((dayno+epoch_weekday()-1) % DAYS_PER_WEEK) + 1;
return ((dayno+epoch_weekday()-1) % (uint8_t)DAYS_PER_WEEK) + 1;
}

/**
Expand Down

0 comments on commit 9490bf3

Please sign in to comment.