Funkcja "jeżeli"

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 »

Kod: Zaznacz cały

this.ActiveTrain.get_FunctionStatus(1) == True
Witek M.
Posty: 3
Rejestracja: 12 lut 2016, 08:14

Re: Funkcja "jeżeli"

Post autor: Witek M. »

Było o rozjazdach:
gbbsoft pisze: 07 lut 2016, 15:59 [...]
this.Engine.Switches_FindByName("qq").get_Status(0) == GbbEngine.Switch.Statuses.NotStraight
this.Engine.Switches_FindByName("qq").get_Status(0) == GbbEngine.Switch.Statuses.Straight
a da się zdefiniować uzależnienie od stanu urządzenia?
andrzej-n
Posty: 209
Rejestracja: 24 lis 2015, 20:48

Re: Funkcja "jeżeli"

Post autor: andrzej-n »

Jeśli urządzenie "p1" jest włączone:

this.Engine.Devices_FindByName("p1").Status == 1

Jeśli urządzenie "p1" jest wyłączone:

this.Engine.Devices_FindByName("p1").Status == 0
Andrzej
MarcinM
Posty: 33
Rejestracja: 16 sty 2018, 16:53
System DCC: Digikeijs DR5000

Re: Funkcja "jeżeli"

Post autor: MarcinM »

Czy istnieje coś takiego jak warunek OR "lub" ?
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 »

Tak, jest "or" oraz "and".
A w zapisie innym: "||" oraz "&&"
MarcinM
Posty: 33
Rejestracja: 16 sty 2018, 16:53
System DCC: Digikeijs DR5000

Re: Funkcja "jeżeli"

Post autor: MarcinM »

Dzięki.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

Witam, chciałem zapytać jakiej funkcji użyć o (ile takowa istnieje) żeby sprawdzić czy dana lokomotywa stoi w miejscu.

Dokładnie chodzi mi o to żeby zbudować funkcję "jeżeli lok o adresie np 3 ma prędkość zero" to wykonaj cośtam....

coś w rodzaju:

this.ActiveTrain.get_speed(0) == True lub this.ActiveTrain.get_speed(0) != True

tylko żeby zamiast ActiveTrain był adres loka.

Chciałem tę funkcję przypisać do przycisku urządzenia. Ale to chyba akurat nie ma znaczenia do czego użyje funkcji.
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 tak:

- po nazwie:
this.Engine.TrainByName("nazwa loka").Speed == 0

- albo po numerze lokomotywy na liście lokomotyw.
this.Engine.Trains.get_Item(1).Speed==0

PS. ActiveTrain to aktualna lokomotywa w tych zdarzeniach, w których to się da określić (np: dla bloku lub dla lokomotywy).
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Funkcja "jeżeli"

Post autor: reticulan »

this.Engine.TrainByName("nazwa loka").Speed == 0 oraz this.Engine.TrainByName("nazwa loka").Speed != 0

działa

this.Engine.Trains.get_Item(1).Speed==0 działa

ale o dziwo

this.Engine.Trains.get_Item(1).Speed!=0 nie działa

PS. Nie działa mi funkcja this.ActiveTrain.get_FunctionStatus(1) == True, nie działa mi na sucho bez lokomotyw (bez połączenia z DCC) bo wyskakuje komunikat "nie można wywołać metody get_Function ponieważ jej obiekt docelowy jest zerowy"

Podejrzewam że błąd jest spowodowany po prostu brakiem połączenia z lokomotywą i nie może przez to wykryć funkcji
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 spróbuj zamiast "!=" użyć "<>"

PS. Widać ActiveTrain nie został ustawiony.
ODPOWIEDZ