DrRandom

sunTimes_New.cpp

Aug 23rd, 2022
804
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.67 KB | Source Code | 0 0
  1. #include <utilities/sunTimes.h>
  2.  
  3.  
  4. void sunTimes::calcNewSunTimes() {
  5.     if (!fileSys.config.gotGeoData) { return; }
  6.  
  7.     Serial.println("*********************      *********************");
  8.  
  9.     int year = hsh_timeSystem.getYear(),
  10.         month = hsh_timeSystem.getMonth(),
  11.         day = hsh_timeSystem.getDayOfMonth();
  12.  
  13.     double lon = -fileSys.config.longitude,
  14.            lat = fileSys.config.latitude;
  15.  
  16.     double daylen, civlen, nautlen, astrlen;
  17.     double rise, set, civ_start, civ_end, naut_start, naut_end,
  18.         astr_start, astr_end;
  19.     int rs, civ, naut, astr;
  20.  
  21.     daylen = day_length(year, month, day, lon, lat);
  22.     civlen = day_civil_twilight_length(year, month, day, lon, lat);
  23.     nautlen = day_nautical_twilight_length(year, month, day, lon, lat);
  24.     astrlen = day_astronomical_twilight_length(year, month, day,
  25.                                                lon, lat);
  26.  
  27.     Serial.printf("Day length:                 %5.2f hours\n", daylen);
  28.     Serial.printf("With civil twilight         %5.2f hours\n", civlen);
  29.     Serial.printf("With nautical twilight      %5.2f hours\n", nautlen);
  30.     Serial.printf("With astronomical twilight  %5.2f hours\n", astrlen);
  31.     Serial.printf("Length of twilight: civil   %5.2f hours\n",
  32.            (civlen - daylen) / 2.0);
  33.     Serial.printf("                  nautical  %5.2f hours\n",
  34.            (nautlen - daylen) / 2.0);
  35.     Serial.printf("              astronomical  %5.2f hours\n",
  36.            (astrlen - daylen) / 2.0);
  37.  
  38.     rs = sun_rise_set(year, month, day, lon, lat,
  39.                       &rise, &set);
  40.     civ = civil_twilight(year, month, day, lon, lat,
  41.                          &civ_start, &civ_end);
  42.     naut = nautical_twilight(year, month, day, lon, lat,
  43.                              &naut_start, &naut_end);
  44.     astr = astronomical_twilight(year, month, day, lon, lat,
  45.                                  &astr_start, &astr_end);
  46.  
  47.     Serial.printf("Sun at south %5.2fh UT\n", (rise + set) / 2.0);
  48.  
  49.     switch (rs) {
  50.         case 0:
  51.             Serial.printf("Sun rises %5.2fh UT, sets %5.2fh UT\n",
  52.                    rise, set);
  53.             break;
  54.         case +1:
  55.             Serial.printf("Sun above horizon\n");
  56.             break;
  57.         case -1:
  58.             Serial.printf("Sun below horizon\n");
  59.             break;
  60.     }
  61.  
  62.     switch (civ) {
  63.         case 0:
  64.             Serial.printf(
  65.                 "Civil twilight starts %5.2fh, "
  66.                 "ends %5.2fh UT\n",
  67.                 civ_start, civ_end);
  68.             break;
  69.         case +1:
  70.             Serial.printf("Never darker than civil twilight\n");
  71.             break;
  72.         case -1:
  73.             Serial.printf("Never as bright as civil twilight\n");
  74.             break;
  75.     }
  76.  
  77.     switch (naut) {
  78.         case 0:
  79.             Serial.printf(
  80.                 "Nautical twilight starts %5.2fh, "
  81.                 "ends %5.2fh UT\n",
  82.                 naut_start, naut_end);
  83.             break;
  84.         case +1:
  85.             Serial.printf("Never darker than nautical twilight\n");
  86.             break;
  87.         case -1:
  88.             Serial.printf("Never as bright as nautical twilight\n");
  89.             break;
  90.     }
  91.  
  92.     switch (astr) {
  93.         case 0:
  94.             Serial.printf(
  95.                 "Astronomical twilight starts %5.2fh, "
  96.                 "ends %5.2fh UT\n",
  97.                 astr_start, astr_end);
  98.             break;
  99.         case +1:
  100.             Serial.printf("Never darker than astronomical twilight\n");
  101.             break;
  102.         case -1:
  103.             Serial.printf("Never as bright as astronomical twilight\n");
  104.             break;
  105.     }
  106.     Serial.println("*********************      *********************");
  107. }
Advertisement
Add Comment
Please, Sign In to add comment