37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
# Sample script to set all turnouts in Unknown state to Closed
|
|
#
|
|
# After this script is turn, there should be no Turnouts in the
|
|
# UNKNOWN state; any that were at the start should have been set to CLOSED.
|
|
#
|
|
# By skipping over Turnouts that have already been set, this minimizes
|
|
# the chance of disturbing e.g. Turnouts driving signals that have already been set
|
|
# by signal logic.
|
|
#
|
|
# Part of the JMRI distribution
|
|
|
|
# This script kicks off an independent series of actions that will take some time to
|
|
# complete once the script itself completes. If you are running this script as a
|
|
# startup action, you might need to include a pause startup action before you run any
|
|
# additional scripts later.
|
|
|
|
import jmri
|
|
|
|
class SetUnknownTurnoutsClosed(jmri.jmrit.automat.AbstractAutomaton) :
|
|
# handle() is called just once when it returns false.
|
|
def handle(self):
|
|
toCnt = 0
|
|
chgCnt = 0
|
|
# loop thru all defined turnouts
|
|
print "Starting to set turnouts in UNKNOWN state to CLOSED"
|
|
for to in turnouts.getNamedBeanSet():
|
|
toCnt += 1
|
|
cs = to.getState()
|
|
if (cs == UNKNOWN) :
|
|
chgCnt += 1
|
|
to.setState(CLOSED)
|
|
self.waitMsec(100) # pause for 1/10 second between commands
|
|
print str(toCnt) + " turnouts checked, " + str(chgCnt) + " found in UNKNOWN state and changed to CLOSED"
|
|
return False
|
|
|
|
SetUnknownTurnoutsClosed().start()
|