Auwei, jürg, muß wohl am Alter liegen oder so
SlotSugar - einfachere Verwendung der Speicherslots
!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
-
-
Hallo Benny,
vielen Dank für deinen "SlotNames". Funktioniert bei mir tadellos, auch die Anleitung reicht völlig mit den Beispielen aus.
Noch eine kurze Frage, darf ich dein Skript "SlotNames_BH2" mitliefern, wenn ich eigene Anlagen zum Download bereitstelle?
-
Danke, Jörg,
ich hatte die Hoffnung auf eine positive Rückmeldung schon fast aufgegeben
Da bin ich mir selbst nicht so ganz einig. Prinzipiell halte ich mein Zeug gerne "zusammen", es soll es also nur an einer zentralen Stelle geben - und diese ist meine Homepage.
Andererseits kenne ich natürlich auch die User-Sicht: Wenn ich eine Anlage ausprobieren will, will ich nicht erst noch 1000 Zusatzmodelle/skripte installieren.
Deshalb sage ich es mal so: Wenn sich durch das Mitliefern eine wesentliche Erleichterung ergibt (dass gar nichts mehr zusätzlich heruntergeladen werden muss), kannst du das Skript gerne mitliefern.
Wenn durch die Mitlieferung die Anzahl der zusätzlich nötigen Download nur von 100 auf 99 gesenkt wird, eher nicht.
Dazwischen darfst du selber beurteilen. Die rechtliche Keule
werde ich deshalb zumindest nicht rausholen
Viele Grüße
Benny
-
Hallo Benny,
deine Meinung zwecks Skript mitliefern kann ich nachvollziehen, deshalb werde ich weiter nur schreiben, was man zur Anlage/ zum Skript noch benötigt.
-
Hallo Benny,
jetzt habe ich mal eine kleine Herausforderung für Dich, da ich an dieser Stelle nicht weiterkomme.
Ich benutze sehr gerne Dein "Slot_Names_BH2", versuche auch meine vorhandene Skripte darauf umzustellen, um es mir in bestimmten Bereichen die Arbeit mit Lua zu erleichtern. Nun wollte ich Mein Skript: "Trafo1_speziall" auf "Slot_Names" updaten. Mir gehen aber die Anführungszeichen mit "Slot_Names" verloren.
Ich hoffe Du verstehst, was ich meine, das Forum lässt nicht so viele Zeichen zu, um es an den Skripten zu erklären. Skripte kann ich nachreichen, wenn Du sie brauchst, falls Du die Schaltmodule und den Trafo von HS1 besitzt, kannste auch die kompletteDemo-Anlage bekommen.
Skriptauszug von HS1:
Code- -- dein Zug:
- Trafo_NameZug[Trafo_1]="#" --Beispiel: ...="#DB 110-304 SK2"
- ------------------------------------------------------
- -- Fahrzeuge zum Kuppeln und Entkuppeln:
- Trafo_NameFzgKupplungVorn[Trafo_1]="" --Beispiel: ...="DB 110-304 SK2"
- Trafo_NameFzgKupplungHinten[Trafo_1]="" --Beispiel: ...="DB 110-304 SK2"
- ------------------------------------------------------
- -- Fahrzeuge mit Stromabnehmer:
- Trafo_NameFzgStromAbnehmerVorn[Trafo_1]="" --Beispiel: ...="DB 110-304 SK2" (oder nicht ändern)
- Trafo_NameFzgStromAbnehmerHinten[Trafo_1]="" --Beispiel: ...="DB 110-304 SK2" (oder nicht ändern)
- ------------------------------------------------------
- -- Name der Stromabnehmer:
- Trafo_NameStromAbnehmerVorn[Trafo_1]="" --Beispiel: ...="Stromabnehmer2" (oder nicht ändern)
- Trafo_NameStromAbnehmerHinten[Trafo_1]="" --Beispiel: ...="Stromabnehmer1" (oder nicht ändern)
In welcher Zeile gehen sie verloren
Code- function EEPOnSignal_33 (_status) --Schaltmodul_Schalter01_ZAR (hochzählen) (1 = aus, 2 = gelb) !Ersetze die Null durch die ID deines Schalters (Signals)!
- if (_status ==2) and Slot.Hauptschalter == "An" then --gelb
- Slot.ZA.v1 = Slot.ZA.v1 +1
- if Slot.ZA.v1 > #MTS_NameZug_v1 then Slot.ZA.v1 = 1 end
- Slot.TT_ZA = 1
- EEPSetSignal (MTS_ZAS_v1,1,1)
- TT_ZA_An()
- EEPSetSignal (MTS_ZAR_v1,1)
- elseif (_status ==2) and Slot.Hauptschalter == "Aus" then --gelb
- print ("Den Hauptschalter erst einschalten,\ndann bitte erneut versuchen.")
- EEPShowInfoTextBottom(1,0.3,0.3,2,5,1,"Bitte den Hauptschalter erst einschalten, dann erneut versuchen!")
- EEPSetSignal (MTS_ZAR_v1,1)
- end
- end
- function EEPOnSignal_32 (_status) --Schaltmodul_Schalter01_ZAL (runterzählen) (1 = aus, 2 = gelb) !Ersetze die Null durch die ID deines Schalters (Signals)!
- if (_status ==2) and Slot.Hauptschalter == "An" then --gelb
- Slot.ZA.v1 = Slot.ZA.v1 -1
- if Slot.ZA.v1 < 1 then Slot.ZA.v1 = #MTS_NameZug_v1 end
- Slot.TT_ZA = 1
- EEPSetSignal (MTS_ZAS_v1,1,1)
- TT_ZA_An()
- EEPSetSignal (MTS_ZAL_v1,1)
- elseif (_status ==2) and Slot.Hauptschalter == "Aus" then --gelb
- --print ("Bitte den Hauptschalter erst einschalten,\ndann erneut versuchen!")
- EEPShowInfoTextBottom(1,0.3,0.3,2,5,1,"Bitte den Hauptschalter erst einschalten, dann erneut versuchen!")
- EEPSetSignal (MTS_ZAL_v1,1)
- end
- end
- function EEPOnSignal_34 (_status) --Schaltmodul_Schalter01_ZAS bestätigen Zugauswahl bestätigen. (1 = rot, 2 = grün) !Ersetze die Null durch die ID deines Schalters (Signals)!
- if (_status ==1) and Slot.Hauptschalter == "An" then --Nicht aktiv (rot)
- --print ("Zugauswahl bitte bestätigen, erst dann wird er übernommen!")
- elseif (_status ==2) and Slot.Hauptschalter == "An" then --Aktiv (gn)
- Slot.RM_aktiv_v1 = MTS_NameZug_v1[Slot.ZA.v1]
- Slot.RM_v1.NameZug = MTS_NameZug_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgKupplungVorn = MTS_NameFzgKupplungVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgKupplungHinten = MTS_NameFzgKupplungHinten_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgStromAbnehmerVorn = MTS_NameFzgStromAbnehmerVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgStromAbnehmerHinten = MTS_NameFzgStromAbnehmerHinten_v1[Slot.ZA.v1]
- Slot.RM_v1.NameStromAbnehmerVorn = MTS_NameStromAbnehmerVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameStromAbnehmerHinten = MTS_NameStromAbnehmerHinten_v1[Slot.ZA.v1]
- Trafo_Start = true --Trafo neu starten (initialisieren)
- Slot.TT_ZA = 2
- TT_ZA_An()
- TT_Trafo_An()
- --print ("Der neue Zugname für den Trafo lautet: ",Trafo1_Zugnamen[Zugauswahl] )
- elseif (_status ==2) and Slot.Hauptschalter == "Aus" then
- --print ("Bitte den Hauptschalter erst einschalten,\ndann erneut versuchen!")
- EEPShowInfoTextBottom(1,0.3,0.3,2,5,1,"Bitte den Hauptschalter erst einschalten, dann erneut versuchen!")
- EEPSetSignal (MTS_ZAL_v1,1,1)
- end
- end
Code- Trafo_NameZug[Trafo_1] = SlotMapping.RM_v1.NameZug
- Trafo_NameFzgKupplungVorn[Trafo_1] = SlotMapping.RM_v1.NameFzgKupplungVorn
- Trafo_NameFzgKupplungHinten[Trafo_1] = SlotMapping.RM_v1.NameFzgKupplungHinten
- Trafo_NameFzgStromAbnehmerVorn[Trafo_1] = SlotMapping.RM_v1.NameFzgStromAbnehmerVorn
- Trafo_NameFzgStromAbnehmerHinten[Trafo_1] = SlotMapping.RM_v1.NameFzgStromAbnehmerHinten
- Trafo_NameStromAbnehmerVorn[Trafo_1] = SlotMapping.RM_v1.NameStromAbnehmerVorn
- Trafo_NameStromAbnehmerHinten[Trafo_1] = SlotMapping.RM_v1.NameStromAbnehmerHinten
-
Hatte ich glatt vergessen, die Tabellen und so.
Einbindung:
Code- SlotMapping.RM_v1 = { --RM_v1 = Rollmaterial_Verbund 1 !Ersetze die Null durch eine Zahl zwischen 1-500!
- NameZug = 51,
- NameFzgKupplungVorn = 52,
- NameFzgKupplungHinten = 53,
- NameFzgStromAbnehmerVorn = 54,
- NameFzgStromAbnehmerHinten = 55,
- NameStromAbnehmerVorn = 56,
- NameStromAbnehmerHinten = 57,
- }
- SlotFuncs.checkMapping()
Die Tabellen, wo ich die Werte her habe:
Code- -- Deine Züge: maximal 30 Züge (Loks), oder zur Zeit das Skript "TT_MTS_v1" anpassen!
- MTS_NameZug_v1 = { --Beispiel: "#Dampflok_01","#Diesellok_01","#E_Lok_01",
- "#Dampflok_01","#Diesellok_01","#E_Lok_01",
- }
- MTS_NameFzgKupplungVorn_v1 = { --Beispiel: "Dampflok_01","Diesellok_01","E_Lok_01",
- "Dampflok_01","Diesellok_01","E_Lok_01",
- }
- MTS_NameFzgKupplungHinten_v1 = { --Beispiel: "Dampflok_01","Diesellok_01","E_Lok_01",
- "Dampflok_01","Diesellok_01","E_Lok_01",
- }
- MTS_NameFzgStromAbnehmerVorn_v1 = { --Beispiel: "","","E_Lok_01",
- "","","E_Lok_01",
- }
- MTS_NameFzgStromAbnehmerHinten_v1 = { --Beispiel: "","","E_Lok_01",
- "","","E_Lok_01",
- }
- MTS_NameStromAbnehmerVorn_v1 = { --Beispiel: "","","Stromabnehmer1_112-117",
- "","","Stromabnehmer1_112-117",
- }
- MTS_NameStromAbnehmerHinten_v1 = { --Beispiel: "","","Stromabnehmer2_112-117",
- "","","Stromabnehmer2_112-117",
- }
- --********************************Ende***************************************************
-
Hallo Jörg,
ich habe es mir nur kurz angeschaut, sehe in dem ganzen Code aber das eigentliche Problem nicht.
Was meinst du genau mit "verlorenen Anführungszeichen", bzw. in welcher Zeile genau tritt das auf?
Viele Grüße
Benny
PS: Trafos und Schaltmodule besitze ich nicht.
-
Wo ist denn der Aufruf?
- Trafo_NameZug[Trafo_1] = SlotMapping.RM_v1.NameZug
- Trafo_NameFzgKupplungVorn[Trafo_1] = SlotMapping.RM_v1.NameFzgKupplungVorn
- Trafo_NameFzgKupplungHinten[Trafo_1] = SlotMapping.RM_v1.NameFzgKupplungHinten
Wieso steht hier SlotMapping. Hier wird doch nichts gemappt?
Müßte das nicht: Trafo_NameZug[Trafo_1] = Slot.RM_v1.NameZug heissen?
-
Hallo Benny und Thomas,
habe die Herausforderung gelöst. Dem Trafo muß man direkt vor dem Trafo_Start(Neustart) die neuen Namen zuweisen. Hatte ich ja im alten Format auch gemacht, aber nicht mehr im neuen Format, deshalb konnte er auch nichts finden. Thomas, das mit SlotMapping war nur ein Copy-/ Paste-Fehler hier in das Forum rein, im richtigen Skript ist alles ok.
Und so funktioniert es jetzt:
Teil 1 Zugauswahl:
Code- function EEPOnSignal_34 (_status) --Schaltmodul_Schalter01_ZAS bestätigen Zugauswahl bestätigen. (1 = rot, 2 = grün) !Ersetze die Null durch die ID deines Schalters (Signals)!
- if (_status ==1) and Slot.Hauptschalter == "An" then --Nicht aktiv (rot)
- --print ("Zugauswahl bitte bestätigen, erst dann wird er übernommen!")
- elseif (_status ==2) and Slot.Hauptschalter == "An" then --Aktiv (gn)
- Slot.RM_aktiv_v1 = MTS_NameZug_v1[Slot.ZA.v1]
- Slot.RM_v1.NameZug = MTS_NameZug_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgKupplungVorn = MTS_NameFzgKupplungVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgKupplungHinten = MTS_NameFzgKupplungHinten_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgStromAbnehmerVorn = MTS_NameFzgStromAbnehmerVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameFzgStromAbnehmerHinten = MTS_NameFzgStromAbnehmerHinten_v1[Slot.ZA.v1]
- Slot.RM_v1.NameStromAbnehmerVorn = MTS_NameStromAbnehmerVorn_v1[Slot.ZA.v1]
- Slot.RM_v1.NameStromAbnehmerHinten = MTS_NameStromAbnehmerHinten_v1[Slot.ZA.v1]
- Trafo_1_Neustart() --Übernahme der Namen von Trafo 1 <-- neuer Funtionsaufruf für das Übergeben der Informationen an den entsprechenden Trafo.
- Trafo_Start = true --Trafo neu starten (initialisieren)
- Slot.TT_ZA = 2
- TT_ZA_An()
- TT_Trafo_An()
- --print ("Der neue Zugname für den Trafo lautet: ",Trafo1_Zugnamen[Zugauswahl] )
- elseif (_status ==2) and Slot.Hauptschalter == "Aus" then
- --print ("Bitte den Hauptschalter erst einschalten,\ndann erneut versuchen!")
- EEPShowInfoTextBottom(1,0.3,0.3,2,5,1,"Bitte den Hauptschalter erst einschalten, dann erneut versuchen!")
- EEPSetSignal (MTS_ZAL_v1,1,1)
- end
- end
Teil2 der Trafo selbst:
Code- --*********Skript MTS_01****************************
- -- Kennung für Trafo Nr. 1. Bitte nicht ändern.
- Trafo_1= 1
- Trafo_NameZug[Trafo_1] = Slot.RM_v1.NameZug
- Trafo_NameFzgKupplungVorn[Trafo_1] = Slot.RM_v1.NameFzgKupplungVorn
- Trafo_NameFzgKupplungHinten[Trafo_1] = Slot.RM_v1.NameFzgKupplungHinten
- Trafo_NameFzgStromAbnehmerVorn[Trafo_1] = Slot.RM_v1.NameFzgStromAbnehmerVorn
- Trafo_NameFzgStromAbnehmerHinten[Trafo_1] = Slot.RM_v1.NameFzgStromAbnehmerHinten
- Trafo_NameStromAbnehmerVorn[Trafo_1] = Slot.RM_v1.NameStromAbnehmerVorn
- Trafo_NameStromAbnehmerHinten[Trafo_1] = Slot.RM_v1.NameStromAbnehmerHinten
- function Trafo_1_Neustart()
- Trafo_NameZug[Trafo_1] = Slot.RM_v1.NameZug
- Trafo_NameFzgKupplungVorn[Trafo_1] = Slot.RM_v1.NameFzgKupplungVorn
- Trafo_NameFzgKupplungHinten[Trafo_1] = Slot.RM_v1.NameFzgKupplungHinten
- Trafo_NameFzgStromAbnehmerVorn[Trafo_1] = Slot.RM_v1.NameFzgStromAbnehmerVorn
- Trafo_NameFzgStromAbnehmerHinten[Trafo_1] = Slot.RM_v1.NameFzgStromAbnehmerHinten
- Trafo_NameStromAbnehmerVorn[Trafo_1] = Slot.RM_v1.NameStromAbnehmerVorn
- Trafo_NameStromAbnehmerHinten[Trafo_1] = Slot.RM_v1.NameStromAbnehmerHinten
- end
Einmal brauche ich die Namen beim Einlesen der Skripte und einmal wenn ich im laufenden Betrieb das Rollmaterial vom Trafo austausche. Ich nehme mal an, wenn ich den Funktionsaufruf Trafo_1_Neustart()
im Skript
davordahinter setze, kann ich mir die Zeilen 5-11 auch sparen. Gehe gleich mal testen."SlotNames_BH2" funktioniert prima, wenn man die eigenen Fehler beseitigt.