test JayJay weiter im Bereich Hardware verfolgt

This commit is contained in:
2022-09-14 17:11:21 +02:00
parent 455c44ce30
commit 2de6f6d12a
+414 -338
View File
@@ -64,8 +64,8 @@ class MG():
raise Exception("Nachpuffer der Cason sollte grösser 1 sein")
# wenn Puffer, dann mindestens 2 Strecken
if deckblatt.get("Puffer", 0) > 0:
if deckblatt.get("Anzahl_der_Pufferstrecken_pro_Puffer", 0) < 3:
raise Exception("mind. 2 Strecken sollten existieren")
if deckblatt.get("Anzahl_der_Pufferstrecken_pro_Puffer", 0) < 2:
raise Exception("mind. 2 Strecken sollten im Puffer existieren")
# Bypass, wenn mindestens 2 Flyer oder 2 RSM
# Turm: kein Kriterium
@@ -124,7 +124,7 @@ class MG():
verbindungsstrecken_w_mengen = kwargs['verbindungsstrecken_w']
self.remove_empty(verbindungsstrecken_w_mengen)
#überprüfe welche Art von System, setze dict der unrelevanten klasse = 0
#überprüfe welche Art von System, setze dict der unrelevanten klasse = 0
system = deckblatt.get("SYSTEM", "")
if (system.lower() == "direct"):
self._rsm_fa = RSM_FA({})
@@ -138,7 +138,8 @@ class MG():
self._flyer_f40 = Flyer_F40_EJet_inc_Putz(flyer_f40_mengen)
self._neuenhauser = Putzmaschine_Neuenhauser(neuenhauser_mengen)
self._flyer = Flyer_EJet(flyer_mengen)
self._verbindungsstrecken_w = Verbindungsstrecken_Wechsel(verbindungsstrecken_w_mengen)
n_begegnung = deckblatt.get('Begegnungsstrecke_Bypass', 0)
self._verbindungsstrecken_w = Verbindungsstrecken_Wechsel(verbindungsstrecken_w_mengen, n_begegnung)
self._puffer = Puffer(puffer_mengen)
self._turm = Turm(turm_mengen)
@@ -789,14 +790,15 @@ class Flyer_EJet(Item):
# Verbindungsstrecken/_Wechsel:
class Verbindungsstrecken_Wechsel(Item):
def __init__(self, anzahl:dict):
def __init__(self, anzahl:dict, Begegnungsstrecke_bypass:int):
mengen = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
"Sensor_optisch_Traverse":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
"Bedientableau_1fach":0,
"Bedientableau_2fach":0,
"Bedientableau_14fach":0,
"Weiche":0,
#"Weiche":0,
"Dreifachweiche":0,
"Kreuzungsweiche":0,
"Werma_Rundumleuchte_Störung":0,
@@ -806,12 +808,18 @@ class Verbindungsstrecken_Wechsel(Item):
"RA_bi_ohne_SPS-Ansteuerung":0,
"Doppelstreckenantrieb":0
}
self._Mengen = {}
self._Mengen["Sensor_optisch_Traverse"] = anzahl.get("Sensor_optisch_Traverse", 0)
self._Mengen["Sensor_optisch_Traverse"] = Begegnungsstrecke_bypass * 3 + \
anzahl.get('Dreifachweiche', 0) * 2 + \
anzahl.get('Kreuzungsweiche', 0) * 4 + \
anzahl.get('Sensor_optisch_Traverse_Korrektur', 0)
self._Mengen["Sensor_optisch_Traverse_Korrektur"] = anzahl.get("Sensor_optisch_Traverse_Korrektur", 0)
self._Mengen["Bedientableau_1fach"] = anzahl.get("Bedientableau_1fach", 0)
self._Mengen["Bedientableau_2fach"] = anzahl.get("Bedientableau_2fach", 0)
self._Mengen["Bedientableau_14fach"] = anzahl.get("Bedientableau_14fach", 0)
self._Mengen["Weiche"] = anzahl.get("Weiche", 0)
self._Mengen["Weiche"] = Begegnungsstrecke_bypass * 2 + anzahl.get("Weiche_Korrektur", 0)
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
self._Mengen["Kreuzungsweiche"] = anzahl.get("Kreuzungsweiche", 0)
self._Mengen["Werma_Rundumleuchte_Störung"] = anzahl.get("Werma_Rundumleuchte_Störung", 0)
@@ -2363,7 +2371,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(zmengen["Meldelampe_Überstrom"], 2)
self.assertEqual(zmengen["Hauptschalter_Ein_Meldung"], 2)
self.assertEqual(zmengen["Werma_Rundumleuchte_Störung"], 1)
self.assertEqual(zmengen["Weiche_nach_PM_bipolar"], 1)
self.assertEqual(zmengen["Weiche_nach_PM_bipolar"], 1)
self.assertEqual(zmengen["Kreuzungsweiche"], 0)
self.assertEqual(zmengen["RA_uni"], 0)
self.assertEqual(zmengen["RA_uni_abhebbar"], 1)
@@ -2528,14 +2536,14 @@ class TestObjectMethods(unittest.TestCase):
# Test of Sum.
self.assertEqual(eas.get_SE("bedienstation_1fach_Not_Aus"), 0)
self.assertEqual(eas.get_SE("bedienstation_einfach_Zug_Wechseln"), 0)
self.assertEqual(eas.get_SE("bedienstation_automatische_Umfahrung"), 0)
self.assertEqual(eas.get_SE("bedienstation_zweifach_Wechs_BCD_10f"), 50)
self.assertEqual(eas.get_SE("bedienstation_zweifach_Not_Aus_Reset"), 4)
self.assertEqual(eas.get_SE("bedienst_dreifach"), 0)
self.assertEqual(eas.get_SE("bedienst_vierfach"), 0)
self.assertEqual(eas.get_SE("bedienst_sechsfach"), 6)
self.assertEqual(eas.get_SE("EAs_Unterverteiler_direct"), 70)
self.assertEqual(eas.get_SE("bedienstation_einfach_Zug_Wechseln"), 0)
self.assertEqual(eas.get_SE("bedienstation_automatische_Umfahrung"), 0)
self.assertEqual(eas.get_SE("bedienstation_zweifach_Wechs_BCD_10f"), 50)
self.assertEqual(eas.get_SE("bedienstation_zweifach_Not_Aus_Reset"), 4)
self.assertEqual(eas.get_SE("bedienst_dreifach"), 0)
self.assertEqual(eas.get_SE("bedienst_vierfach"), 0)
self.assertEqual(eas.get_SE("bedienst_sechsfach"), 6)
self.assertEqual(eas.get_SE("EAs_Unterverteiler_direct"), 70)
# Ermittlung_Mengengeruest_Anzahl
self.assertEqual(eas.get_SE("Sensor_Traversenabfrage_optisch"), 11)
@@ -2576,14 +2584,14 @@ class TestObjectMethods(unittest.TestCase):
### output ####
self.assertEqual(eas.get_SA("bedienstation_1fach_Not_Aus"), 0)
self.assertEqual(eas.get_SA("bedienstation_einfach_Zug_Wechseln"), 0)
self.assertEqual(eas.get_SA("bedienstation_automatische_Umfahrung"), 0)
self.assertEqual(eas.get_SA("bedienstation_zweifach_Wechs_BCD_10f"), 10)
self.assertEqual(eas.get_SA("bedienstation_zweifach_Not_Aus_Reset"), 4)
self.assertEqual(eas.get_SA("bedienst_dreifach"), 0)
self.assertEqual(eas.get_SA("bedienst_vierfach"), 0)
self.assertEqual(eas.get_SA("bedienst_sechsfach"), 6)
self.assertEqual(eas.get_SA("EAs_Unterverteiler_direct"), 60)
self.assertEqual(eas.get_SA("bedienstation_einfach_Zug_Wechseln"), 0)
self.assertEqual(eas.get_SA("bedienstation_automatische_Umfahrung"), 0)
self.assertEqual(eas.get_SA("bedienstation_zweifach_Wechs_BCD_10f"), 10)
self.assertEqual(eas.get_SA("bedienstation_zweifach_Not_Aus_Reset"), 4)
self.assertEqual(eas.get_SA("bedienst_dreifach"), 0)
self.assertEqual(eas.get_SA("bedienst_vierfach"), 0)
self.assertEqual(eas.get_SA("bedienst_sechsfach"), 6)
self.assertEqual(eas.get_SA("EAs_Unterverteiler_direct"), 60)
# Ermittlung_Mengengeruest_Anzahl
self.assertEqual(eas.get_SA("Sensor_Traversenabfrage_optisch"), 0)
@@ -2603,7 +2611,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(eas.get_SA("Schnittstelle_Flyer_ElectroJet"), 2)
self.assertEqual(eas.get_SA("Schnittstelle_Flyer_Putzmaschine_ElectroJet"), 0)
self.assertEqual(eas.get_SA("Schnittstelle_Flyer_Neuhauser"), 0)
self.assertEqual(eas.get_SA("Schnittstelle_Flyer_Neuhauser"), 0)
self.assertEqual(eas.get_SA("FEldbux_UV_EinAusgang"), 1)
self.assertEqual(eas.get_SA("Spulenumsetzstation"), 0)
@@ -2814,13 +2822,13 @@ class TestObjectMethods(unittest.TestCase):
}
verbindungsstrecken_w_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
"Sensor_optisch_Traverse":0,
#"Sensor_optisch_Traverse":0,
"Bedientableau_1fach":0,
"Bedientableau_2fach":0,
"Bedientableau_14fach":0,
"Weiche":0,
"Dreifachweiche":0,
"Kreuzungsweiche":0,
"Kreuzungsweiche":1,
"Werma_Rundumleuchte_Störung":0,
"RA_uni":0,
"RA_uni_ohne_SPS_Ansteuerung":0,
@@ -2829,21 +2837,21 @@ class TestObjectMethods(unittest.TestCase):
"Doppelstreckenantrieb":0
}
puffer_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Puffer":0, #äquivalent zu Anzahl
#"Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
#"Anzahl_Staustrecken":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
"RA_bi_ungerade_Schiene":0,
#"Doppelstreckenantrieb":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
# auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# "Anzahl":0,
# "Puffer":0, #äquivalent zu Anzahl
# "Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
# "Anzahl_Staustrecken":0,
# "Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur": 1,
# "Weiche":0,
"Weiche_Korrektur": 0,
"RA_bi_ungerade_Schiene": 2,
# "Doppelstreckenantrieb":0,
# "Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur": 0,
# "Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur": 0,
}
turm_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
@@ -2868,32 +2876,94 @@ class TestObjectMethods(unittest.TestCase):
verbindungsstrecken_w=verbindungsstrecken_w_eingabe,
puffer=puffer_eingabe,
turm=turm_eingabe)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Anzahl_RSM'), 14)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Flex_A_Premium'), False)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Getriebe_in_der_Mitte'), False)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'RSM_Einfahrt_Ein_Beidseitig'), False)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Sensor_optisch_Traverse'), 20)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Sensor_optisch_Traverse_zusätzlich'), 6)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Bedientableau_1fach'), 14)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Bedientableau_1fach_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Bedientableau_2fach'), 2)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Bedientableau_2fach_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Weiche'), 14)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Weiche_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'RRA_bi'), 14)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'RRA_bi_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'RRA_bi_auf_Haupstrecke'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'RRA_bi_ohne_SPS_Ansteuerung'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'gemeinsame_Wendung'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Seilzugschalter'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Mit_Drucktaster'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Mit_Drucktaster_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Meldelampe_Überstrom'), 2)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Meldelampe_Überstrom_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Hauptschalter_Ein_Meldung'), 2)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Werma_Rundumleuchte_Störung'), 2)
self.assertEqual(mg.get_value_of_object("rsm_fa", 'Werma_Rundumleuchte_Störung_Korrektur'), 0)
# check data of Mengengerüst
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Anzahl_RSM'), 14)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Flex_A_Premium'), False)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Getriebe_in_der_Mitte'), False)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RSM_Einfahrt_Ein_Beidseitig'), False)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse'), 20)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse_zusätzlich'), 6)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach'), 14)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach'), 2)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche'), 14)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi'), 14)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_auf_Haupstrecke'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_ohne_SPS_Ansteuerung'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'gemeinsame_Wendung'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Seilzugschalter'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom'), 2)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein_Meldung'), 2)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung'), 2)
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung_Korrektur'), 0)
# check data of the flyer
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl_Schienen'), 2)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Flyer'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse'), 28)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_induktiv_Spulenalter_Zug_positionierung'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Bedientableau_2fach'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Interface_Doffer'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche'), 8)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_nach_Flyer_bipolar'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Dreifachweiche'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_ohne_SPS-Ansteuerung'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Doppelstreckenantrieb'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_unger_Schiene'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein_Meldung'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung'), 4)
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung_Korrektur'), 0)
# Verbindungsstrecken Wechsel
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Sensor_optisch_Traverse'), 10)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_1fach'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_2fach'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_14fach'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Weiche'), 4)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Dreifachweiche'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Kreuzungsweiche'), 1)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Werma_Rundumleuchte_Störung'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni_ohne_SPS_Ansteuerung'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi_ohne_SPS-Ansteuerung'), 0)
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Doppelstreckenantrieb'), 0)
# Puffer
self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl'), 1)
self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl_Staustrecken'), 5)
self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse'), 6)
self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse_Korrektur'), 1)
self.assertEqual(mg.get_value_of_object('puffer', 'Weiche'), 5)
self.assertEqual(mg.get_value_of_object('puffer', 'RA_bi_ungerade_Schiene'), 2)
self.assertEqual(mg.get_value_of_object('puffer', 'Weiche_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('puffer', 'Doppelstreckenantrieb'), 2)
self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom'), 1)
self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom_Korrektur'), 0)
self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein_Meldung'), 1)
self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
zf = mg.zusammenfassung()
print(zf)
Anzahl_EAS = {
"bedienstation_einfach_Zug_Wechseln": 1,
@@ -2905,7 +2975,13 @@ class TestObjectMethods(unittest.TestCase):
"panel_pc": 1,
"antrieb_unidirektional_halbleiter": 1,
}
mengen = mg.zusammenfassung()
eas = EA(Anzahl_EAS, mg)
eas.gesamt_E()
eas.gesamt_A()
eas.Anzahl_notwendigen_Siemens_EAKarten()
hw = HW(Anzahl_HW, mg, eas)
emo_eingabe = {
"Schaltschrank_aufstellen": 1,
@@ -2923,274 +2999,274 @@ class TestObjectMethods(unittest.TestCase):
}
emo = EMO(eas, hw, mg)
def test2(self):
# Anzahl der für das Projekt benutzten
Anzahl_MG = {
"SYSTEM":"DIRECT",
"RSM":11,
"Flyer":0,
"Flyer_Puffer":2,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine":1,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2,
"Neuenhauser-Putzmaschine":0,
"Neuenhauser-Putzmaschine_Vorpuffer":0,
"Neuenhauser-Putzmaschine_Nachpuffer":0,
"Cason-Putzmaschine":0,
"Cason-Putzmaschine_Vorpuffer":0,
"Cason-Putzmaschine_Nachpuffer":0,
"Puffer":1,
"Anzahl_der_Pufferstrecken_pro_Puffer":2,
"Begegnungsstrecke_Bypass":0,
"Turm":0,
"Turm_Anzahl_Wendlungen":0,
}
rsm_direct_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0, # wird in deckblatt-Klasse berechnet
#"Anzahl_Strecken_RSM":8,
"Sensor_optisch_Traverse":0,
#"Lichtschranke_Traverse":0,
#"Bedientableau_2fach":0,
"Bedientableau_2fach_Korrektur":0,
#"Bedientableau_2fach_Direct":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_Gemeinsame_Rückstellung":0,
"Weiche_Gemeinsame_Rückstellung_Korrektur":0,
#"RA_bi_abhebbar":0,
"RA_bi_abhebbar_Korrektur":0,
#"Doppelstreckenantrieb":0,
#"gemeinsame_Wendung":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
#"Werma_Rundumleuchte_Störung":0,
"Werma_Rundumleuchte_Störung_Korrektur":0,
}
rsm_fa_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl_RSM":0,
#"Automatische_Umfahrung":0, # 'Automatische_Umfahrung' und 'Flex_A_Premium' sind eine Zelle -> identischer Wert
"Flex_A_Premium":False,
"Getriebe_in_der_Mitte":False,
"RSM_Einfahrt_Ein_Beidseitig":False,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_zusätzlich":0,
#"Bedientableau_1fach":0,
"Bedientableau_1fach_Korrektur":0,
#"Bedientableau_2fach":0,
"Bedientableau_2fach_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"RRA_bi":0,
"RRA_bi_Korrektur":0,
"RRA_bi_auf_Haupstrecke":0,
#"RRA_bi_ohne_SPS_Ansteuerung":0,
"gemeinsame_Wendung":0,
#"Seilzugschalter":0,
#"Mit_Drucktaster":0,
"Mit_Drucktaster_Korrektur":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
#"Werma_Rundumleuchte_Störung":0,
"Werma_Rundumleuchte_Störung_Korrektur":0,
}
flyer_f40_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, #wird in deckblatt-Klasse berechnet
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur":0,
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2, #wird in deckblatt-Klasse berechnet
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2, #wird in deckblatt-Klasse berechnet
#"Anzahl_Schienen":0,
"Single_Line_Durchfahrt":False,
"Nachpuffer":False,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Sensor_induktiv_Spulenhalter":0,
"Sensor_induktiv_Spulenhalter_Korrektur":0,
#"Bedientableau_2fach":0,
"Bedientableau_2fach_Korrektur":0,
#"Interface_Doffer":0,
"Interface_Doffer_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_bipolar":0,
"Weiche_nach_Flyer_bipolar_Korrektur":0,
"Dreifachweiche":0,
"Wechsel":0,
"Stopper":0,
"RA_uni":0,
#"RA_uni_abhebbar":0,
"RA_uni_abhebbar_Korrektur":0,
#"RA_uni_ohne_SPS_Ansteuerung":0,
"RA_uni_ohne_SPS_Ansteuerung_Korrektur":0,
#"RRA_BI_abhebbar":0,
"RRA_BI_abhebbar_Korrektur":0,
"RRA_bi":0,
#"RRA_bi_Korrektur":0,
#"RRA_bi_ohne_SPS_Ansteuerung":0,
"RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0,
#"Doppelstreckenantrieb":0,
"Doppelstreckenantrieb_Korrektur":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
#"Werma_Rundumleuchte_Störung":0,
"Werma_Rundumleuchte_Störung_Korrektur":0,
}
neuenhauser_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Neuenhauser-Putzmaschine":0, #wird in deckblatt-Klasse zugewiesen
#"Neuenhauser-Putzmaschine_Vorpuffer":0, #wird in deckblatt-Klasse zugewiesen
#"Neuenhauser-Putzmaschine_Nachpuffer":0, #wird in deckblatt-Klasse zugewiesen
#"Anzahl_Vorstaustrecken":0,
#"Anzahl_Nachstaustrecken":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Sensorik_Zugpositionierung":0,
#"Sensor_WT18_Spulenprüfung_voll_leer":0,
#"Bedientableau_2fach":0,
"Bedientableau_2fach_Korrektur":0,
#"Interface_Putzmaschine":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_PM_bipolar":0,
#"RA_uni_abhebbar":0,
"RA_uni_abhebbar_Korrektur":0,
#"RA_uni_ohne_SPS_Ansteuerung":0,
#"RA_uni_abhebbar_unger_Sch":0,
#"Doppelstreckenantrieb":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
#"Werma_Rundumleuchte_Störung":0,
"Werma_Rundumleuchte_Störung_Korrektur":0,
}
flyer_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Flyer":0, # äquivalent zu 'Anzahl'
#"Anzahl_Schienen:":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
#"Bedientableau_2fach":0,
#"Interface_Doffer":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_bipolar":0,
"Dreifachweiche":0,
#"Wechsel":0,
"Wechsel_Korrektur":0,
#"RA_bi_ohne_SPS-Ansteuerung":0,
#"RA_bi_abhebbar":0,
"RA_bi_abhebbar_Korrektur":0,
"RA_bi":0,
#"Doppelstreckenantrieb":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
#"Werma_Rundumleuchte_Störung":0,
"Werma_Rundumleuchte_Störung_Korrektur":0,
}
verbindungsstrecken_w_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
"Sensor_optisch_Traverse":0,
"Bedientableau_1fach":0,
"Bedientableau_2fach":0,
"Bedientableau_14fach":0,
"Weiche":0,
"Dreifachweiche":0,
"Kreuzungsweiche":0,
"Werma_Rundumleuchte_Störung":0,
"RA_uni":0,
"RA_uni_ohne_SPS_Ansteuerung":0,
"RA_bi":0,
"RA_bi_ohne_SPS-Ansteuerung":0,
"Doppelstreckenantrieb":0
}
puffer_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Puffer":0, #äquivalent zu Anzahl
#"Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
#"Anzahl_Staustrecken":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
"RA_bi_ungerade_Schiene":0,
#"Doppelstreckenantrieb":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein_Meldung":0,
"Hauptschalter_Ein-Meldung_Korrektur":0,
}
turm_eingabe = {
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
#"Anzahl":0,
#"Turm":0, #äquivalent zu Anzahl
#"Anzahl_Wendlungen":0, #äquivalent zu Anzahl_Staustrecken
#"Anzahl_Staustrecken":0,
#"Sensor_optisch_Traverse":0,
#"Weiche":0,
#"RA_bi":0,
"RA_bi_Korrektur":0,
#"RA_bi_ohne_SPS":0,
"RA_bi_ohne_SPS_Korrektur":0,
#"Bedientableau_2fach":0,
}
mg = MG(Anzahl_MG,
rsm_direct=rsm_direct_eingabe,
rsm_fa=rsm_fa_eingabe,
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_eingabe,
puffer=puffer_eingabe,
turm=turm_eingabe)
#mg.tofile()
#mg.ztofile()
Anzahl_EAS = {
"bedienstation_einfach_Zug_Wechseln": 1,
"Weiche": 2,
"RA_unidirektional": 1
}
Anzahl_HW = {
"hauptschalter": 2,
"panel_pc": 1,
"antrieb_unidirektional_halbleiter": 1,
}
eas = EA(Anzahl_EAS, mg)
hw = HW(Anzahl_HW, mg, eas)
emo_eingabe = {
"Schaltschrank_aufstellen": 1,
"Unterverteiler_montieren": 4,
"Pritsche_montieren_umbauen_demontieren": 66,
"Pritsche_in_RSM_montieren": 0,
"Motor_verdrahten_und_anschliessen": 97,
"Tableau_befestigen_und_anschliessen": 15,
"Schnittstelle_Flyer_Putzmaschine": 1,
"Sensoren_montieren": 84,
"Seilzugschalter_installieren": 0,
"Blitzleuchte_installieren": 3,
"Weiche_Stopper_anschliessen": 244,
"Erdung": 40,
}
emo = EMO(eas, hw, mg)
# def test2(self):
# # Anzahl der für das Projekt benutzten
# Anzahl_MG = {
# "SYSTEM":"DIRECT",
# "RSM":11,
# "Flyer":0,
# "Flyer_Puffer":2,
# "Flyer_Electrojet_incl_intergrierte_Putzmaschine":1,
# "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2,
# "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2,
# "Neuenhauser-Putzmaschine":0,
# "Neuenhauser-Putzmaschine_Vorpuffer":0,
# "Neuenhauser-Putzmaschine_Nachpuffer":0,
# "Cason-Putzmaschine":0,
# "Cason-Putzmaschine_Vorpuffer":0,
# "Cason-Putzmaschine_Nachpuffer":0,
# "Puffer":1,
# "Anzahl_der_Pufferstrecken_pro_Puffer":2,
# "Begegnungsstrecke_Bypass":0,
# "Turm":0,
# "Turm_Anzahl_Wendlungen":0,
# }
#
# rsm_direct_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0, # wird in deckblatt-Klasse berechnet
# #"Anzahl_Strecken_RSM":8,
# "Sensor_optisch_Traverse":0,
# #"Lichtschranke_Traverse":0,
# #"Bedientableau_2fach":0,
# "Bedientableau_2fach_Korrektur":0,
# #"Bedientableau_2fach_Direct":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# #"Weiche_Gemeinsame_Rückstellung":0,
# "Weiche_Gemeinsame_Rückstellung_Korrektur":0,
# #"RA_bi_abhebbar":0,
# "RA_bi_abhebbar_Korrektur":0,
# #"Doppelstreckenantrieb":0,
# #"gemeinsame_Wendung":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# #"Werma_Rundumleuchte_Störung":0,
# "Werma_Rundumleuchte_Störung_Korrektur":0,
# }
# rsm_fa_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl_RSM":0,
# #"Automatische_Umfahrung":0, # 'Automatische_Umfahrung' und 'Flex_A_Premium' sind eine Zelle -> identischer Wert
# "Flex_A_Premium":False,
# "Getriebe_in_der_Mitte":False,
# "RSM_Einfahrt_Ein_Beidseitig":False,
# #"Sensor_optisch_Traverse":0,
# "Sensor_optisch_Traverse_zusätzlich":0,
# #"Bedientableau_1fach":0,
# "Bedientableau_1fach_Korrektur":0,
# #"Bedientableau_2fach":0,
# "Bedientableau_2fach_Korrektur":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# #"RRA_bi":0,
# "RRA_bi_Korrektur":0,
# "RRA_bi_auf_Haupstrecke":0,
# #"RRA_bi_ohne_SPS_Ansteuerung":0,
# "gemeinsame_Wendung":0,
# #"Seilzugschalter":0,
# #"Mit_Drucktaster":0,
# "Mit_Drucktaster_Korrektur":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# #"Werma_Rundumleuchte_Störung":0,
# "Werma_Rundumleuchte_Störung_Korrektur":0,
# }
# flyer_f40_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0,
# #"Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, #wird in deckblatt-Klasse berechnet
# "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur":0,
# #"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2, #wird in deckblatt-Klasse berechnet
# #"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2, #wird in deckblatt-Klasse berechnet
# #"Anzahl_Schienen":0,
# "Single_Line_Durchfahrt":False,
# "Nachpuffer":False,
# #"Sensor_optisch_Traverse":0,
# "Sensor_optisch_Traverse_Korrektur":0,
# #"Sensor_induktiv_Spulenhalter":0,
# "Sensor_induktiv_Spulenhalter_Korrektur":0,
# #"Bedientableau_2fach":0,
# "Bedientableau_2fach_Korrektur":0,
# #"Interface_Doffer":0,
# "Interface_Doffer_Korrektur":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# #"Weiche_nach_Flyer_bipolar":0,
# "Weiche_nach_Flyer_bipolar_Korrektur":0,
# "Dreifachweiche":0,
# "Wechsel":0,
# "Stopper":0,
# "RA_uni":0,
# #"RA_uni_abhebbar":0,
# "RA_uni_abhebbar_Korrektur":0,
# #"RA_uni_ohne_SPS_Ansteuerung":0,
# "RA_uni_ohne_SPS_Ansteuerung_Korrektur":0,
# #"RRA_BI_abhebbar":0,
# "RRA_BI_abhebbar_Korrektur":0,
# "RRA_bi":0,
# #"RRA_bi_Korrektur":0,
# #"RRA_bi_ohne_SPS_Ansteuerung":0,
# "RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0,
# #"Doppelstreckenantrieb":0,
# "Doppelstreckenantrieb_Korrektur":0,
# "RA_bi_abhebbar_unger_Schiene":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# #"Werma_Rundumleuchte_Störung":0,
# "Werma_Rundumleuchte_Störung_Korrektur":0,
# }
# neuenhauser_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0,
# #"Neuenhauser-Putzmaschine":0, #wird in deckblatt-Klasse zugewiesen
# #"Neuenhauser-Putzmaschine_Vorpuffer":0, #wird in deckblatt-Klasse zugewiesen
# #"Neuenhauser-Putzmaschine_Nachpuffer":0, #wird in deckblatt-Klasse zugewiesen
# #"Anzahl_Vorstaustrecken":0,
# #"Anzahl_Nachstaustrecken":0,
# #"Sensor_optisch_Traverse":0,
# "Sensor_optisch_Traverse_Korrektur":0,
# #"Sensorik_Zugpositionierung":0,
# #"Sensor_WT18_Spulenprüfung_voll_leer":0,
# #"Bedientableau_2fach":0,
# "Bedientableau_2fach_Korrektur":0,
# #"Interface_Putzmaschine":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# #"Weiche_nach_PM_bipolar":0,
# #"RA_uni_abhebbar":0,
# "RA_uni_abhebbar_Korrektur":0,
# #"RA_uni_ohne_SPS_Ansteuerung":0,
# #"RA_uni_abhebbar_unger_Sch":0,
# #"Doppelstreckenantrieb":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# #"Werma_Rundumleuchte_Störung":0,
# "Werma_Rundumleuchte_Störung_Korrektur":0,
# }
# flyer_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0,
# #"Flyer":0, # äquivalent zu 'Anzahl'
# #"Anzahl_Schienen:":0,
# #"Sensor_optisch_Traverse":0,
# "Sensor_optisch_Traverse_Korrektur":0,
# #"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
# #"Bedientableau_2fach":0,
# #"Interface_Doffer":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# #"Weiche_nach_Flyer_bipolar":0,
# "Dreifachweiche":0,
# #"Wechsel":0,
# "Wechsel_Korrektur":0,
# #"RA_bi_ohne_SPS-Ansteuerung":0,
# #"RA_bi_abhebbar":0,
# "RA_bi_abhebbar_Korrektur":0,
# "RA_bi":0,
# #"Doppelstreckenantrieb":0,
# "RA_bi_abhebbar_unger_Schiene":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# #"Werma_Rundumleuchte_Störung":0,
# "Werma_Rundumleuchte_Störung_Korrektur":0,
# }
# verbindungsstrecken_w_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# "Sensor_optisch_Traverse":0,
# "Bedientableau_1fach":0,
# "Bedientableau_2fach":0,
# "Bedientableau_14fach":0,
# "Weiche":0,
# "Dreifachweiche":0,
# "Kreuzungsweiche":0,
# "Werma_Rundumleuchte_Störung":0,
# "RA_uni":0,
# "RA_uni_ohne_SPS_Ansteuerung":0,
# "RA_bi":0,
# "RA_bi_ohne_SPS-Ansteuerung":0,
# "Doppelstreckenantrieb":0
# }
# puffer_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0,
# #"Puffer":0, #äquivalent zu Anzahl
# #"Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
# #"Anzahl_Staustrecken":0,
# #"Sensor_optisch_Traverse":0,
# "Sensor_optisch_Traverse_Korrektur":0,
# #"Weiche":0,
# "Weiche_Korrektur":0,
# "RA_bi_ungerade_Schiene":0,
# #"Doppelstreckenantrieb":0,
# #"Meldelampe_Überstrom":0,
# "Meldelampe_Überstrom_Korrektur":0,
# #"Hauptschalter_Ein_Meldung":0,
# "Hauptschalter_Ein-Meldung_Korrektur":0,
# }
# turm_eingabe = {
# #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
# #"Anzahl":0,
# #"Turm":0, #äquivalent zu Anzahl
# #"Anzahl_Wendlungen":0, #äquivalent zu Anzahl_Staustrecken
# #"Anzahl_Staustrecken":0,
# #"Sensor_optisch_Traverse":0,
# #"Weiche":0,
# #"RA_bi":0,
# "RA_bi_Korrektur":0,
# #"RA_bi_ohne_SPS":0,
# "RA_bi_ohne_SPS_Korrektur":0,
# #"Bedientableau_2fach":0,
# }
# mg = MG(Anzahl_MG,
# rsm_direct=rsm_direct_eingabe,
# rsm_fa=rsm_fa_eingabe,
# flyer_f40=flyer_f40_eingabe,
# neuenhauser=neuenhauser_eingabe,
# flyer=flyer_eingabe,
# verbindungsstrecken_w=verbindungsstrecken_w_eingabe,
# puffer=puffer_eingabe,
# turm=turm_eingabe)
#
# #mg.tofile()
# #mg.ztofile()
# Anzahl_EAS = {
# "bedienstation_einfach_Zug_Wechseln": 1,
# "Weiche": 2,
# "RA_unidirektional": 1
# }
# Anzahl_HW = {
# "hauptschalter": 2,
# "panel_pc": 1,
# "antrieb_unidirektional_halbleiter": 1,
# }
# eas = EA(Anzahl_EAS, mg)
# hw = HW(Anzahl_HW, mg, eas)
# emo_eingabe = {
# "Schaltschrank_aufstellen": 1,
# "Unterverteiler_montieren": 4,
# "Pritsche_montieren_umbauen_demontieren": 66,
# "Pritsche_in_RSM_montieren": 0,
# "Motor_verdrahten_und_anschliessen": 97,
# "Tableau_befestigen_und_anschliessen": 15,
# "Schnittstelle_Flyer_Putzmaschine": 1,
# "Sensoren_montieren": 84,
# "Seilzugschalter_installieren": 0,
# "Blitzleuchte_installieren": 3,
# "Weiche_Stopper_anschliessen": 244,
# "Erdung": 40,
# }
# emo = EMO(eas, hw, mg)