Ejemplo n.º 1
0
 def setInitialDelay(self):
     """Sets up the initial delay variable."""
     if self._initialDelayProba.isNull():
         self._initialDelay = utils.DurationProba(
                         self.simulation.option("defaultDelayAtEntry"))\
                         .yieldValue()
     else:
         self._initialDelay = self._initialDelayProba.yieldValue()
Ejemplo n.º 2
0
 def __init__(self, simulation, parameters):
     """Constructor for the Train class"""
     super().__init__()
     self.simulation = simulation
     self._serviceCode = parameters["servicecode"]
     self._trainType = self.simulation.trainTypes[parameters["traintype"]]
     self._speed = 0
     self._initialSpeed = float(parameters["speed"])
     self._accel = 0
     tiId = parameters["tiid"]
     previousTiId = parameters["previoustiid"]
     posOnTI = parameters["posonti"]
     self._trainHead = routing.Position(
         self.simulation.trackItem(tiId),
         self.simulation.trackItem(previousTiId), posOnTI)
     self._status = TrainStatus.INACTIVE
     self._lastSignal = None
     self._signalActions = [(0, 999)]
     self._applicableActionIndex = 0
     self._stoppedTime = 0
     if "stoppedtime" in parameters:
         self._stoppedTime = parameters["stoppedtime"]
     self.updateMinimumStopTime()
     self._initialDelayProba = utils.DurationProba(
         parameters["initialdelay"])
     self.setInitialDelay()
     if self.currentService is not None:
         self._nextPlaceIndex = 0
         if "nextplaceindex" in parameters:
             self._nextPlaceIndex = parameters["nextplaceindex"]
     else:
         self._nextPlaceIndex = None
     self._appearTime = QtCore.QTime.fromString(parameters["appeartime"])
     self.simulation.timeElapsed.connect(self.advance)
     self.simulation.timeChanged.connect(self.activate)
     # FIXME Throw back all these actions to MainWindow
     self.assignAction = QtGui.QAction(self.tr("Reassign service..."), self)
     self.assignAction.triggered.connect(self.reassignService)
     self.resetServiceAction = QtGui.QAction(self.tr("Reset service"), self)
     self.resetServiceAction.triggered.connect(self.resetService)
     self.reverseAction = QtGui.QAction(self.tr("Reverse"), self)
     self.reverseAction.triggered.connect(self.reverse)
Ejemplo n.º 3
0
 def __init__(self, parameters):
     """
     :param dict paramaters:
     """
     super().__init__()
     self._parameters = parameters
     self.simulation = None
     self._serviceCode = parameters["serviceCode"]
     self._trainType = None
     self._speed = parameters.get('speed')
     self._initialSpeed = parameters.get("initialSpeed", 0.0)
     self._accel = 0
     self._trainHead = parameters["trainHead"]
     self._status = parameters.get("status", TrainStatus.INACTIVE)
     self._lastSignal = None
     self._signalActions = [(0, 999)]
     self._applicableActionIndex = 0
     self._actionTime = 0
     self._nextPlaceIndex = None
     self._stoppedTime = 0
     if "stoppedTime" in parameters:
         self._stoppedTime = parameters["stoppedTime"]
     self._minimumStopTime = 0
     self._initialDelayProba = \
         utils.DurationProba(parameters["initialDelay"])
     self._initialDelay = 0
     self._appearTime = QtCore.QTime.fromString(parameters["appearTime"])
     self._shunting = False
     # FIXME Throw back all these actions to MainWindow
     self.assignAction = QtWidgets.QAction(self.tr("Reassign service..."),
                                           self)
     self.assignAction.triggered.connect(self.reassignService)
     self.resetServiceAction = QtWidgets.QAction(self.tr("Reset service"),
                                                 self)
     self.resetServiceAction.triggered.connect(self.resetService)
     self.reverseAction = QtWidgets.QAction(self.tr("Reverse"), self)
     self.reverseAction.triggered.connect(self.reverse)
     self.splitAction = QtWidgets.QAction(self.tr("Split train"), self)
     self.splitAction.triggered.connect(self.splitTrainPopUp)
     self.proceedAction = QtWidgets.QAction(self.tr("Proceed with caution"),
                                            self)
     self.proceedAction.triggered.connect(self.proceedWithCaution)
Ejemplo n.º 4
0
 def updateMinimumStopTime(self):
     """Updates the minimum stopping time for next station."""
     self._minimumStopTime = utils.DurationProba(
                         self.simulation.option("defaultMinimumStopTime"))\
                         .yieldValue()
Ejemplo n.º 5
0
 def initialDelayStr(self, value):
     """Setter function for the initialDelayStr property."""
     if self.simulation.context == utils.Context.EDITOR_TRAINS:
         self._initialDelayProba = utils.DurationProba(value)