Funkcja "jeżeli"

andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Funkcja "jeżeli"

Post autor: andrzej-n »

Bardzo proszę o pomoc w zdefiniowaniu zdarzenia z funkcją "jeżeli"
mianowicie chodzi mi o coś takiego: jeżeli rozjazd "z1" jest ustawiony prosto to graj dźwięk x, a jeżeli nie to graj dźwięk y
Nie wiem w jaki sposób zdefiniować konkretny rozjazd

Będę bardzo wdzięczny za pomoc
AN
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

Spróbuj taki warunek:

this.Engine.Switches_FindByName("qq").Status_IsStraight()

Lub dla rozjazdu ustawione „w bok”:

!this.Engine.Switches_FindByName("qq").Status_IsStraight()

Gdzie "qq" jest nazwą rozjazdu, np.: "z1"


PS. W wersji 1.72.5885 można uzyć konstrukcji:

this.Engine.Switches_FindByName("qq").get_Status(0) == GbbEngine.Switch.Statuses.NotStraight
this.Engine.Switches_FindByName("qq").get_Status(0) == GbbEngine.Switch.Statuses.Straight
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Super. Bardzo dziękuję.
Miałbym jeszcze dwie prośby dot. warunków:
1. jak zapisać "jeżeli lokomotywa jedzie tyłem"
2. jeżeli lok wyjeżdża z góry lub z dołu bloku
Jaki język używany jest do zapisu funkcji?
AN
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

Język to jakieś połączenie C# z VB wymyślone przez MS.

ad1.
Cecha bloku: CurrentTrain_IsRunningForward
wartości: true - jedzie do przodu, false - do tyłu



ad2.
Cecha bloku: CurrentTrainRunningDirection_IsToRightTop
wartości: true - wyjeżdza w kierunku prawym/górnym bloku, false - lewym/dolnym
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Tworząc wiele funkcji "jeżeli" przyszło mi na myśl takie rozwiązanie. Otóż obecnie jest tak, że w danym zdarzeniu (przy wpisywaniu) widoczne są tylko te warunki, które zostały wcześniej wpisane do tego zdarzenia. Nie są natomiast widoczne warunki wpisane do innych zdarzeń. Byłoby znacznym usprawnieniem, gdyby w każdym zdarzeniu były widoczne wszystkie dotychczas wpisane warunki we wszystkich zdarzeniach lub by można było stworzyć coś w rodzaju bazy warunków, z której wybierany byłby odpowiedni warunek.
Czy takie rozwiązanie bedzie trudne do zrobienia? Jeśli tak, to nie ma co sobie zawracać głowy.
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

A po wejściu do edytora graficznego w lewym górnym rogu jest lista i tam nie widać wszystkich zdarzeń?
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Zdarzenia widać.
Ale mnie chodzi o warunki jakie wpisywane są do funkcji "jeżeli". Teraz jest tak, że ten sam warunek np "this.ActiveTrain.Name == "V 200" gdy chcę mieć w różnych zdarzeniach to muszę go wpisywać każdorazowo do każdego zdarzenia. A mnie chodzi o to, by raz wpisany do zdarzenia był widoczny we wszystkich innych zdarzeniach.
Andrzej
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Funkcja "jeżeli"

Post autor: gbbsoft »

Tego nie zmienię... To jest moduł Microsoftu, na który nie mam wpływu.
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Bardzo dziękuję za odpowiedź.
Andrzej
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Piotrze,
krótka prośba - jak w funkcji "jeżeli" spytać czy dana funkcja loka np F1 jest włączona.
Andrzej
ODPOWIEDZ