Button -> zapis do pliku

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Mirasoul
Posty: 5
Rejestracja: 06 sie 2013 10:52
Wersja środowiska: LabVIEW 2012

Button -> zapis do pliku

Post autor: Mirasoul »

Witam, mam nastepujacy problem:
chcialbym, za kazdym kliknieciem przycisku tworzyc nowy plik, jezeli kliknalem przycisk zapisujemy dane do stworzonego pliku az do "odklikniecia" przycisku.
Moj problem polega na tym, ze do pliku dana jest zapisywana tylko jeden raz.
Tzn zamiast zapisywac %d\n1%d\n1%d\n1%d\n1%d\n1%d\n1%d\n1%d\n1%d\n1%d\n1
plik ma postac %d\n1. Jest to prosty przyklad, ale strasznie mi przeszkadza w tworzeniu dalszej czesci bardziej rozbudowanego projektu, ma ktos pomysl?
Załączniki
Untitled 4.vi
(10.15 KiB) Pobrany 468 razy
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: Button -> zapis do pliku

Post autor: TMa »

Proponuje użyć Event structure z przyciskiem przełączonym na tryb Switch when pressed. Wtedy będzie miał możliwość reakcji na oba zbocza. Zbocze na wciśnięcie false -> true to rozpoczęcie zapisywania (jeden click), zbocze na wyciśnięcie to true -> false (drugi click).
to prosty przyklad, ale strasznie mi przeszkadza w tworzeniu dalszej czesci bardziej rozbudowanego projektu
Z zasady - sposób zapisu danych nie powinien determinować dalszą rozbudowę projektu. Z tego wzgl. zazwyczaj umieszcza się go w osobnym wątku (tutaj pętli while) i poprzez wybrany sposób synchronizacji (tutaj kolejkę) przesyła do niego dane.
Mirasoul
Posty: 5
Rejestracja: 06 sie 2013 10:52
Wersja środowiska: LabVIEW 2012

Re: Button -> zapis do pliku

Post autor: Mirasoul »

Mala poprawka, dane sa spisywane poprawnie, zostal mi jeden problemik. Czemu po wcisnieciu przycisku moge go uzyc tylko raz, potem sie blokuje i nie mam mozliwosci zmiany jego stanu? Jestem swiezy w programowaniu jezykiem graficznym, mam doswiadczenie z jezykow strukturalnych, stad moje problemy. Musze cos odczytac/zresetowac jakas flage?
Mirasoul pisze:Z zasady - sposób zapisu danych nie powinien determinować dalszą rozbudowę projektu. Z tego wzgl. zazwyczaj umieszcza się go w osobnym wątku (tutaj pętli while) i poprzez wybrany sposób synchronizacji (tutaj kolejkę) przesyła do niego dane.
Zgadzam sie. Ze wzgledow praktycznych(podejrzewam, ze niewiele osob ma u siebie PCANDongle), stworzylem na szybko ten maly programik aby pokazac problem, bez uzycia CAN`a, stad jego "prostacki" uklad :p
Załączniki
Untitled 4.vi
(10.78 KiB) Pobrany 462 razy
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: Button -> zapis do pliku

Post autor: TMa »

Mirasoul pisze: Czemu po wcisnieciu przycisku moge go uzyc tylko raz, potem sie blokuje i nie mam mozliwosci zmiany jego stanu?
Ponieważ domyślnie każdy przycisk ma ustawiony tryb Latch when pressed. Ponownie polecam poprzednio zamieszczony link. Podpowiem, że najczęściej terminal na Block Diagramie umieszcza się wewnątrz struktury Event w odpowiadającym przypadku. Wtedy mamy pewność, że po zdarzeniu nastąpi odświeżenie kontrolki.
Mirasoul
Posty: 5
Rejestracja: 06 sie 2013 10:52
Wersja środowiska: LabVIEW 2012

Re: Button -> zapis do pliku

Post autor: Mirasoul »

TMa pisze:
Mirasoul pisze: Czemu po wcisnieciu przycisku moge go uzyc tylko raz, potem sie blokuje i nie mam mozliwosci zmiany jego stanu?
Ponieważ domyślnie każdy przycisk ma ustawiony tryb Latch when pressed. Ponownie polecam poprzednio zamieszczony link. Podpowiem, że najczęściej terminal na Block Diagramie umieszcza się wewnątrz struktury Event w odpowiadającym przypadku. Wtedy mamy pewność, że po zdarzeniu nastąpi odświeżenie kontrolki.
Już w powyżej zamienionym przypadku przycisk miał zmieniony tryb na switch(wczoraj doczytałem w help`ach), gdy z kolei umieszczam open/replace/save w zdarzeniu znajdującym się w pętli w celu odświeżania przycisku nic nie zapisuje sie do pliku, jest po prostu pusty.

AKTUALIZACJA:
Problem rozwiazany. Miales racje z tym terminalem. Dzieki wielkie.
ODPOWIEDZ