37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
# Sample script showing how to build and terminate a train. Used in operations
|
|
#
|
|
# Author: Daniel Boudreau, copyright 2010, 2024
|
|
# Part of the JMRI distribution
|
|
|
|
import jmri
|
|
|
|
class buildAndTerminate(jmri.jmrit.automat.AbstractAutomaton) :
|
|
def init(self):
|
|
# get the train manager
|
|
self.tm = jmri.InstanceManager.getDefault(jmri.jmrit.operations.trains.TrainManager)
|
|
return
|
|
|
|
def handle(self):
|
|
|
|
# Build and terminate train
|
|
trainName = "BL"
|
|
train = self.tm.getTrainByName(trainName)
|
|
print ('Build and terminate train {}'.format(trainName))
|
|
|
|
# Build train
|
|
if (train != None):
|
|
train.build()
|
|
built = train.isBuilt()
|
|
train.setBuildEnabled(False) # deselect build option (Checkbox in Trains window)
|
|
if (built == True):
|
|
print ('Train {} has been built'.format(trainName))
|
|
train.terminate() # now terminate the train
|
|
print ('Train {} has been terminated'.format(trainName))
|
|
else:
|
|
print ('Train {} build failed'.format(trainName))
|
|
else:
|
|
print ('Train {} does not exist'.format(trainName))
|
|
return False # all done, don't repeat again
|
|
|
|
buildAndTerminate().start() # create one of these, and start it running
|