from pyfis.splitflap_display import SplitFlapDisplay, TextField, CustomMapField, MirrorField from pyfis.utils import vias_from_csv, map_from_csv CHEETAH_HOST = "http://192.168.2.129" DBI_HOST = "trains.xatlabs.com" STATION_CODE = "MH" STATION_NAME = "München Hbf" ARRIVAL_STATIONS = ["München Hbf", "München Hauptbahnhof"] PLATFORM = "0" PLATFORMS_INCLUDE = None PLATFORMS_EXCLUDE = ["1", "2"] DEFAULT_OPERATOR = "DB" ARRIVAL_HOUR_FORMAT = "Ankunft {}" ARRIVAL_MIN_FORMAT = "{:02d}" DEPARTURE_HOUR_FORMAT = "Abfahrt {}" DEPARTURE_MIN_FORMAT = "{:02d}" PLATFORM_CHANGE_FORMAT = "heute aus Gleis {}" OUT_OF_ORDER_TEXT = "Anzeiger außer Betrieb" NO_TRAINS_TEXT = "" CANCELLED_TEXT = "Bitte Ansage beachten" DELAY_FORMAT = "Etwa {} Min. später" DELAY_ABOVE_FORMAT = "Über {} Min. später" SMALL_DELAY_TEXT = "" UNSPECIFIC_DELAY_TEXT = "Über 60 Min. später" DO_NOT_BOARD_TEXT = "Nicht einsteigen" NO_STOP_EVERYWHERE_TEXT = "Hält nicht überall" BUS_REPLACEMENT_TEXT = "Bitte Ansage beachten" MAP_HOUR = map_from_csv("Stunden.csv") MAP_MINUTE = map_from_csv("Minuten.csv") MAP_ALNUM = map_from_csv("Zielmodul (alphanumerisch).csv") MAP_INFO_1 = map_from_csv("Hinweis 1.csv") MAP_INFO_2 = map_from_csv("Hinweis 2.csv") VIA_1 = vias_from_csv("Via 1.csv") MAP_VIA_1 = map_from_csv("Via 1.csv") VIA_1[127] = {'text': "", 'stations': []} MAP_VIA_1[127] = "" VIA_2 = vias_from_csv("Via 2.csv") MAP_VIA_2 = map_from_csv("Via 2.csv") VIA_2[127] = {'text': "", 'stations': []} MAP_VIA_2[127] = "" DESTINATION_MAP = { "Frankfurt(Main)Hbf": "Frankfurt Hbf", "Freiburg(Breisgau) Hbf": "Freiburg Hbf", "Homburg(Saar)Hbf": "Homburg (Saar)", "Neustadt(Weinstr)Hbf": "Neustadt Hbf", "Mosbach(Baden)": "Mosbach", "Berlin Hbf (tief)": "Berlin Hbf", "Berlin Ostbahnhof": "Berlin Ostbhf.", "Berlin Gesundbrunnen": "B. Gesundbrunnen", "Kassel-Wilhelmshöhe": "Kassel-Wilh.", "Kaiserslautern Hbf": "Kaiserslaut.", "Marseille-St-Charles": "Marseille St Ch", "Graben-Neudorf": "Graben Neud.", "Groß Rohrheim": "Gr. Rohrheim", "Homburg(Saar)Hbf": "Homburg (SL)", "Weilheim(Oberbay)": "Weilheim(OB)", "Garmisch-Partenkirchen": "Garmisch-P.K.", "Ehrwald Zugspitzbahn": "Ehrwald", "Mühldorf(Oberbay)": "Mühldorf(OB)", "München Flughafen Terminal": "Flughafen/Airp.", "Amsterdam Centraal": "Amsterdam CS", "Venezia Santa Lucia": "Venezia", "Zagreb Glavni kolodvor": "Zagreb Glavni K.", "Kempten(Allgäu)Hbf": "Kempten Hbf", "Höhenkirchen-Siegertsbrunn": "Höhenkirchen", "München-Trudering": "Trudering", "Buchenau(Oberbay)": "Buchenau", "München Leuchtenbergring": "Leuchtenbgr.", "Pfronten-Steinach": "Pfronten-Stein.", "Verona Porta Nuova": "Verona P. N.", "Budapest Déli": "Budapest Deli", "Köln Messe/Deutz Gl. 9-10": "Köln Messe/Deutz", "Köln Messe/Deutz Gl.11-12": "Köln Messe/Deutz", "Frankfurt(M) Flughafen Fernbf": "Frankfurt Flugh.", "Dachau Bahnhof": "Dachau", "München Ost": "Ostbahnhof", "Wolfratshausen": "Wolfratshsn", "München-Pasing": "Pasing", "La Spezia Centrale": "La Spezia C", "Münster(Westf)Hbf": "Münster(W)Hbf", } ARRIVAL_MAP = { "Frankfurt(Main)Hbf": "Frankfurt/M", "Hamburg-Altona": "H.-Altona", "Graben-Neudorf": "Graben Neud.", "Groß Rohrheim": "Gr. Rohrheim", "Homburg(Saar)Hbf": "Homburg (SL)", "Weilheim(Oberbay)": "Weilheim(OB)", "Lindau-Reutin": "Lindau-Reut.", "Garmisch-Partenkirchen": "Garmisch", "Ehrwald Zugspitzbahn": "Ehrwald", "Budapest-Keleti": "Budapest", "Mühldorf(Oberbay)": "Mühldorf(OB)", "München Flughafen Terminal": "Flughafen", "Köln Messe/Deutz": "Köln", "Berlin Gesundbrunnen": "Berlin", "Berlin Hbf (tief)": "Berlin Hbf", "München Flughafen Terminal": "Flughafen", "Amsterdam Centraal": "Amsterdam CS", "Venezia Santa Lucia": "Venezia", "Zagreb Glavni kolodvor": "Zagreb", "Kempten(Allgäu)Hbf": "Kempten Hbf", "Höhenkirchen-Siegertsbrunn": "Höhenkirchen", "München-Trudering": "Trudering", "Buchenau(Oberbay)": "Buchenau", "München Leuchtenbergring": "Leuchtenbgr.", "Treuchtlingen": "Treuchtling.", "Dinkelscherben": "Dinkelschbn.", "Wolfratshausen": "Wolfratshsn.", "Bologna Centrale": "Bologna CT", "München-Pasing": "M.-Pasing", "Furth im Wald": "Furth i.W.", "Pfronten-Steinach": "Pfronten", "Dachau Bahnhof": "Dachau", "Verona Porta Nuova": "Verona P. N.", "Budapest Déli": "Budapest D.", "Wien Westbahnhof": "Wien Westbf.", "Köln Messe/Deutz": "Köln M/Deutz", "Köln Messe/Deutz Gl. 9-10": "Köln M/Deutz", "Köln Messe/Deutz Gl.11-12": "Köln M/Deutz", "La Spezia Centrale": "La Spezia C", } TRAIN_TYPE_MAP = { "TGV": "D Schnellzug", "EC": "EC EuroCity", "IC": "IC InterCity", "IR": "InterRegio", "RB": "RegionalBahn", "RE": "RegionalExpress", "IRE": "InterRegioExpress", "ICE": "ICE InterCityExpress", "BRB": "RegionalBahn", "EN": "EuroNight", "NJ": "EuroNight", "ECE": "ECE EuroCityExpress", "RJ": "railjet", "S": "MVV Münchner Verkehrs- und Tarifverbund", "RJX": "MÁV Magyar Államvasutak", "ALX": "alex", "WB": "D Schnellzug Zuschlag siehe Abfahrtplan", } VIA_MAP = { } VIA_WEIGHTS = { "Weilheim": 2 } # Wird nur noch gebraucht, um neue JSON-Datei zu erstellen class TypMZZA(SplitFlapDisplay): hour = CustomMapField(MAP_HOUR, start_address=1, x=0, y=0, module_width=12, module_height=2, home_pos=127) minute = CustomMapField(MAP_MINUTE, start_address=2, x=12, y=0, module_width=4, module_height=2, home_pos=127) info_1 = CustomMapField(MAP_INFO_1, start_address=4, x=0, y=2, module_width=16, module_height=2, home_pos=127) info_2 = CustomMapField(MAP_INFO_2, start_address=5, x=0, y=4, module_width=16, module_height=2, home_pos=127) via_1 = CustomMapField(MAP_VIA_1, start_address=6, x=16, y=2, module_width=16, module_height=2, home_pos=127) via_2 = CustomMapField(MAP_VIA_2, start_address=7, x=16, y=4, module_width=16, module_height=2, home_pos=127) destination = TextField(start_address=8, length=16, x=0, y=6, module_width=2, module_height=2, display_mapping=MAP_ALNUM, home_pos=127) hour_b = MirrorField(hour, start_address=24, x=0, y=10) minute_b = MirrorField(minute, start_address=25, x=12, y=10) info_1_b = MirrorField(info_1, start_address=26, x=0, y=12) info_2_b = MirrorField(info_2, start_address=28, x=0, y=14) via_1_b = MirrorField(via_1, start_address=27, x=16, y=12) via_2_b = MirrorField(via_2, start_address=29, x=16, y=14) destination_b = MirrorField(destination, start_address=30, length=16, x=0, y=16) if __name__ == "__main__": with open("TYPM.JSN", 'w') as f: f.write(TypMZZA(None).export_json())