string do wyboru urzytkownika
string do wyboru urzytkownika
Witam. Myślałem, że wiem jak to zrobić, ale jak otworzyłem VI to zgłupiałem. W while loop (aż do potwierdzenia przez użytkownika) byłby control string - ale z kilkoma możliwymi wartościami słownymi. W zależności od wyboru program idzie do odpowiedniej części. Nie wiem jak ograniczyć control stringa do kilku zadanych wartości. Obchodząc problem mógłbym przypisać stringa do danego numeric control (i np ograniczyć go do 4) ale czy i jak zrobić to na string control?
Re: string do wyboru urzytkownika
Przypuszczam że chodzi o maszynę stanów - tak się nazywa struktura programu tego typu.progor pisze:Witam. Myślałem, że wiem jak to zrobić, ale jak otworzyłem VI to zgłupiałem. W while loop (aż do potwierdzenia przez użytkownika) byłby control string - ale z kilkoma możliwymi wartościami słownymi. W zależności od wyboru program idzie do odpowiedniej części. Nie wiem jak ograniczyć control stringa do kilku zadanych wartości. Obchodząc problem mógłbym przypisać stringa do danego numeric control (i np ograniczyć go do 4) ale czy i jak zrobić to na string control?
Element o którym wspominasz to nie tyle string co Enum.
Jak widać taka Maszyna opiera się o: - element enum z zapisanymi stanami, które przyjmować może aplikacja - jest on identyczny w każdym miejscu maszyny stanów (to kopia tego samego elementu) - pętle while i Shift Register, do którego podłaczony jest z zewnątrz pierwsza kopia elementu enum - strukturę Case, w której kolejnych ramkach zawarte są diagramy poszczególnych stanów np: Po inicjalizacji przedstawionej powyżej aplikacji, wchodzi ona jak widać do stanu Akcja 1
w wyniku pracy diagramu (np. tak jak tutaj może to być wynik logiczny TRUE/FALSE) aplikacja może przejśc do stanu Akcja 2:
lub do stanu STOP kończącego pracę aplikacji.
To oczywiście najbardziej skrótowa wersja opisu maszyny stanów. W razie dalszych pytań służę pomocą.
Ostatnio zmieniony 17 sie 2006 12:38 przez Mikrobi, łącznie zmieniany 1 raz.
Re: string do wyboru urzytkownika
o to właśnie mi chodziło. dzięki wielkie.
Re: string do wyboru urzytkownika
a jak ma wygląd maszyna stanów na "event structure"??
Dany case wykonuje mi się po wcisnięciu odpowiedniego przycisku odpowiadającemu temu cas-owi. Ale nie wiem jak ustawic koniec . Powiedzmy ze mam akcje, zapalam sobie 5 diod, ktore obrazują kroki. W jaki sposób przy uzyciu "event" zapalić pierwsza diodę która ma się zaświecic zaraz po uruchomieniu programu?? Podobnie sytualcja ma sie na koncu, daje wyjscie wyskakuje okno potwierdzenia mojej decyzji i jak dam NIE ma wskoczyc do kroku pierwszego?? Da sie to wykonac na samej ""strukturze event"???
Dany case wykonuje mi się po wcisnięciu odpowiedniego przycisku odpowiadającemu temu cas-owi. Ale nie wiem jak ustawic koniec . Powiedzmy ze mam akcje, zapalam sobie 5 diod, ktore obrazują kroki. W jaki sposób przy uzyciu "event" zapalić pierwsza diodę która ma się zaświecic zaraz po uruchomieniu programu?? Podobnie sytualcja ma sie na koncu, daje wyjscie wyskakuje okno potwierdzenia mojej decyzji i jak dam NIE ma wskoczyc do kroku pierwszego?? Da sie to wykonac na samej ""strukturze event"???
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: string do wyboru urzytkownika
Można by to było w jednej pętli jakoś wszystko pomieścić, ale ładniej byłoby wykorzystać architekturę producent-konsument przy czym konsumentem byłaby właśnie klasyczna maszyna stanów przełączająca się odpowiednio po "skonsumowaniu" danego eventu ;)a jak ma wygląd maszyna stanów na "event structure"??
Re: string do wyboru urzytkownika
Maszyna stanów oparta na samej strukturze event jest mało optymalnym rozwiązaniem. Event zasadniczo służy jako struktura reagująca na zdarzenia interfejsu/panelu. Na spotkaniu PLUG'a pokazywałem przykład takiej MS opartej na strukturze event i mechanizmie kolejek:
Jest to układ zawierający kilka trików: 1. enum - oczywiśćie element stworzony jako typedef 2. domyślna wartość enum: "event state" 3. funkcja Dequeue Element ma określone wejśćie timeout (na 80ms) czyli po 80 ms jeśli nic się nie dzieje zwraca domyślą wartość elementów w kolejce (patrz pkt.2) 4. Jest tylko jeden stan zawierający strukturę event (oczywiście!) a zawiera obsługę tylko naciśnięcia przycisku tak jak na przykład ten:
pozostałe stany wyglądają tak:
lub tak:
Taki układ aplikacji ma kilka wad, np brak oddzielenia wątku interfejsu od wątku wykonawczego aplikacji. Prawdopodobnie wrócę do tego tematu na najbliższym spotkaniu.
Jest to układ zawierający kilka trików: 1. enum - oczywiśćie element stworzony jako typedef 2. domyślna wartość enum: "event state" 3. funkcja Dequeue Element ma określone wejśćie timeout (na 80ms) czyli po 80 ms jeśli nic się nie dzieje zwraca domyślą wartość elementów w kolejce (patrz pkt.2) 4. Jest tylko jeden stan zawierający strukturę event (oczywiście!) a zawiera obsługę tylko naciśnięcia przycisku tak jak na przykład ten:
pozostałe stany wyglądają tak:
lub tak:
Taki układ aplikacji ma kilka wad, np brak oddzielenia wątku interfejsu od wątku wykonawczego aplikacji. Prawdopodobnie wrócę do tego tematu na najbliższym spotkaniu.