Hallo und Frohes Neues Jahr aus Namibia.
Ich stehe wirklich auf dem Schlauch!
Im beigefügten Script werden die Werte v.an[j].tracknum und v.an[j].priority aus der Tabelle fs_str ausgelesen und den Werten v.tracknum und v.priority Zugeordnet. (Zeile 55/56)
Danach wird alles in die Tabelle fs_wait Eingetragen (insert). (Zeile 57)
Zur Kontrolle werden diese Werte Angezeigt, und sind korrekt. (Zeile 59/60 - Grün im Bild).
Diese Werte in der Tabelle fs_wait sollten nun die Fahrstrassen schalten, je nach Fahrstrassen Nummer und Priorität.
Bei der Auswertung der Tabelle fs_wait, sind diese Werte falsch. Es ist nur der letzte Wert, aber zwei Mal vorhanden:
Tracknumber: 3 / Priority: P (Rot im Bild) ( Zeile 70)
Ich habe schon Einiges Versucht, z.B die neuen Werte in die Tabelle fs_str einzugeben und dann diesen Eintrag in die Tabelle fs_wait zu Kopieren. Immer dasselbe Resultat.
In anderen Skripten habe ich schon ohne Probleme neue Werte in eine bestehende Tabelle eingefügt.
Wie schon Gesagt: Ich stehe wirklich auf dem Schlauch!
Bitte um Hilfe, Dank im Voraus, Gruss JPB
- -- scan the fs_str table and insert the concerned records into the fs_wait table
- for k,v in ipairs (fs_str) do
- v.prio = ""
- v.tracknum = 0
- -- check if the signal (v.routesig) exists
- if (EEPGetSignal(v.routesig) == 0) then
- if set_deb then
- prn_deb = prn_deb.."Debug: Module set_wait - non existing track signal: ".. v.routesig.."\n"
- prn_mes()
- pause = EEPPause(1)
- end
- end
- -- check if the signal (v.blocksig) exists
- if (EEPGetSignal(v.blocksig) == 0) then
- if set_deb then
- prn_deb = prn_deb.."Debug: Module set_wait - non existing block signal: ".. v.blocksig.."\n"
- prn_mes()
- pause = EEPPause(1)
- end
- end
- -- set all track signals (v.routesig) to 1 (no train track used)
- EEPSetSignal(v.routesig,1)
- -- track code 0 or 1
- if (v.code < 2) then
- -- check if a train is waiting on the track block signal (v.blocksig)
- if (EEPGetSignalTrainsCount(v.blocksig) > 0) then
- v.trainname = EEPGetSignalTrainName(v.blocksig,1)
- if (v.trainname == nil) or (v.trainname == "") then
- if set_deb then
- prn_deb = prn_deb.."Debug: Module set_wait - "..txtTrainNameEmpty..v.blocksig.." / Code: "..v.code.."\n"
- prn_mes()
- pause = EEPPause(1)
- end
- end
- ok, v.routename = EEPGetTrainRoute(v.trainname)
- if (ok == false) or (v.routename == nil) or (v.routename == "") then
- if set_deb then
- prn_deb = prn_deb.."Debug: Module set_wait - "..txtEEPGetTrainRoute.." / Code: "..v.code.."\n"
- prn_mes()
- pause = EEPPause(1)
- end
- end
- -- handels track block tracks
- -- handels track for unassignet trains (Alle/Any)
- if (v.routename == "Any") or (v.routename == "Alle") then
- if (v.an ~= nil) then
- for j = 1, #v.an, 1 do
- if not(v.an[j].priority == "E") and not(v.an[j].priority == "B") and not(v.an[j].prio == "L")then
- v.tracknum = v.an[j].tracknum
- v.priority = v.an[j].priority
- table.insert(fs_wait,v)
- print("------------------------")
- print(k.."/"..v.tracknum.."/"..v.priority)
- end
- end
- end
- end
- end
- end
- end
- for k,v in ipairs (fs_wait) do
- if set_rte then prn_rte = prn_rte..k.." / Railway: "..v.routesig.." / requested by: "..v.trainname.." / to Railway: "..v.routename.." / Tracknumber: "..v.tracknum.." / Priority: "..v.priority.."\n" end
- end
- end