Mamy program w LabVIEW (jakiś MainVI), który wywołuje podprogram (SubVI); mają one działać współbieżnie, przekazując między sobą dane (np. przez Queue, Notifier-a, czy Event), i te dane mają jakiś typ/strukturę, której używa się przy tworzeniu obiektu do przesyłania danych.
No i mam wrażenie, że z tego robi się problem jajka i kury (nie mogło być jajka, dopóki kura go nie zniosła, nie mogło być kury, jeśli się nie wylęgła z jajka).
Jeśli typ danych nie zostanie określony w SubVI, to na etapie tworzenia SubVI nie jest on dostępny - więc nie ma jak go użyć. Ale jeśli jest określony w SubVI, to MainVI dostanie go dopiero wtedy, gdy SubVI zakończy działanie - więc nie użyje go współbieżnie z SubVI.
Podwójne definiowanie typu to więcej roboty, i przede wszystkim możliwość zrobienia dodatkowych błędów. Chyba jakiś typedefVI - wadą jest i to, że VI-e zaczynają się mnożyć jak króliki w Australii, i że często nie tylko typ trzeba przekazywać, ale np. i kanał przesyłowy.
Jakie rozwiązania tego problemu są stosowane, jakie które rozwiązanie ma wady i zalety?
No i mam wrażenie, że z tego robi się problem jajka i kury (nie mogło być jajka, dopóki kura go nie zniosła, nie mogło być kury, jeśli się nie wylęgła z jajka).
Jeśli typ danych nie zostanie określony w SubVI, to na etapie tworzenia SubVI nie jest on dostępny - więc nie ma jak go użyć. Ale jeśli jest określony w SubVI, to MainVI dostanie go dopiero wtedy, gdy SubVI zakończy działanie - więc nie użyje go współbieżnie z SubVI.
Podwójne definiowanie typu to więcej roboty, i przede wszystkim możliwość zrobienia dodatkowych błędów. Chyba jakiś typedefVI - wadą jest i to, że VI-e zaczynają się mnożyć jak króliki w Australii, i że często nie tylko typ trzeba przekazywać, ale np. i kanał przesyłowy.
Jakie rozwiązania tego problemu są stosowane, jakie które rozwiązanie ma wady i zalety?