Jump to content

gmd

Mitglieder
  • Gesamte Inhalte

    656
  • Benutzer seit

  • Letzter Besuch

4 User folgen diesem Benutzer

Letzte Besucher des Profils

4823 Profilaufrufe
  1. Hallo, mal wieder ein update. Habe mein erstes "road modul" fertig.. Eine generische ampelsteuerung fuer beliebige anzahl von ampeln ind definierbaren konfigurationen. Viele features, inclusive gruene welle. Beinhaltet noch keine fussgaegerampel. Das kommt spaeter wenn ich die grundlagen fertig habe. Bisher erkunde ich moeglichkeiten und die integration mit meinem tool. In diesem fall gibt es eine reihe von hilfsfunktionen, die auch plugins sein koennen um die definition der tabellen zu uebernehmen. Das pdf mit allen scripten ist zu gross, kann es nicht attachen, also habe ich die beschreibung ohne scripte geladen. Falls jemand die demo und scripte moechte bitte PM. gruss Gmd SC_Dokumentation_noscript.pdf
  2. Das beispiel ist etwas anders gelagert local modul = layout:getEventsByName("SC_1")[1] -- Original structured table local testState = { shortPhase = { "Vo1" }, longPhase = { "Vo2" }, currentMode = "countDown" } -- Store in module variable modul.variables["BrokenState"] = testState -- Also store in global variable _G.goodState = testState -- Later access (simulate after a timer or defer callback) local broken = modul.variables["BrokenState"] local good = _G.goodState -- Display both print("From modul.variables:") for k, v in pairs(broken) do print(" " .. tostring(k), v) end print("From _G:") for k, v in pairs(good) do print(" " .. tostring(k), v) end Ich habe das auf ein minimum reduziert. Pack das in einen event wo der print funktioniert. Gruss Gmd
  3. Es ist etwas aufwand das zu isolieren.. werde es versuchen gruss Gmd
  4. Ihr hattet euch irgendwie auf das X eingenordet, deswegen der satz. gruss Gmd
  5. Ich habe leider noch ein weiteres beispiel ohne X mit dem gleichen problem. Gruss Gmd
  6. ok, waere shon gut wenn er das fixen koennte fuer die zukunft, macht viele abfragen einfacher und auch definitionen. Ich habe meine generische ampelsteuerung fertig. Nur tabellen fuer beliebige anzahl von kreuzungen. Werde einen post machen Gruss Gmd
  7. Kai, ich denke einfach mal ins unreine und habe auch nicht deine anlage angeschaut. Einfach mein ansatz, den ich verwenden wuerde. Dein aufbau sind fuer mich 5 gesicherte bloecke Umfahrblock hat vorrang und kann ausfahrblock (rechts) belegen, wenn frei (von roter lok noch nicht belegt) Wenn du unbedingt fahrstrassen verwenden willst, dann musst du sie segmentieren wie die bloecke (denke ich) und du kannst ausserdem fahrstrassen fuer die umfahrt anlegen .. du aktivierts die, die der position the loks entsprechen auf jeden fall musst du die ausfahrt der roten lok sichern. Falls die rote lok eine fahrstrasse inclusive ausfahrt verwendet, wird die umfahrt verhindert, du musst diese deaktivieren um eine umfahrstrasse zu aktivieren. Um ehrlich zu sein, ich verwende keine fahrstrassen, ich verwende nur blocksteuerung und ziele, das macht das denken einfacher, da fahrstrassen einfahrten nicht ausreichend sichern. Ausserdem ist eine lange liste von fahrstrassen nicht gut zu handeln und muehsam anzulegen. Ich weiss immer noch nicht wie ich fahstrassen mit lua anlegen kann, weil mir das von hand viel zu aufwendig ist. Ich weiss nicht ob das hilft, aber vielleicht mal ein ansatz ausserhalb der box gruss Gmd
  8. function debugMessage(msg) $("Ereignisse").variables["DebugOutput"] = msg -- Store only the last message will be displayed in the Eventlist end local modulName = "SC_1" local modul = layout:getEventsByName(modulName)[1] modul.variables["SignalLists"] = { X01 = { type = "FourWayStretched", signals = { "SC_1-X01-S_1", "SC_1-X01-S_2", "SC_1-X01-S_3", "SC_1-X01-S_4" }, contacts = { "SC_1-X01-SK_1","SC_1-X01-SK_2","SC_1-X01-SK_3","SC_1-X01-SK_4"}, stopcontacts = { "SC_1-X01-HK_1","SC_1-X01-HK_2","SC_1-X01-HK_3","SC_1-X01-HK_4"} }, X02 = { type = "FourWay", signals = { "SC_1-X02-S_1", "SC_1-X02-S_2", "SC_1-X02-S_3", "SC_1-X02-S_4" }, contacts = { "SC_1-X02-SK_1","SC_1-X02-SK_2","SC_1-X02-SK_3","SC_1-X02-SK_4"}, stopcontacts = { "SC_1-X02-HK_1","SC_1-X02-HK_2","SC_1-X02-HK_3","SC_1-X02-HK_4"} }, } for crossingName, crossingData in pairs(modul.variables["SignalLists"]) do debugMessage("Checking Crossing - SignalLists " .. tostring(crossingName)) end signalTable = { X01 = { type = "FourWayStretched", signals = { "SC_1-X01-S_1", "SC_1-X01-S_2", "SC_1-X01-S_3", "SC_1-X01-S_4" }, contacts = { "SC_1-X01-SK_1","SC_1-X01-SK_2","SC_1-X01-SK_3","SC_1-X01-SK_4"}, stopcontacts = { "SC_1-X01-HK_1","SC_1-X01-HK_2","SC_1-X01-HK_3","SC_1-X01-HK_4"} }, X02 = { type = "FourWay", signals = { "SC_1-X02-S_1", "SC_1-X02-S_2", "SC_1-X02-S_3", "SC_1-X02-S_4" }, contacts = { "SC_1-X02-SK_1","SC_1-X02-SK_2","SC_1-X02-SK_3","SC_1-X02-SK_4"}, stopcontacts = { "SC_1-X02-HK_1","SC_1-X02-HK_2","SC_1-X02-HK_3","SC_1-X02-HK_4"} }, } for crossingName, crossingData in pairs(signalTable) do debugMessage("Checking Crossing - SignalTable " .. tostring(crossingName)) end modul.variables["SignalTable"] = signalTable for crossingName, crossingData in pairs(modul.variables["SignalTable"]) do debugMessage("Checking Crossing - Stored in variables SignalTable " .. tostring(crossingName)) end erzeugt [8:16:51 AM] Modul-Variable wird gesetzt -> SC_1, "SignalLists", {2 Elemente} [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - SignalLists 2" [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - SignalLists 1" [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - SignalTable X01" [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - SignalTable X02" [8:16:51 AM] Modul-Variable wird gesetzt -> SC_1, "SignalTable", {2 Elemente} [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - Stored in variables SignalTable 2" [8:16:51 AM] Modul-Variable wird gesetzt -> Ereignisse, "DebugOutput", "Checking Crossing - Stored in variables SignalTable 1" hier das beispiel in deiner test anlage 09788E1E-A2F1-4E62-B044-6ECF44105AF6 gruss Gmd
  9. Danke fuer die Muehe. Da sind noch ein paar unterschiede .. Ich werde mal versuchen den teil zu isolieren fuer besseren test. Gruss Gmd
  10. Hallo, noch ein problem mit Lua Ich definiere: local signalLists = { ["X01"] = { ... }, ["X02"] = { ... } } modul.variables["SignalLists"] = signalLists wenn ich zuruecklese bekomme ich modul.variables["SignalLists"] { [1] = { ... data of X01 ... }, [2] = { ... data of X02 ... } } Intern wird wohl serialised und non numeric keys gehen verloren .. ["X01"] = {} OK in plain Lua und lokalen variablen , nicht erhalten in modul.variables { name = "X01", ... } ich muss dies tun um den namen zu behalten Mehrfach getestet gruss Gmd
  11. Danke nochmals, habe verstanden, ich verwende die "Strukturansicht" nicht sehr oft, das ist wohl mein problem hier. Gruss Gmd
  12. Dachte ich mir doch dass ich einen wurm eingebaut habe .. Ich hatte aber selektiert und gruppe aufloesen gesagt ... hmmm. ok, danke fuers finden. Gruss Gmd
  13. Ok, hier die details .. vielleicht nur bei diesem beispiel. Die anlage als entwurf 5CE8FC5C-BD36-48C3-9B23-566BF925A002 es geht hier um die linke kreuzung mit ampeln .. selektiere mast und ampel und nichts geht mehr zu selektieren. anbei ein zip mit movie ... es passiert auch nach neustart und fuer alle ampeln, auch die rechte kreuzung. Ich glaube euch dass das ueberall geht, wuerde ich auch nicht anders erwarten. Aber ich habe es mal wieder geschaft einen wurm eizubauen. gruss Gmd selection.zip
  14. 27CF82D9-0A9B-4F01-A533-4510ED50F695 Mast und C4008FC0-52B0-4B63-A58B-168D1CC94B42 Ampel lassen sich gruppieren , aber nicht mit anderen objekten (selektion wird nicht akzeptiert) . gruss Gmd
  15. das geht nur in der gezeigten richtung aber nicht in Lua (da geht es nur umgekehrt und nur mit schaltkontakt) wie die aussage von Goetz impliziert. Gruss Gmd
×
×
  • Neu erstellen...