44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
# Sample script showing how to move a train used in operations
|
|
# The train to be moved is identified by a memory
|
|
#
|
|
# Part of the JMRI distribution
|
|
#
|
|
# Author: Daniel Boudreau copyright 2010, 2024
|
|
#
|
|
|
|
import jmri
|
|
|
|
class moveTrain(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):
|
|
# define which memory the train id is located in
|
|
memSysName = "12" # Memory system name IM12
|
|
# get the memory
|
|
memTrainId = memories.provideMemory(memSysName)
|
|
if (memTrainId.getValue() == None):
|
|
print ('No train id in memory {}'.format(memSysName))
|
|
return False # all done, don't repeat again
|
|
else:
|
|
print ('get train by id: {}'.format(memTrainId.getValue()))
|
|
|
|
# get train by id
|
|
train = self.tm.getTrainById(memTrainId.getValue())
|
|
if (train != None):
|
|
if (train.isBuilt() == True):
|
|
print ('Move train {}, {}'.format(train.getName(), train.getDescription()))
|
|
train.move()
|
|
print ('Status: {}'.format(train.getStatus()))
|
|
print ('Current location: {}'.format(train.getCurrentLocationName()))
|
|
else:
|
|
print ('Train {}, {}, is not built'.format(train.getName(), train.getDescription()))
|
|
else :
|
|
print ('Train id {} does not exist'.format(memTrainId.getValue()))
|
|
|
|
return False # all done, don't repeat again
|
|
|
|
moveTrain().start() # create one of these, and start it running
|