jaka strukttura

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

jaka strukttura

Post autor: skalag »

Witam
Mam do zrobienia projekt ktory bedzie obslugiwal 2 rozne urzadzenia.
jedno to karta pomiarowa - 16 kanalkow wejsciowych i 4 wyjsciowe
drugie to power analyzer

Jaka bedzie najlepsza architektura do tego zadania?
Myslalem nad 3 rownoleglymi watkami ( 2 do obslugi urzadzen) a 3 do wizualizacji i zapisu dancyh.

Tylko nie wiem za bardzo jak te dane przekazywac w szybki i bezstratny sposob i co najwazniejsze jak te dane ze soba synchronizowac?
Co do synchronizacji to karta daje 1000 probek z 10k na kazdy kanal w systemie ciaglym
a power analyzer daje probki jak sie pojawia na wyjsciu.

Dodam jeszcze ze bedzie 4 watek do kontrolowania innego PC poprzez TCP/IP.


Jakies sugestie?

Jakby ktos mial jakis podobny przyklad to z checia polukam.

Projekt ma byc w LV8.0

Pzdr
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: jaka strukttura

Post autor: skalag »

Witam
Nikt nie ma koncepcji co do architektury??

Sprobowalem zrobic to na 3 watkach ale nie jestem pewnien co do synchronizacji kanalow.
Nie mialem do czynienia z synchronizacja urzadzen.
Moglby ktos luknac i powiedziec ktory sposob synchroinizacji jest lepszy ?


Pzdr
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: jaka strukttura

Post autor: skalag »

nikt chetny luknac i ocenic moje pliki?

pzdr
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: jaka strukttura

Post autor: jogurt_owocowy »

Możesz opisać dokładniej jak to ma działać?
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: jaka strukttura

Post autor: skalag »

jedna petla obsluguje zczytywanie danych z karty pomiarowej i jest to 16 kanalow po 1000 probek z fp ustalana na poczatku. typowo 10k.potem kazdy kanal jest usredniany tak wiec mam 1 probke na kanal co 0.1 s.
druga petla obsluguje zczytywanie danych z power analyzera i tam jest 15 kanalow ale zczytuje dane juz usrednione co czas usredniania.czas usredniania ustalam tez na poczatku.typowo 0.1 s.
Oba kanaly musza byc zsynchronizowane co do zczytywania dancyh, bez straty dancyh.
potem te dane musza byc przekazane do innej petli co obsluguje przetwarzanie danych( wyswietlanie , zapis do pliku itp).
te 2 pliki co zrobilem upload to sa z generatorami dancyh zamiast realnych urzadzen pomiarowych.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: jaka strukttura

Post autor: jogurt_owocowy »

Oba kanaly musza byc zsynchronizowane co do zczytywania dancyh, bez straty dancyh
Ok, ale nie ma żadnej wspólnej podstawy czasu dla tych dwóch urządzeń, więc co to znaczy, że mają być zsynchronizowane?
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: jaka strukttura

Post autor: skalag »

no musi byc wspolna podstawa czasu.
zaczynam przy inicjalizacji. jak ustawiam N i fs dla karty pomiarowej to te parametry ustalaja mi averaging time dla power analyzera.
np fp=10k , N=1000 - dla kazdego kanalu to samo to wtedy
averaging time = N/fp;

karta pomiarowa probkuje w sposob ciagly i pakuje dane do kolejnych buferow , wiec nie ma mozliwosci zarzymania petli co pobierania tych danych bo nastapi overbuffer error i koniec pobierania danych z tej karty.

Z kolei power analyzer pobiera ostatnia usredniona dana.
wiec nie zaleznie kiedy wysle zapytanie jakas wartosc przyjedzie.
moze sie tak stac ze wysle 2 zapytania i przyjdzie ta sama dana w przypadku kiedy nowa usredniona dana jest nie gotowa.

chcialbym zeby w chwili kiedy chytam dane z karty (powedzmy co 0.1 s)
rownoczesnie wziasc dane z power analyzera.

i potem w petli pobierania danych dane powinny byc czytanne z obu urzadzen i przekazywane dalej do obrobki.

mam nadzieje ze tym razem dobrze wytlumaczylem.

przyklad pierwszy dziala na notifier i ocurrance ale ja nie wiem czy to dobrze.
to moj pierwszy projekt z synchronizacja wiec nie mam wiedzy o tym.

Moze ktos ma jakies przyklady ktore mogl bym luknac.

pzdr
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: jaka strukttura

Post autor: jogurt_owocowy »

Jeśli driver pobierający dane z karty czeka na napełnienie się bufora i wówczas zwraca jego zawartość, to możesz zrobić odczyt danych z karty i analizatora w jednej pętli: najpierw odczytanie danych z karty, następnie odpytanie analizatora. Teraz obydwa te wyniki stanowiące (jak sądzę) logiczną całość weź w klaster i wspólnie wyślij za pośrednictwem kolejki do wątku wizualizacji/zapisu danych.

Pozdrawiam
ODPOWIEDZ