Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <utilities/sunTimes.h>
- void sunTimes::calcNewSunTimes() {
- if (!fileSys.config.gotGeoData) { return; }
- Serial.println("********************* *********************");
- int year = hsh_timeSystem.getYear(),
- month = hsh_timeSystem.getMonth(),
- day = hsh_timeSystem.getDayOfMonth();
- double lon = -fileSys.config.longitude,
- lat = fileSys.config.latitude;
- double daylen, civlen, nautlen, astrlen;
- double rise, set, civ_start, civ_end, naut_start, naut_end,
- astr_start, astr_end;
- int rs, civ, naut, astr;
- daylen = day_length(year, month, day, lon, lat);
- civlen = day_civil_twilight_length(year, month, day, lon, lat);
- nautlen = day_nautical_twilight_length(year, month, day, lon, lat);
- astrlen = day_astronomical_twilight_length(year, month, day,
- lon, lat);
- Serial.printf("Day length: %5.2f hours\n", daylen);
- Serial.printf("With civil twilight %5.2f hours\n", civlen);
- Serial.printf("With nautical twilight %5.2f hours\n", nautlen);
- Serial.printf("With astronomical twilight %5.2f hours\n", astrlen);
- Serial.printf("Length of twilight: civil %5.2f hours\n",
- (civlen - daylen) / 2.0);
- Serial.printf(" nautical %5.2f hours\n",
- (nautlen - daylen) / 2.0);
- Serial.printf(" astronomical %5.2f hours\n",
- (astrlen - daylen) / 2.0);
- rs = sun_rise_set(year, month, day, lon, lat,
- &rise, &set);
- civ = civil_twilight(year, month, day, lon, lat,
- &civ_start, &civ_end);
- naut = nautical_twilight(year, month, day, lon, lat,
- &naut_start, &naut_end);
- astr = astronomical_twilight(year, month, day, lon, lat,
- &astr_start, &astr_end);
- Serial.printf("Sun at south %5.2fh UT\n", (rise + set) / 2.0);
- switch (rs) {
- case 0:
- Serial.printf("Sun rises %5.2fh UT, sets %5.2fh UT\n",
- rise, set);
- break;
- case +1:
- Serial.printf("Sun above horizon\n");
- break;
- case -1:
- Serial.printf("Sun below horizon\n");
- break;
- }
- switch (civ) {
- case 0:
- Serial.printf(
- "Civil twilight starts %5.2fh, "
- "ends %5.2fh UT\n",
- civ_start, civ_end);
- break;
- case +1:
- Serial.printf("Never darker than civil twilight\n");
- break;
- case -1:
- Serial.printf("Never as bright as civil twilight\n");
- break;
- }
- switch (naut) {
- case 0:
- Serial.printf(
- "Nautical twilight starts %5.2fh, "
- "ends %5.2fh UT\n",
- naut_start, naut_end);
- break;
- case +1:
- Serial.printf("Never darker than nautical twilight\n");
- break;
- case -1:
- Serial.printf("Never as bright as nautical twilight\n");
- break;
- }
- switch (astr) {
- case 0:
- Serial.printf(
- "Astronomical twilight starts %5.2fh, "
- "ends %5.2fh UT\n",
- astr_start, astr_end);
- break;
- case +1:
- Serial.printf("Never darker than astronomical twilight\n");
- break;
- case -1:
- Serial.printf("Never as bright as astronomical twilight\n");
- break;
- }
- Serial.println("********************* *********************");
- }
Advertisement
Add Comment
Please, Sign In to add comment