--- Es ist soweit, SunCalc V02 ist verfügbar ---
--- Version 2.3: Sommerzeit-BUG gefixt ---
Hallo Forum,
inspiriert durch die ganzen Scripts zur automatischen Tag/Nacht-Umschaltung oder Abdunklung des Displays habe ich ein kleines Tool programmiert, welches vielleicht für den einen oder anderen ganz hilfreich sein kann.
Das Tool heißt SunCalc und berechnet anhand der aktuellen Position und der aktuellen Uhrzeit ob es Tag ist (also nach Sonnenaufgang und vor Sonnenuntergang) oder Nacht (also nach Sonnenuntergang und vor Sonnenaufgang). Das Ergebnis wird in Form einer txt-Datei gesichert. Diese kann dann z.B. mit MortScript ausgewertet werden.
Das Tool liest aus der Datei GPSTMCInfo.txt die aktuelle Position und berechnet für diese den Zeitpunkt des Sonnenaufganges und Sonnenunterganges anhand relativ einfachen Formeln (will sagen, dass die ermitteleten Zeiten evtl. nicht auf die Minute genau stimmen). Die Ergebnis-Datei lautet DayOrNight.txt. Zusätzlich wird noch eine SunCalc.ini Datei benötigt. Diese Ini muss zwingend in dem Verzeichnis liegen, in dem auch SunCalc liegt. Innerhalb der Ini können folgende Optionen eingestellt werden:
1. Pfad zu dem Verzeichnis in dem die GPSTMCInfo.txt liegt
2. Pfad zu dem Verzeichnis in dem die DayOrNight.txt geschrieben werden soll
3. Horizonzhöhe der Sonne, für die der Auf- und Untergang berechnet werden soll.
4. Einfache oder erweiterte Ausgabe
Im Dateianhang ist neben der SunCalc.exe auch eine SunCalc.ini zu finden, so wie sie bei mir funktioniert. Diese soll gleichzeitig als Vorlage dienen, da die SunCalc.ini nicht sehr fehlertolerant ist (wäre mir zu viel Programmierarbeit gewesen :gap). Also es werden exakt vier Zeilen in exakt der Reihenfolge erwartet wie vorgegeben. SunCalc liest die benötigten Informationen ab einer bestimmten Position in der Zeile, also bitte auch nicht die Leerzeichen entfernen oder irgendwelche Einrückungen vornehmen!!!
Die ersten zwei Parameter sind m.E. selbsterklärend, der dritte Parameter ist auf -0.833333 Grad voreingestellt. Hierdurch wird die Refraktion innerhalb der Atmosphäre berücksichtigt. Wer mag kann hier gerne ein wenig experimentieren.
Der vierte Parameter beeinflusst die DayOrNight.txt. Steht ExtendedOutput auf 0 so ist die Ausgabe ein "Einzeiler". Folgender Inhalt ist möglich:
ERROR - SunCalc.ini not found
ERROR - SunCalc.ini not correct / complete
ERROR - GPSTMCInfo.txt not found
NOSIG -> Es liegt zur Zeit kein auswertbares GPS-Signal vor
DAY -> Es ist Tag
NIGHT -> Es ist Nacht
Steht ExtendedOutput auf 1 so werden neben der ersten Zeile im Falle einer erfolgreichen Berechnung zusätzlich folgende Ausgaben erzeugt:
Sonnenaufgang in UTC
Sonnenuntergang in UTC
Sonnenaufgang in lokaler Zeit
Sonnenuntergang in lokaler Zeit
Verwendete Horizonthöhe
Verwendete Breite
Verwendete Länge
Die Ausgaben werden ohne erklärenden Text erzeugt, da dieser dann auch nicht wieder bei der Auswertung "rausgeschnippelt" werden muss.
Das Tool ist bewusst einfach gehalten, es gibt keine Eingabemöglichkeiten über die SunCalc.ini hinaus, eine Bildschirmausgabe wird nicht erzeugt, so dass es während der laufenden Navigation scriptgesteuert gestartet werden kann (z.B. über Mortscript). Nach dem Start des Tools wird das Ergebnis wie beschrieben erzeugt, danach beendet sich das Tool selber, für eine erneute Berechnung ist also ein erneuter Start des Tools nötig.
Wer Interesse hat, kann SunCalc ja einfach mal ausprobieren, einfach die exe und die ini gemeinsam in ein beliebiges Verzeichnis kopieren, die SunCalc.ini den eigenen Bedürfnissen anpassen, fettich.
Das Tool ist in C programmiert und läuft auf meinem PDA problemlos. Ich konnte es bis jetzt noch nicht bis ins letzte Detail testen, ebenfalls kann ich nicht garantieren, dass es auf anderen PDAs läuft.....also am besten Testen und bescheid geben.
Die erste Version steht an dieser Stelle nicht mehr zum Download bereit, da die Berechnung bugbehaftet war. Für korrekte Ergebnisse bitte nur noch die Version 2 benutzen.
ACHTUNG Version 2.1 ist verfügbar. In dieser Version ist der Bug, den zappa gefunden hat (hoffentlich) gefixt (falsche Berechnung der lokalen Sonnenauf- und Sonnenuntergangszeiten zwischen 0 und 1 Uhr morgens). Ansonsten gibt es keine Änderungen. User, die die lokalen Zeiten nicht auswerten, benötigen die neue Version nicht.
---------ACHTUNG-----VERSION 2.2-------ACHTUNG-----------
Unser Forum-Mitglied zappa hat eine weiteren Bug in SunClac entdeckt. Bei einer rechnerisch ermittelten Sonnenauf- oder -untergangszeit, die kurz vor einer vollen Stunde liegt (also z.B. 16:59:37) sollte eigentlich auf die volle Stunde aufgrundet werden (also 17:00). Dies hat leider nicht funktioniert, stattdessen wurde die vorherige volle Stunde ausgegeben (also 16:00). Dieser BUG ist in der Version 2.2 behoben.
Ansonsten bleibt alles unverändert. Da dieser Bug sowohl die lokalen, als auch die UTC-Zeiten, als auch die textuelle Ausgabe betrifft, stehen die Versionen 2.0 und 2.1 ab sofort nicht mehr zum Download bereit.
Vielen Dank für Euer Verständnis
---------ACHTUNG-----VERSION 2.3-------ACHTUNG-----------
SunCalc ist so konzipiert, dass die Umstellung von Winter- auf Sommerzeit und umgekehrt automatisch bei der Ermittlung der lokalen Sonnenauf- und -untergangszeiten mit berücksichtigt wird. Diese Funktionalität war fehlerhaft und hat trotz der jüngsten Umstellung auf Sommerzeit "unbeirrt" Winterzeit ausgegeben (wie pingo bemerkt hat). Mir der Version 2.3 ist dieser Bug behoben. Die lokale Zeit wird korrekt ausgegeben. Ansonsten keine Änderungen zu der Vorversion. User, die die lokalen Zeiten nicht auswerten benötigen Version 2.3 nicht zwingend.
Pettersson