gbbsoft
Admin
Posty: 2179 Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco
Post
autor: gbbsoft » 20 kwie 2017, 20:55
Kod: Zaznacz cały
this.ActiveTrain.get_FunctionStatus(1) == True
Witek M.
Posty: 3 Rejestracja: 12 lut 2016, 08:14
Post
autor: Witek M. » 12 lip 2017, 23:02
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
Post
autor: andrzej-n » 13 lip 2017, 12:52
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
Post
autor: MarcinM » 12 lut 2019, 22:33
Czy istnieje coś takiego jak warunek OR "lub" ?
gbbsoft
Admin
Posty: 2179 Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco
Post
autor: gbbsoft » 12 lut 2019, 22:45
Tak, jest "or" oraz "and".
A w zapisie innym: "||" oraz "&&"
MarcinM
Posty: 33 Rejestracja: 16 sty 2018, 16:53
System DCC: Digikeijs DR5000
Post
autor: MarcinM » 13 lut 2019, 08:49
Dzięki.
reticulan
Posty: 237 Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764
Post
autor: reticulan » 01 lip 2020, 20:26
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.
gbbsoft
Admin
Posty: 2179 Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco
Post
autor: gbbsoft » 01 lip 2020, 21:36
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
Post
autor: reticulan » 01 lip 2020, 22:07
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
gbbsoft
Admin
Posty: 2179 Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco
Post
autor: gbbsoft » 02 lip 2020, 08:26
A spróbuj zamiast "!=" użyć "<>"
PS. Widać ActiveTrain nie został ustawiony.