import jmri import java # Each entry has 3 items: # The transit name. # The train info file name. # The delay at the end of the transit before starting the next one. class TransitChaining_VT209(jmri.jmrit.automat.AbstractAutomaton): def init(self_VT209): self_VT209.seq = 0 self_VT209.size = len(transitList_VT209) self_VT209.transit = None self_VT209.delay = 0 self_VT209.ISVT209 = sensors.provideSensor("IS_Start_VT209") def handle(self_VT209): if self_VT209.seq == 0: # Start the first transit self_VT209.startTrain() self_VT209.waitChange([self_VT209.transit]) if self_VT209.transit.getState() == 2: if (self_VT209.ISVT209.getState() == INACTIVE): return False self_VT209.waitMsec(self_VT209.delay * 1000) if (self_VT209.seq == self_VT209.size) or (self_VT209.ISVT209.getState() == INACTIVE): return False self_VT209.startTrain() return True def startTrain(self_VT209): transitName, fileName, self_VT209.delay = transitList_VT209[self_VT209.seq] self_VT209.transit = tm.getTransit(transitName) df.loadTrainFromTrainInfo(fileName) self_VT209.seq += 1 transitChaining_VT209 = TransitChaining_VT209() transitChaining_VT209.setName('VT209 NSP02') transitChaining_VT209.start()