Pytanie o czas w LabView

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.

Pytanie o czas w LabView

Postprzez 51vY » 06 lut 2017 10:50

Witam, mam nietypowy problem.
Problem nr.1:
Tworzę aplikację w LabView która odczytuje dane z bazy SQL (dane wraz z czasem UTC).
Aplikacja musi być uniwersalna, co oznacza, że musi zawierać wybór strefy czasowej oraz wybór czasu letni/zimowy.
Np. dane zapisane w UTC (synchronizowanego z GPS) wyświetlane muszą być zgodnie z wybraną strefą czasową oraz uwzględniać powinny zmianę czasu lub jej brak (w zależności od wyboru).
Ma ktoś jakiś pomysł jak to zrobić?
Problem nr.2
Jak już uda mi się uporać z problemem nr.1 pozostaje pytanie.
Jak wyświetlić dane (analogowe pomiary oraz dane binarne) w osi czasu w przypadku zmiany godziny "w tył"?
Proszę o jakiekolwiek pomysły.
51vY
 
Posty: 2
Dołączył(a): 05 lip 2007 23:00

Pytanie o czas w LabView

Postprzez aaddaas » 06 lut 2017 11:19

Odnośnie pierwszego pytania, to polecam https://forums.ni.com/t5/LabVIEW/Get-ti ... -p/3097051

ad 2. O jaką oś czasu Ci chodzi? Nie do końca to rozumiem....
Obrazek
Avatar użytkownika
aaddaas
 
Posty: 175
Dołączył(a): 26 cze 2013 19:42
Pochwały: 32
Wersja środowiska: LabVIEW 2014

Pytanie o czas w LabView

Postprzez Pitol » 06 lut 2017 14:03

Twoje drugie pytanie nie ma trywialnego rozwiązania.
W momencie gdy cofamy czas to mamy tak naprawdę dwie godziny w jednej.
Np. dane od 0:00 do 1:00, następnie cofamy czas z 1:00 na 0:00 i znowu kolejna godzina danych z "takim samym" czasem.
Jak to wyświetlić?

Jednym z rozwiązań jest zawsze wyświetlać dane względem czasu np. UTC. Ale sam napisałeś, że muszą być w lokalnym czasie, więc rozwiązanie odpada.
Można by jednak spróbować następującego rozwiązania:
Swój lokalny czas prezentować w formie "UTC + x (local_time)". W momencie zmiany czasu po prostu na osi będzie czas "UTC + x - 1 (local_time)".

Jeśli to rozwiązanie Cie nie satysfakcjonuje to jest jeszcze jedno, ale mniej przyjemne.
Przyjmijmy te same godziny co wyżej, czyli zmiana czasu następuje z 1:00 na 0:00.

W takim przypadku należy "pierwszą" godzinę (0:00 - 1:00) przeskalować na pół godziny.
Czyli zbieramy godzinę danych i skalujemy wszystko tak, żeby to udawało 30 min.
Następnie dane zebrane po cofnięciu czasu przeskalować też na pół godziny.

Otrzymujemy:
0:00 - 0:30 -> dane sprzed zmiany czasu (0:00 - 1:00)
0:30 - 1:00 -> dane po zmianie czasu (0:00 - 1:00)

Na wykresie nie będzie problemu, tylko trzeba będzie pamiętać jak interpretować dane w okolicy zmiany czasu.
Pozdrawiam
Pitol

Certified LabVIEW Developer, Certified TestStand Developer
Avatar użytkownika
Pitol
Moderator
 
Posty: 878
Dołączył(a): 18 lip 2007 23:00
Lokalizacja: Kraków
Pochwały: 138
Wersja środowiska: LabVIEW 2013

Pytanie o czas w LabView

Postprzez micard » 06 lut 2017 14:23

Najlepszym rozwiązaniem jet wyświetlanie czasu UTC; niestety użytkownicy często na nie narzekają.
Tak jak piszesz - problem stanowi tak na prawdę tylko sytuacja przesunięcia czasu "w tył" - i wielkosć problemu zależy od zakresu, który chcesz pokazać na osi czasu.
W moim ostatnim projekcie, w którym ten problem wystąpił, wykrywałem sytuację kiedy zmiana "w tył" mógłby się znaleźć na wykresie i zamieniałem na ten czas wyświetlanie czasu pomiaru, na ujemny czas "jak dawno pomiar był wykonany". wszystkie wartości były ujemne - więc użytkownik miał małe szanse się pomylić.
Avatar użytkownika
micard
 
Posty: 88
Dołączył(a): 30 wrz 2011 10:28
Pochwały: 12
Wersja środowiska: LabVIEW 2016

Pytanie o czas w LabView

Postprzez 51vY » 08 lut 2017 11:41

Tak jak piszecie, sprawa niestety nie jest trywialna.
Co do problemu nr.1 - dzięki za linka, tu wszystko jest już jasne,
Co do problemu nr.2 - na ten moment pomysł jest taki:
- na osi czasu wyświetlam czas zgodny z czasem lokalnym + daylight savings
- w momencie, gdy następuje zmiana czasu (o ile jest wybrana) kreślę linię przerywaną z taką informację
- w przypadku gdy czas "skacze do przodu" na osi nie ma pustej godziny, ale linia informuje nas o zmianie
- w przypadku gdy czas "skacze do tyłu" na osi mamy podwojony czas, ale również widzimy od razu moment zmiany
Na ten moment dzięki za pomoc.
51vY
 
Posty: 2
Dołączył(a): 05 lip 2007 23:00


Powrót do Tematy ogólne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Hener, Yahoo [Bot] i 3 gości