astro-timer
Opis
Bloczek astro-timer służy do określania, czy aktualny moment mieści się w przedziale wyznaczonym przez dwa zdarzenia astronomiczne. Bloczek nie wymaga żadnych wejść i działa na podstawie lokalizacji oraz czasu urządzenia.
Do wyliczania zdarzeń astronomicznych bloczek wykorzystuje lokalizację i strefę czasową ustawioną w kalendarzu systemowym. Jeśli te dane są niepoprawne, godziny wschodu, zachodu, świtu i zmierzchu również będą wyliczane niepoprawnie.
Początek i koniec aktywnego przedziału są definiowane niezależnie. Dla obu punktów można wybrać jedno z czterech zdarzeń astronomicznych:
sunrise- wschód słońcasunset- zachód słońcadaylight- świt cywilnytwilight- zmierzch cywilny
Dla każdego z tych zdarzeń można dodatkowo ustawić przesunięcie w minutach. Wartość dodatnia przesuwa moment później, a wartość ujemna wcześniej.
Bloczek sam wyznacza, czy aktywny okres przypada w obrębie jednej doby, czy przechodzi przez północ. Jeśli po zastosowaniu przesunięć czas rozpoczęcia wypada później niż czas zakończenia, aktywność obejmuje wieczór, noc i kończy się następnego dnia.
Moment rozpoczęcia jest wliczany do okresu aktywnego, a moment zakończenia już nie. W praktyce zmiana stanu następuje kilka sekund po obliczonym czasie zdarzenia astronomicznego.
Opis widoczny pod bloczkiem pokazuje bieżący stan i lokalny czas następnej zmiany, na przykład active until 06:12:05 albo inactive until 19:48:05.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
Zdarzenie rozpoczęcia (startEvent) |
Wartość obowiązkowa. Określa zdarzenie rozpoczynające aktywny okres. Dozwolone wartości to sunrise, sunset, daylight i twilight. |
Przesunięcie zdarzenia rozpoczęcia (startEventOffset) |
Wartość obowiązkowa. Liczba całkowita minut z zakresu od -720 do 720. Wartość ujemna oznacza czas wcześniejszy od wybranego zdarzenia, a dodatnia późniejszy. |
Zdarzenie zakończenia (endEvent) |
Wartość obowiązkowa. Określa zdarzenie kończące aktywny okres. Dozwolone wartości to sunrise, sunset, daylight i twilight. |
Przesunięcie zdarzenia zakończenia (endEventOffset) |
Wartość obowiązkowa. Liczba całkowita minut z zakresu od -720 do 720. Wartość ujemna oznacza czas wcześniejszy od wybranego zdarzenia, a dodatnia późniejszy. |
Zdarzenie rozpoczęcia i zakończenia nie mogą wskazywać dokładnie tego samego momentu. Błąd wystąpi wtedy, gdy wybrane zostanie to samo zdarzenie astronomiczne i takie samo przesunięcie dla obu parametrów.
Obsługa wejścia
Bloczek astro-timer nie posiada wejść i nie reaguje na sygnały z innych bloczków.
Wyjścia bloczka
| Numer i nazwa wyjścia | Opis wyjścia |
|---|---|
| 1. Wyjście aktywności. | Zwraca wartość true, gdy aktualny czas mieści się w skonfigurowanym okresie aktywnym. Poza tym okresem zwraca false. |
| 2. Wyjście nieaktywności. | Zwraca wartość przeciwną do wyjścia nr 1, czyli true, gdy bloczek jest poza okresem aktywnym, oraz false, gdy bloczek jest aktywny. |
Oba wyjścia są typu logicznego i zmieniają się równocześnie przy zmianie stanu bloczka. Jeśli bloczek nie może wyznaczyć poprawnego stanu pracy, oba wyjścia przechodzą na wartość null.
Błędy widoczne dla użytkownika
Bloczek może pokazywać następujące komunikaty błędów:
| Kod błędu | Opis błędu |
|---|---|
Invalid start event configuration. |
Parametr startEvent ma niepoprawną wartość. Należy wybrać jedno z obsługiwanych zdarzeń: sunrise, sunset, daylight albo twilight. |
Invalid start event offset configuration. |
Parametr startEventOffset ma niepoprawną wartość. Należy podać liczbę całkowitą minut z zakresu od -720 do 720. |
Invalid end event configuration. |
Parametr endEvent ma niepoprawną wartość. Należy wybrać jedno z obsługiwanych zdarzeń: sunrise, sunset, daylight albo twilight. |
Invalid end event offset configuration. |
Parametr endEventOffset ma niepoprawną wartość. Należy podać liczbę całkowitą minut z zakresu od -720 do 720. |
Start time equals end time. |
Czas rozpoczęcia i czas zakończenia wskazują dokładnie ten sam moment. Aby bloczek działał poprawnie, należy zmienić zdarzenie albo przesunięcie jednego z tych parametrów. |
Astro timer error. |
Bloczek nie może wyznaczyć poprawnych czasów zdarzeń astronomicznych albo następnej zmiany stanu. Taka sytuacja może wystąpić na przykład przy problemie z czasem lub lokalizacją urządzenia albo w okresach dnia lub nocy polarnej. |
Przykłady działania
- Dla
startEvent = daylight,startEventOffset = 0,endEvent = twilightiendEventOffset = 0wyjście nr 1 jest aktywne od świtu cywilnego do zmierzchu cywilnego. - Dla
startEvent = sunset,startEventOffset = -30,endEvent = sunriseiendEventOffset = 15wyjście nr 1 jest aktywne od 30 minut przed zachodem słońca do 15 minut po wschodzie słońca następnego dnia. - Dla
startEvent = sunrise,startEventOffset = 0,endEvent = sunriseiendEventOffset = 0bloczek zgłosi błądStart time equals end time..