Przechowywanie danych między różnymi vi'jami
: 12 gru 2011 09:36
Aktualnie tworzę taki programik który uruchamia po kolei różne vi'je (coś a'la Test Stand). Te vi'je generują różne dane. Dane te mają być widoczne we wszystkich uruchamianych vi'jach. W związku z tym zastanawiam się nad sposobem przekazywania danych między tymi vi'jami. Miałbym do tego dodatkowo tablicę zawierającą nazwy zmiennych i ich typy. Mam 3 kandydatów:
1. CVT (Current Value Table) - jest taka biblioteka, którą można sobie ściągnąć. Opis znajduje się na stronie: http://zone.ni.com/devzone/cda/epd/p/id/5326
Tak ogólnie i w skrócie, polega to na przechowywaniu danych w tablicy (jedna dla każdego rodzaju, przechowywana jako Functional Variable) i dostęp do danych odbywa się poprzez podanie "adresu" do komórki w tablicy.
2. Functional Global Variable, ale używane w trybie reentrant - musiałbym przechowywać referencję do każdej zmiennej i stworzyć jakieś api do w miarę komfortowego używania.
3. (mój faworyt) Przechowywanie danych w kolejkach. Każdy typ danej by miał swój rodzaj kolejki, a nazwa zmiennej określałaby nazwę kolejki.
Pytanie jednak najważniejsze: która z metod jest najwydajniejsza? Albo pytania alternatywne: czy metoda 3 jest w miarę wydajna? jakie ma wady?
Dodatkowym problemem może być to że co jakiś czas chciałbym dodawać nowe rodzaje zmiennych (w miarę jak będę dodawał nowe uruchamiane vi'je)
1. CVT (Current Value Table) - jest taka biblioteka, którą można sobie ściągnąć. Opis znajduje się na stronie: http://zone.ni.com/devzone/cda/epd/p/id/5326
Tak ogólnie i w skrócie, polega to na przechowywaniu danych w tablicy (jedna dla każdego rodzaju, przechowywana jako Functional Variable) i dostęp do danych odbywa się poprzez podanie "adresu" do komórki w tablicy.
2. Functional Global Variable, ale używane w trybie reentrant - musiałbym przechowywać referencję do każdej zmiennej i stworzyć jakieś api do w miarę komfortowego używania.
3. (mój faworyt) Przechowywanie danych w kolejkach. Każdy typ danej by miał swój rodzaj kolejki, a nazwa zmiennej określałaby nazwę kolejki.
Pytanie jednak najważniejsze: która z metod jest najwydajniejsza? Albo pytania alternatywne: czy metoda 3 jest w miarę wydajna? jakie ma wady?
Dodatkowym problemem może być to że co jakiś czas chciałbym dodawać nowe rodzaje zmiennych (w miarę jak będę dodawał nowe uruchamiane vi'je)