Cześć,
chciałem użyć notyfikatora którym najpierw program nadrzędny wysyłał rozkaz (string) do innego programu, a potem użył tego samego notyfikatora do nasłuchiwania czy podprogram wykonał żądaną operację. Pytanie brzmi, czy takie rozwiązanie jest "bezpieczne"? Np. podprogram wykonał tak szybko swoją operację, że program główny nie zdążył uruchomić bloczka "wait for notification" i nie zdążył zauważyć że podprogram już skończył - czy takie działanie jest możliwe?
użycie jednego notyfikatora do dupleksowej komunikacji
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
użycie jednego notyfikatora do dupleksowej komunikacji
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: użycie jednego notyfikatora do dupleksowej komunikacji
Na początek przykład:
A jak już się naklikałem, to w bloczku Wait on Notification jest wejście ignore previous, którego działanie radzę sprawdzić w dokumentacji ;)
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
użycie jednego notyfikatora do dupleksowej komunikacji
Dzięki PiDi,
Trochę zmodyfikowałem twój VI, co by bardziej się zbliżyć do mojej sytuacji (dodałem bloczek wait for notification w pętli przycisku stop) i pokombinowałem z opóźnieniami. Wnioski są, ale nie wiem czy słuszne. Oto część z nich:
1. Program nadrzędny gdy zaczął czekać wcześniej niż podprogram wysłał, to odbiera swój ostatni notifikator i następnie leci dalej - to jest dla przypadku gdy "ignore previous" jest na false, natomiast dla ignore previous ustawiony na true - jest ok - poczeka i odbierze notyfikator z programu podrzędnego.
2. Ale, jeśli podprogram nada wcześniej niż program główny zacznie czekać to stracę ten notyfikator (przy ignore previous true) i program mi się zawiesi. Z kolei dla "ignore previous" ustawiony na false działa ok.
Więc nie będę kombinował i zrobię to na dwóch notyfikatorach, bo nie mogę pozwolić na żadne kompromisy. Dzięki za pomoc.
Pozdro!
Trochę zmodyfikowałem twój VI, co by bardziej się zbliżyć do mojej sytuacji (dodałem bloczek wait for notification w pętli przycisku stop) i pokombinowałem z opóźnieniami. Wnioski są, ale nie wiem czy słuszne. Oto część z nich:
1. Program nadrzędny gdy zaczął czekać wcześniej niż podprogram wysłał, to odbiera swój ostatni notifikator i następnie leci dalej - to jest dla przypadku gdy "ignore previous" jest na false, natomiast dla ignore previous ustawiony na true - jest ok - poczeka i odbierze notyfikator z programu podrzędnego.
2. Ale, jeśli podprogram nada wcześniej niż program główny zacznie czekać to stracę ten notyfikator (przy ignore previous true) i program mi się zawiesi. Z kolei dla "ignore previous" ustawiony na false działa ok.
Więc nie będę kombinował i zrobię to na dwóch notyfikatorach, bo nie mogę pozwolić na żadne kompromisy. Dzięki za pomoc.
Pozdro!
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo