Strona 1 z 1

Event Case + switch + standard state machine

: 20 mar 2009 11:57
autor: dnorus
Cześć,
mam problem - muszę zaprogramować działanie bramy: czyli jest otwarta wciskam guzik zamknij - zamyka się etc. oczywiście na wciśniecie guzika czekam za pomocą struktury event case;].
Mam dwa guziki - kilka kontrolek do nich - które odpowiadają za zamknij i otwórz bramę - wszystko działa ślicznie. Ah i wszystko odbywa się w standard state machine (duży while +shif register +odpowiedni case) to chyba najmniej ważne. No i teraz odpowiednio podczas działania danej akcji ustawiam wartość disabled na odpowiednie guziki (tak żeby podczas zamykania nie wcisnąć otwierania). Problem pojawił się gdy dodałem guzik stop!
Dodaje do case'a w SSM zakładke stop i w niej umieszczam event structure, który oczekuje na naciśnięcie guzików otwierania i zamykania. Dodaje eventa czekajacego na otwieranie - wszystko działa, dodaje eventa oczekującego na zamknięcie i już są problemy!.
Na starcie brama jest otwarta więc mogę wcisnąć tylko zamykanie - brama się zamyka i nie mogę nacisnąć ani jednego guzika. Obojętnie co jest w tym event structure - ważne że ma dwie zakładki i już nic nie działa, albo jedna zakładka z dwoma warunkami. Pytanie dlaczego:P?

Może jakoś się wykluczają... mógłbym nie używać event structure ale jak to.. program by ciągle działał pomimo tego że nic się w układzie nie dzieje (brama se stoi)...

Dzięki z góry:))

Event Case + switch + standard state machine

: 21 mar 2009 11:14
autor: sliski
Witam,

Umieszczenie "eventa" w srodku maszyny stanow nie jet dobrym pomyslem. Zrob oodzielna petle "while" z "event structure" do obslugi interfejsu i odzielna petle "while" z "case structure" do wykonywania konkretnej akcji. Informacje z pierwszej petli do drugiej mozesz przesylac np za pomoca "notifier".

Pozdrawiam
sliski