Esempio n. 1
0
 def getProperties():
     return abstract.ResizableItem.getProperties() + [
         helper.TIProperty("placeCode", translate("LineItem", "Place code")),
         helper.TIProperty("trackCode", translate("LineItem", "Track code")),
         helper.TIProperty("realLength",
                           translate("LineItem", "Real length (m)"))
     ]
Esempio n. 2
0
 def getProperties():
     """
     :return: List of ptoperties
     :rtype: list
     """
     return abstract.TrackItem.getProperties() + [
         helper.TIProperty("commonEndTuple",
                           translate("PointsItem", "Common End"),
                           False,
                           "enum",
                           getEndNames(),
                           getEndValues()),
         helper.TIProperty("normalEndTuple",
                           translate("PointsItem", "Normal End"),
                           False,
                           "enum",
                           getEndNames(),
                           getEndValues()),
         helper.TIProperty("reverseEndTuple",
                           translate("PointsItem", "Reverse End"),
                           False,
                           "enum",
                           getEndNames(),
                           getEndValues())
     ]
Esempio n. 3
0
 def getProperties():
     return [
         helper.TIProperty("tiTypeStr", tr("Type"), True),
         helper.TIProperty("tiId", tr("id"), True),
         helper.TIProperty("text", tr("Text")),
         helper.TIProperty("originStr", tr("Point 1"))
     ]
Esempio n. 4
0
 def getProperties():
     signalTypeNames = sorted(list(signalLibrary.signalTypes.keys()))
     signalCustomProperties = list(signalLibrary.tiProperties.values())
     return abstract.TrackItem.getProperties() + [
         helper.TIProperty("reverse", translate("SignalItem", "Reverse")),
         helper.TIProperty("signalTypeStr",
                           translate("SignalItem", "Signal Type"), False,
                           "enum", signalTypeNames, signalTypeNames),
         helper.TIProperty("berthOriginStr",
                           translate("SignalItem", "Berth Origin"))
     ] + signalCustomProperties
Esempio n. 5
0
 def getProperties():
     # TODO: Remove builtin reference below to allow custom signal types
     signalTypeNames = [x["name"] for x in signaltype.builtin_signal_types]
     return abstract.TrackItem.getProperties() + [
         helper.TIProperty("reverse", translate("SignalItem", "Reverse")),
         helper.TIProperty("signalTypeStr",
                           translate("SignalItem", "Signal Type"), False,
                           "enum", signalTypeNames, signalTypeNames),
         helper.TIProperty("routesSetParamsStr",
                           translate("SignalItem", "Route set params")),
         helper.TIProperty("trainNotPresentParamsStr",
                           translate("SignalItem", "No train params")),
         helper.TIProperty("berthOriginStr",
                           translate("SignalItem", "Berth Origin"))
     ]
Esempio n. 6
0
class RouteSetCondition:
    code = "ROUTES_SET"
    tiProperty = helper.TIProperty("routesSetParams",
                                   translate("SignalItem", "Route set params"))

    @staticmethod
    def solver(signalItem, params=None):
        """This solver returns True if at least one of the routes given in the
        params list is active. These routes don't have to start at this signal.
        params must be a list of route numbers."""
        if params is None:
            params = []
        simulation = signalItem.simulation
        routes = [
            simulation.routes[routeNum] for routeNum in params
            if routeNum in simulation.routes
        ]
        return any([(r.getRouteState() != 0) for r in routes])

    @staticmethod
    def updater(signalItem, params):
        code = RouteSetCondition.code
        rs = signalItem.routesSetParams
        aspectNames = [
            st.aspect.name for st in signalItem.signalType.states
            if code in st.conditions.keys()
        ]
        params[code] = {
            aspectName: rs.get(aspectName, [])
            for aspectName in aspectNames
        }
        return params

    @staticmethod
    def trigger(signalItem):
        routeNums = []
        for rs in signalItem.routesSetParams.values():
            routeNums.extend(rs)
        for routeNum in routeNums:
            try:
                signalItem.simulation.routes[routeNum].routeSelected.connect(
                    signalItem.updateSignalState)
                signalItem.simulation.routes[routeNum].routeUnselected.connect(
                    signalItem.updateSignalState)
            except KeyError as err:
                raise utils.FormatException(
                    translate(
                        "RouteSetCondition",
                        "Error in simulation definition: SignalItem %s "
                        "references unknown route %s") %
                    (signalItem.tiId, str(err)))
Esempio n. 7
0
 def getProperties():
     return [
         helper.TIProperty("tiTypeStr", translate("LineItem", "Type"),
                           True),
         helper.TIProperty("tiId", translate("LineItem", "id"), True),
         helper.TIProperty("name", translate("LineItem", "Name")),
         helper.TIProperty("originStr", translate("LineItem", "Point 1")),
         helper.TIProperty("endStr", translate("LineItem", "Point 2")),
         helper.TIProperty("maxSpeed",
                           translate("LineItem", "Maximum speed (m/s)")),
         helper.TIProperty("conflictTiId",
                           translate("LineItem", "Conflict item ID"))
     ]
Esempio n. 8
0
 def getProperties():
     return [
         helper.TIProperty("tiTypeStr", translate("PlatformItem", "Type"),
                           True),
         helper.TIProperty("tiId", translate("PlatformItem", "id"), True),
         helper.TIProperty("name", translate("PlatformItem", "Name")),
         helper.TIProperty("originStr", translate("PlatformItem",
                                                  "Point 1")),
         helper.TIProperty("endStr", translate("PlatformItem", "Point 2")),
         helper.TIProperty("placeCode",
                           translate("PlatformItem", "Place code")),
         helper.TIProperty("trackCode",
                           translate("PlatformItem", "Track code"))
     ]
Esempio n. 9
0
class TrainNotPresentOnItems:
    code = "TRAIN_NOT_PRESENT_ON_ITEMS"
    tiProperty = helper.TIProperty("trainNotPresentParams",
                                   translate("SignalItem", "No train params"))

    @staticmethod
    def solver(signalItem, params=None):
        """This solver returns True if no train is found on any trackItems given
        in the params list. params must be a list of trackItem IDs."""
        if params is None:
            params = []
        simulation = signalItem.simulation
        trackItems = [simulation.trackItem(tiId) for tiId in params]
        return not any([ti.trainPresent() for ti in trackItems])

    @staticmethod
    def updater(signalItem, params):
        code = TrainNotPresentOnItems.code
        tnp = signalItem.trainNotPresentParams
        aspectNames = [
            st.aspect.name for st in signalItem.signalType.states
            if code in st.conditions.keys()
        ]
        params[code] = {
            aspectName: tnp.get(aspectName, [])
            for aspectName in aspectNames
        }
        return params

    @staticmethod
    def trigger(signalItem):
        tiIds = []
        for tnp in signalItem.trainNotPresentParams.values():
            tiIds.extend(tnp)
        for tiId in tiIds:
            try:
                signalItem.simulation.trackItems[tiId].trainEntersItem.connect(
                    signalItem.updateSignalState)
                signalItem.simulation.trackItems[tiId].trainLeavesItem.connect(
                    signalItem.updateSignalState)
            except KeyError as err:
                raise utils.FormatException(
                    translate(
                        "TrainNotPresentOnItems",
                        "Error in simulation definition: SignalItem %s "
                        "references unknown track item %s") %
                    (signalItem.tiId, str(err)))
Esempio n. 10
0
 def getProperties():
     return abstract.TrackItem.getProperties() + [
         helper.TIProperty("placeCode", translate("Place", "Place code"))
     ]
Esempio n. 11
0
 def getMultiProperties():
     return [
         helper.TIProperty("tiId", translate("TrackItem", "id"), True),
         helper.TIProperty("maxSpeed",
                           translate("TrackItem", "Maximum speed (m/s)"))
     ]