Strona 1 z 1

Pytanie o czas w LabView

: 06 lut 2017 10:50
autor: 51vY
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.

Pytanie o czas w LabView

: 06 lut 2017 11:19
autor: aaddaas
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....

Pytanie o czas w LabView

: 06 lut 2017 14:03
autor: Pitol
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.

Pytanie o czas w LabView

: 06 lut 2017 14:23
autor: micard
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ć.

Pytanie o czas w LabView

: 08 lut 2017 11:41
autor: 51vY
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.