Svenska 3D-Tåg - Forum

Svenska 3D-Tåg - Forum (http://www.e-buzz.se/forum/index.php)
-   3D-design - DTG - Train Simulator (http://www.e-buzz.se/forum/forumdisplay.php?f=48)
-   -   Modernisering av svenskt signalpaket (http://www.e-buzz.se/forum/showthread.php?t=37550)

Hgv 2021-01-02 19:52

Smart! Med den lösningen borde man ju inte behöva så många specialvarianter (typ Jö 128) utan man borde kunna använda samma signaltyp i de flesta situationer.

Citat:

Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/
När jag har haft liknande problem har det oftast visat sig att det var något jag missat i scriptet, typ att signalen ställer om till rätt signalbild men att scriptet exempelvis inte uppdaterar signalbilden efter att en växel lagts om eller liknande. Det gäller att lusläsa scriptet helt enkelt (eller inte så enkelt när man som jag inte har full koll på hur alla funktioner fungerar! :datastrul:).

Hur går det med DV4-signalen? Det är ändå det mest störande signalproblemet just nu (iaf i områden med många spår och många dvärgar). ;)

Ett annat område som skulle behöva ses över är hur vägskydden fungerar. Kort sagt så funkar det bra om man har ett typiskt enkel- eller dubbelspår på linje, men om vägskyddet ligger så att det finns växlar mellan korsningen och ringsträckans början så blir det ofta fel med nuvarande script. Det kanske inte är möjligt att lösa så det blir 100% realistiskt men det vore kul om det kunde förbättras.

ADDE 2021-01-02 20:04

- Jadu, det är något som ligger i det. Jag upptäckte att signalen läser endast av den första a-rutan och agerar på det. skulle jag skriva "K" för länk 2 så visas signalen bara KÖR 40 istället för KÖR 40, kort tågväg till länk 2.

- Jag tänkte börja jobba med DV-signalerna när jag är klar med H5:an.

- Jag försökte prova på vägskydden på samma vis som DTG har gjort på senare tid, men när jag bytte ut en brittisk varningssignal mot X12 så kraschar spelet när rutten ska läsas in. Jag tänkte jobba även med detta mera men det får ske lite senare. (Finns en okrypterad lua-fil som behandlar vägskylten i kuju-mappen faktiskt.)

En sak i taget, helt enkelt.

ADDE 2021-04-17 01:59

2 bifogad(e) fil(er)
De svenska signalerna ligger på paus men just nu jobbar jag med järnvägskorsningar. Målet är att få till DTGs funktion med våra svenska assets, dvs. en korsning som fungerar i flera spår och även stoppar vägtrafiken. Flera varianter planeras men först måste jag få hela paketet att funka.

Problem som jag har är dels bomdrivens animationer (öppning resp. stägning) krockar. Bommarna spelar öppningssekvensen baklänges.

Vidare får jag inte den vita lampan att blinka ö.h.t.

lua-kodning asså :vetej:

ADDE 2021-04-17 03:25

Jag har hakat upp mig, får inte den vita lampan att blinka.

Har skrivit hjälp här: https://forums.uktrainsim.com/viewto...f=370&t=153543

Totte 2021-04-17 12:49

Markera alla och ta bild och visa hur du la länkarna.

Hgv 2021-04-17 13:37

Kul att du jobbar på med detta!

Jag hoppas ju fortfarande på en dvärgsignal som fungerar bättre... :visslar:

Men det kan väl inte skada att fixa till plankorsningarna också, även om jag tycker de funkar rätt bra, i alla fall så länge man inte har för komplicerade spår eller korsningar nära varandra. Som det är nu måste man ju vara väldigt försiktig med var man placerar VF-länkarna för att korsningen ska fungera och inte orsaka problem med närliggande korsningar som kan göra att allt hänger sig. Vore bra om man fick en lösning som var lite mer robust!

Vad gäller det vita blinket, har du kollat hur det är kodat i originalscripten? Jämfört med det röda blinket? Jämfört med andra signaler (t.ex. försignaler som ju blinkar)? Det känns som att just den biten borde vara ganska enkel att lösa, men det är lätt att missa nån detalj i scriptet vilket jag upptäckte flera gånger när jag fixade olika signalvarianter.

ADDE 2021-04-17 18:25

Citat:

Ursprungligen postat av Hgv (Inlägg 320093)
Kul att du jobbar på med detta!

Jag hoppas ju fortfarande på en dvärgsignal som fungerar bättre... :visslar:

Det får komma senare. Jag har kört fast där somsagt. :visslar:

Citat:

Ursprungligen postat av Hgv (Inlägg 320093)
Men det kan väl inte skada att fixa till plankorsningarna också, även om jag tycker de funkar rätt bra, i alla fall så länge man inte har för komplicerade spår eller korsningar nära varandra. Som det är nu måste man ju vara väldigt försiktig med var man placerar VF-länkarna för att korsningen ska fungera och inte orsaka problem med närliggande korsningar som kan göra att allt hänger sig. Vore bra om man fick en lösning som var lite mer robust!

De har aldrig funkat för mig, inte alla delar iaf. I värsta fall kraschar spelet.

Citat:

Ursprungligen postat av Hgv (Inlägg 320093)
Vad gäller det vita blinket, har du kollat hur det är kodat i originalscripten? Jämfört med det röda blinket? Jämfört med andra signaler (t.ex. försignaler som ju blinkar)? Det känns som att just den biten borde vara ganska enkel att lösa, men det är lätt att missa nån detalj i scriptet vilket jag upptäckte flera gånger när jag fixade olika signalvarianter.

Jag har kollat i orginalscripten och i andra signaler, men flyttar jag runt på kodavsnittet som tar hand om blinkningar så läggs det av. Jag minns att det gav mig ett felmeddelande förr att dtime var ett nil-värde, vilket spelet inte godtog. Men den felet tycks sluta dyka upp nu.

Annat problem är att få med bomdrivshusen utan att bommarna ska sluta animera eller blinka. :/ Animerade objekt verkar inte stöda child-objekt i sin tur och gör jag det omvänt så bommarna är child-objekt så slutar de blinka och endast ett bom animerar sig.

Hgv 2021-04-17 19:03

Citat:

Ursprungligen postat av ADDE (Inlägg 320099)
De har aldrig funkat för mig, inte alla delar iaf. I värsta fall kraschar spelet.

Vad exakt är det som inte funkar?

Korsningarna ska fungera om man har rätt script (tyvärr cirkulerar det en del gamla versioner med felaktiga script), men det finns vissa begränsningar. Finns det växlar mellan VF-signal och korsningen kan det vara så att korsningen inte aktiveras/avaktiveras korrekt beroende på att växeln ändrat läge exempelvis.

Tänk också på att aldrig starta ett scenario direkt från route/scenario editor för då initieras inte signaler på rätt sätt. Det är extra tydligt vid plankorsningar som inte alls funkar som de ska om man startat från editorn.

ADDE 2021-04-19 00:52

Citat:

Ursprungligen postat av Hgv (Inlägg 320100)
Vad exakt är det som inte funkar?

Korsningarna ska fungera om man har rätt script (tyvärr cirkulerar det en del gamla versioner med felaktiga script), men det finns vissa begränsningar. Finns det växlar mellan VF-signal och korsningen kan det vara så att korsningen inte aktiveras/avaktiveras korrekt beroende på att växeln ändrat läge exempelvis.

Tänk också på att aldrig starta ett scenario direkt från route/scenario editor för då initieras inte signaler på rätt sätt. Det är extra tydligt vid plankorsningar som inte alls funkar som de ska om man startat från editorn.

Du ser, det är onödigt krångligt och obsolet. för projekt mälardalen så har dessa varit en av orsakerna till att jag inte kan läsa in rutten. så målet med det jag gör är att skapa enklare och stabilare assets för att snabba upp ruttbyggen.

Iaf. lite progress. men hjar problem med bommarna, försöker förklara så gått jag kan när jag skapade en ny tråd här: https://forums.uktrainsim.com/viewto...f=370&t=153546

Totte 2021-04-19 22:33

Om du ändrar skripten så skapa nya filnamn så de inte skriver över befintliga filer. Det blir risk att förstöra mina rutter.

ADDE 2021-04-20 02:04

alla mina filer får nya filnamn och hamnar under SummerADDE/SwedenV2.

Järnvägskorsningen som jag snickrar ihop kommer fungera väldigt annorlunda i editorvyn.

Nu har jag kommit så långt att alla 4 bommar och X-signaler, samt 2st V är på plats och fungerar... Det som återstår är då följande:
-Trimma parametrar så anläggningen simulerar som i på verkligheten.
-Fixa VF-signaler som ska fungera med korsningen. (De gamla järnvägskorsningsdelarna kommer INTE funka ihop med denna och vice versa.)

På tal om det så letar jag efter assets likt det jag har skapat ovan. Tips på järnvägsövergångar från 3:e part jag kan ladda ner? i Discord så sa de att sjaelland ska ha vägskydd med VF-motsvarande, men vart laddar jag ner det?

mibl 2021-04-20 16:32

- felpost -

ADDE 2021-04-21 23:58

1 bifogad(e) fil(er)
Alla objekt på plats. scriptning återstår.

To-do list:
1. Programmera in VF-signalerna
2. Lösa problem med att de vita lamporna inte blinkar när bommarna är inaktiva. (kan även påverka VF-blink)
3. se om jag kan få till en fördröjning på vänster-bommarna.
4. Se om trigger kan bli hastighetsbaserad istället för att ha en fast avstånd.

Sen är det tags att ta fram varianter av denna.

Hgv 2021-04-22 03:19

Det är ju viktigt att ringsträckan kan göras flexibel om man vill få en realistisk korsning. IRL sker det ju när tåget passerar en spårledning som sitter på väldigt olika avstånd beroende på hastighet, typ av vägskydd m.m.

Den bästa lösningen är nog om signaleringen kan sättas igång av en länk på spåret, ungefär så som sker idag med VF-signalerna. Då kan den placeras på lämpligt avstånd vilket förstås varierar från korsning till korsning. Däremot kanske länken inte behöver vara direkt kopplad till VF-signal då ju många korsningar saknar VF och länken måste vara placerad någon kilometer eller mer från signalen. Kanske länken kan kopplas till ett signalskåp som placeras ut vid länken (lättare att hitta än en begravd VF-signal)?

Nu till nåt helt annat:
Att använda Approach Control-funktionen för att få en signal att bete sig på olika sätt var en väldigt smart idé. Från början fattade jag nog inte riktigt att det "bara" är ett sätt att kunna välja olika egenskaper för signalen utan jag trodde det hade något specifikt med just "approach control" att göra. Tack för tipset! :tumme_upp:

Jag provkörde ett scenario på Malmbanan och låg bakom ett långsamt malmtåg då jag höll på att köra mot rött när mellansignalen visar "kör" med utfartsblocket i "stopp". Dvs "kör vänta kör" i infartssignalen, nästa signal som är en H2 visar "kör" och nästa H2 efter bara ca 300 m visar "stopp". Så kan man ju inte ha det tänkte jag, så jag såg till att göra nåt åt saken!

Min första tanke var att skapa en ny variant av H2 och H3 med ändrat script som ställer signalen till stopp när nästa signal visar stopp. Men det skulle bli många signaler att byta ut! Då kom jag på att Approach Control-funktionen kanske kunde lösa problemet. Resultatet blev en smärre ändring i scripten för H2 och H3, vilket innebär att man inte behöver byta ut några signaler och befintliga signalers funktion påverkas bara om man går in och bockar för "Approach Control" i signalens egenskaper.

Jag lade till de här raderna i scripten:

Kod:

        elseif Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 and gExpectState == STATE_STOP then
                newSignalState = STATE_STOP

Alltså, OM "Approach Control" är valt så kommer signalen gå till stopp när nästa signal är i stopp.

Jag har nu "utrustat" alla mellansignaler som står före utfartsblocksignaler på Malmbanan på detta sätt och provkört, och det fungerar fint. Nästa steg blir att utrusta Jönköpingsbanan på samma sätt.

Tänker också att "Approach Control", "Limited Aspect" och "GetLinkFeatherChar" kan vara användbara om man vill göra signalers funktion mer flexibla som du redan varit inne på Adde! Det gäller bara att komma fram till i vilken utsträckning man behöver göra nya signaler och i vilken utsträckning man kan uppdatera scripten så att redan utplacerade signaler kan ges ny funktionalitet vid behov, utan att påverka de signaler som man inte vill ska ändras.

ADDE 2021-04-22 14:15

Citat:

Ursprungligen postat av Hgv (Inlägg 320134)
Det är ju viktigt att ringsträckan kan göras flexibel om man vill få en realistisk korsning. IRL sker det ju när tåget passerar en spårledning som sitter på väldigt olika avstånd beroende på hastighet, typ av vägskydd m.m.

Den bästa lösningen är nog om signaleringen kan sättas igång av en länk på spåret, ungefär så som sker idag med VF-signalerna. Då kan den placeras på lämpligt avstånd vilket förstås varierar från korsning till korsning. Däremot kanske länken inte behöver vara direkt kopplad till VF-signal då ju många korsningar saknar VF och länken måste vara placerad någon kilometer eller mer från signalen. Kanske länken kan kopplas till ett signalskåp som placeras ut vid länken (lättare att hitta än en begravd VF-signal)?

Jadu, jag står inför ett vägval efter om jag ska gå efter realism eller om jag ska göra som alla andra och skapa något enklare. Fördelen med det senare är att jag behöver inte skapa så många varianter då.

Citat:

Ursprungligen postat av Hgv (Inlägg 320134)
Nu till nåt helt annat:
Att använda Approach Control-funktionen för att få en signal att bete sig på olika sätt var en väldigt smart idé. Från början fattade jag nog inte riktigt att det "bara" är ett sätt att kunna välja olika egenskaper för signalen utan jag trodde det hade något specifikt med just "approach control" att göra. Tack för tipset! :tumme_upp:

Jag provkörde ett scenario på Malmbanan och låg bakom ett långsamt malmtåg då jag höll på att köra mot rött när mellansignalen visar "kör" med utfartsblocket i "stopp". Dvs "kör vänta kör" i infartssignalen, nästa signal som är en H2 visar "kör" och nästa H2 efter bara ca 300 m visar "stopp". Så kan man ju inte ha det tänkte jag, så jag såg till att göra nåt åt saken!

Min första tanke var att skapa en ny variant av H2 och H3 med ändrat script som ställer signalen till stopp när nästa signal visar stopp. Men det skulle bli många signaler att byta ut! Då kom jag på att Approach Control-funktionen kanske kunde lösa problemet. Resultatet blev en smärre ändring i scripten för H2 och H3, vilket innebär att man inte behöver byta ut några signaler och befintliga signalers funktion påverkas bara om man går in och bockar för "Approach Control" i signalens egenskaper.

Jag lade till de här raderna i scripten:

Kod:

        elseif Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 and gExpectState == STATE_STOP then
                newSignalState = STATE_STOP

Alltså, OM "Approach Control" är valt så kommer signalen gå till stopp när nästa signal är i stopp.

Jag har nu "utrustat" alla mellansignaler som står före utfartsblocksignaler på Malmbanan på detta sätt och provkört, och det fungerar fint. Nästa steg blir att utrusta Jönköpingsbanan på samma sätt.

Tänker också att "Approach Control", "Limited Aspect" och "GetLinkFeatherChar" kan vara användbara om man vill göra signalers funktion mer flexibla som du redan varit inne på Adde! Det gäller bara att komma fram till i vilken utsträckning man behöver göra nya signaler och i vilken utsträckning man kan uppdatera scripten så att redan utplacerade signaler kan ges ny funktionalitet vid behov, utan att påverka de signaler som man inte vill ska ändras.

Jomen precis! Intressant lösning där. Jag har ju fasstnat på "GetLinkFeatherChar" och får inte det att fungera som tänkt, men ska ta nya tag och testa mig fram när plankorningen är klar.

Totte 2021-04-23 18:16

Går det med 4-spårskorsning i Säffle? Det är omöjligt att fixa där. Har försökt i fyra dagar.
Titta efter via google maps
Bara en V-signal.

ADDE 2021-04-23 19:16

Vet du hur man sätter upp plankorsningarna på Bergensbanen?

Det är så det kommer bli med dessa!

dvs. oändligt antal spår, stoppar biltrafiken, stör ingen annan signalverksamhet och du kan flytta och gömma undan individuella objekt.

Totte 2021-04-23 20:35

Till Bergensbanen använder jag moderna tyska korsningar.
Till Thn använder jag även tyska där det är trångt mellan korsningar.
För att stoppa bilar tar jag historiska bommar och gömmer dem under marken.

I Säffle är fyra spår och signalerna SE-22 och SE-32 som är problemet. Deras länkar är för få. Max till två spår. Skulle ha fler länkar.
Hoppas du förstår dessa vad jag menar.

Totte 2021-04-24 17:23

1 bifogad(e) fil(er)
Hej!
Jag lyckades med korsningen, men bara på två spåren som är aktiverade. De yttre spåren är verkningslösa.
Om du lyckas med enkla korsningen är verkligen välkommet. Då byter jag ut dem.

ADDE 2021-04-26 01:56

Jag har tydligen gjort nåt fel för spelet kraschar när jag försöker läsa in assets relaterat till bommarna och jag vet inte vad (out of memory)

Jag kom så långt men jag har inte tålamodet att felsöka när jag inte vet vad som orsakar felet.

Jag ger mig för denna gång och börjar om längre fram när jag får lust. Tills dess får annat kärlek tills vidare.

Hgv 2021-04-26 16:09

Citat:

Ursprungligen postat av ADDE (Inlägg 320160)
Jag har tydligen gjort nåt fel för spelet kraschar när jag försöker läsa in assets relaterat till bommarna och jag vet inte vad (out of memory)

Efter mycket trial and error har jag upptäckt att om man gör spårrelaterade ändringar (som uppdaterar tracks.bin) så kan det hända att det hänger sig eller blir korrupt beroende på vilket scenario man har startat editorn ifrån när man gör ändringarna. Det verkar som att standard scenario är bättre än free roam.

Testa detta om det hänger sig när du gjort ändringar i tracks.bin:

1. Det verkar som att signalscript normalt är det som gör att det hänger sig. Se till att scripten inte laddas genom att t.ex. byta namn eller flytta på aktuell mapp eller signal asset. Jag har funnit att det enklaste är att avaktivera scripten genom att byta namn på t.ex. Assets\newS\sweden\RailNetwork\signals\scripts.

2. Starta TS och Route Editor via ett standard scenario (ej free roam). Att signalscripten är avaktiverade syns genom att alla lampor i signalerna lyser samtidigt.

3. Gör en ändring och spara så att tracks.bin skapas på nytt. Det räcker med att flytta en länk eller marker någon centimeter.

4. Gå ur Route Editor.

5. Aktivera scripten igen genom att se till att mappen/filerna finns på rätt plats med rätt namn igen.

5. Starta rutten igen (det ska gå med valfritt scenario). Förhoppningsvis fungerar det nu!

ADDE 2021-04-26 16:37

okej, intressant men...

Orginalrutten jag testade bommarna i har jag tagit bort.

Bockar jag i asset-mappen så fryser spelet.

Även KEVPA testade mina filer och han fick samma problem.

Totte 2021-04-26 21:14

1 bifogad(e) fil(er)
Hej!
Så gör jag korsningen i Tösse station. Ena V-signalen visar rött och den andra vit.

ADDE 2021-05-05 00:10

Jag hittade vad som var fel. Det var en mapp som ändå skulle bort som spökade sig helt plötsligt.

Med mappen borta så kan jag läsa in paketet igen.

Om allting går som jag vill så lär jag ha en beta redo för SSB-discorden att testa om ett par dagar.

ADDE 2021-05-20 17:00

Hej! Jag har lagt upp hela projektet på Github: https://github.com/SummerADDE/TS-SwedenV2

ADDE 2022-01-11 18:02

Hej! Funderar på att återuppta projektet. Bommarna ska vara klart först. Är nog inte så mycket kvar vad jag kommer ihåg. Sen huvudsignalerna och dvärgsignalerna sist.

Sen Norge. Lägger in en länk här för egen skull: https://www.banenor.no/contentassets...gssystemer.pdf

ADDE 2022-01-14 22:09

Testversion av plankorsningar ute för testning!

Download: https://github.com/SummerADDE/TS-Swe...2022-01-14.zip

Att tänka på:
-Detta är endast en testversion. Jag vill inte att du ska använda denna version i din rutt! Gör en kopia av din rutt och testa assetsen i SummerADDE/SECrossingsTest. Rapportera sedan tillbaka till mig här på forumet eller på github så kan jag fixa de eventuella fel som uppstår. Kompabiliteten med din rutt kan komma att brytas inför framtida releaser av plankorningarna.
VIKTIGT: Läs läsmig-filen som kommer med så du vet vad du behöver tänka på när du ska testa bommarna. Tack!

This is only a test release. Do not use it on your official route! Compatibility may break with future stable releases!

ADDE 2022-01-16 05:59

I väntan på er feedback kring bommarna så experimenterade jag vidare med H5:an.

Citat:

Ursprungligen postat av ADDE (Inlägg 319091)
Jag har nu bemästrat funktionen "GetLinkFeatherChar" och till en början fått till 3 gröna (Kör 40, kort tågväg)

I function BaseInitialise() så lade jag till följande rader.
Kod:

        -- Get link character and store it as "gIndicator".
        gLinkFeatherChar = 0
        gIndicator = ""

        -- If we're connected to a valid link and the signal isn't red
        if gConnectedLink > 0 then

                -- Check what indicator (if any) is used by that route
                gLinkFeatherChar = Call("GetLinkFeatherChar", gConnectedLink)

                -- If route has a valid indicator, turn its ID into a string
                if gLinkFeatherChar ~= 0 then
                        gIndicator = string.char(gLinkFeatherChar)
                else
                        gIndicator = ""
                end
        end

Koden ovan gör att man hämtar ACII-värdet av tecknet du skrev in i A-rutan, konverterar det till ett tecken eller sträng och förvarar det i gIndicator. detta kan justeras per länk.

Sen längst ner i SetSignalState() lade jag till följande rader:
Kod:

        if (gIndicator == "K") or  (gIndicator == "k") then
                gLightOn = 1
        else
                gLightOn = 0
        end

och sedan i rad 110:
Kod:

        elseif (gSignalState == STATE_SLOW) then
                SwitchLight( LIGHT_NODE_GREEN,                1 )
                SwitchLight( LIGHT_NODE_RED,                0 )
                SwitchLight( LIGHT_NODE_GREEN2,                1 )
                SwitchLight( LIGHT_NODE_WHITE,                0 )
                SwitchLight( LIGHT_NODE_GREEN3,        gLightOn )

om du har skrivit in bokstaven K i a-rutan för en länk så kommer alltså signalen att visa "KÖR 40, kort tågväg" istället för KÖR 40.

Det var ett h-vete, men man lär sig varje dag! :grin:
EDIT: Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/

Jag flyttade den första kodsnuttet till SetSignalState() samt ändrat värdet från K till 3. Det jag upptäckte nu är att om signalen fortsätter vara STATE_SLOW vid en växelomläggning så fastnar den antingen vid 2 gröna eller 3 gröna fasta sken. Det är först när signalen ändrar STATE som den kontrollerar om det ska vara 2 sken eller 3 sken. Får undersöka hur det kan uppdateras vid en växelomläggning.

ADDE 2022-01-17 04:09

Efter mycket misslyckande försök så valde ajg att skapa en ny Signal state, STATE_SLOWER.

Vid DefaultSetLights() (rad 96-126) så lade jag till raderna för signalbilden STATE_SLOWER:
HTML-kod:

-- Swedish home signals SetLights
-- Switch the appropriate lights on and off based on our new state
function DefaultSetLights()
--        DebugPrint("DefaultSetLights()")
        if (gSignalState == STATE_GO) then
                SwitchLight( LIGHT_NODE_GREEN,                1 )
                SwitchLight( LIGHT_NODE_RED,                0 )
                SwitchLight( LIGHT_NODE_GREEN2,                0 )
                SwitchLight( LIGHT_NODE_WHITE,                0 )
                SwitchLight( LIGHT_NODE_GREEN3,        0 )

        elseif (gSignalState == STATE_SLOW) then
                SwitchLight( LIGHT_NODE_GREEN,                1 )
                SwitchLight( LIGHT_NODE_RED,                0 )
                SwitchLight( LIGHT_NODE_GREEN2,                1 )
                SwitchLight( LIGHT_NODE_WHITE,                0 )
                SwitchLight( LIGHT_NODE_GREEN3,        0 )

        elseif (gSignalState == STATE_SLOWER) then
                SwitchLight( LIGHT_NODE_GREEN,                1 )
                SwitchLight( LIGHT_NODE_RED,                0 )
                SwitchLight( LIGHT_NODE_GREEN2,                1 )
                SwitchLight( LIGHT_NODE_WHITE,                0 )
                SwitchLight( LIGHT_NODE_GREEN3,        1 )

        else        -- stop or blocked
                SwitchLight( LIGHT_NODE_GREEN,                0 )
                SwitchLight( LIGHT_NODE_RED,                1 )
                SwitchLight( LIGHT_NODE_GREEN2,                0 )
                SwitchLight( LIGHT_NODE_WHITE,                0 )
                SwitchLight( LIGHT_NODE_GREEN3,        0 )
        end
end

Vid globals states (rad 137) ska följande rad läggs till efter STATE_BLOCKED:
HTML-kod:

STATE_SLOWER                                                                        = 4
vid SetSignalState() (rad 411) så har jag gjort så här istället:
HTML-kod:

        elseif Call("GetLinkFeatherChar", gConnectedLink) == 51 then
                if Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 then
                        -- Check if next signal is at red, show a slow signal if that is the case.
                        if (gExpectState == STATE_GO) or (gExpectState == STATE_SLOW) then
                                newSignalState = STATE_GO
                        else
                                newSignalState = STATE_SLOWER
                        end
                elseif Call ( "GetLinkLimitedToYellow", gConnectedLink ) ~= 0 then
                        -- diverging route, signal slow
                        newSignalState = STATE_SLOWER
                end
        elseif Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 then
                -- Check if next signal is at red, show a slow signal if that is the case.
                if (gExpectState == STATE_GO) or (gExpectState == STATE_SLOW) then
                        newSignalState = STATE_GO
                else
                        newSignalState = STATE_SLOW
                end
        elseif Call ( "GetLinkLimitedToYellow", gConnectedLink ) ~= 0 then
                -- diverging route, signal slow
                newSignalState = STATE_SLOW
        end

GetLinkFeatherChar är alltså rutan där du kan skriva in en siffra eller bokstav. Denna gång så valde jag att inte konvertera den, men skriver du siffran 3 (ASCII-kod 51) och sedan har någon av checkboxarna intill bockade så kommer signalen att visa 3 Gröna, STATE_SLOWER. Har du inte siffran 3 ifyllt men någon av boxarna iboxade så kommer 2 gröna, STATE_SLOW att visas i vanlig ordning.

Nedanför denna kodsnutt (rad 454) så lade jag in denna del:
HTML-kod:

        if newSignalState ~= gSignalState then
                DebugPrint("SetSignalState() - signal state changed from " .. gSignalState .. " to " .. newSignalState .. " - sending message" )
                gSignalState = newSignalState
                SetLights()
                if gSignalState >= STATE_STOP then
                        Call( "Set2DMapSignalState", STATE_STOP)
                else
                        if gSignalState == STATE_SLOWER then
                                Call( "Set2DMapSignalState", STATE_SLOW)
                        else
                                Call( "Set2DMapSignalState", gSignalState)
                        end
                end
                if gSignalState == STATE_BLOCKED and not gBlockSignal then
                        Call( "SendSignalMessage", SIGNAL_STOP, "BLOCKED", -1, 1, 0 )
                else
                        if gSignalState == STATE_SLOWER then
                                Call( "SendSignalMessage", SIGNAL_GO + STATE_SLOW, "", -1, 1, 0 )
                        else
                                Call( "SendSignalMessage", SIGNAL_GO + gSignalState, "", -1, 1, 0 )
                        end
                end
        end

Detta för att bibehålla kompatibiliteten med alla de andra signalerna genom att skicka iväg meddelandet STATE_SLOW, vilket får föregående signal att visa VÄNTA KÖR40. skulle föregående signal få STATE_SLOWER så skulle den inte uppfatta signalbilden och orsaka fel istället.

Dock lyckas jag inte lura kartan. Den visar en röd prick istället för gul. Men det får nog vara så, antar jag.

Filen finns på Github om någon vill testa.

kevpa00 2022-01-17 17:38

Spännande Adde. Jag tittar på koden och börjar förstå lite iallafall. Kul att du håller på. Stort tack! :tumme_upp:

ADDE 2022-01-19 07:06

Fortsatte lite idag med. Lade in det sista egenskaperna:

-Lade till så att skriver du "1" på sifferrutan så visar signalen stop när nästa signal visar stop.
-Lade till stöd för att generera en GAME OVER om tåget kör mot rött i ett standard scenario eller career scenario.

Återstår: Call-on-funktionen. Dvs. möjligheten att du kan be om att få köra mot rött. Får jag det att fungera så är jag nöjd sedan.

Den uppdaterade kodsnuttet finns på github.

ADDE 2022-01-23 22:32

Jag är snart färdig men har en ganska märklig bugg som har uppstått. Signalen kontrollerar inte nästa huvudsignals status inledningsvis och visar VÄNTA KÖR oavsett nästa signal signalbild. Annars har jag fått med alla de egenskaper jag velat ha med i denna signal. FÅr jag problemet löst så lägger jag upp en betaversion som folk kan ladda ner på github och testa.

Senaste koden finns på github och jag frågar just nu på UKTS och hoppas få svar av AndiS.

Totte 2022-01-24 11:17

Citat:

Ursprungligen postat av ADDE (Inlägg 320946)
Jag är snart färdig men har en ganska märklig bugg som har uppstått. Signalen kontrollerar inte nästa huvudsignals status inledningsvis och visar VÄNTA KÖR oavsett nästa signal signalbild. Annars har jag fått med alla de egenskaper jag velat ha med i denna signal. FÅr jag problemet löst så lägger jag upp en betaversion som folk kan ladda ner på github och testa.

Senaste koden finns på github och jag frågar just nu på UKTS och hoppas få svar av AndiS.

Ofta ligger växlar och spårkorsning i mellan som hindrar signalernas kontroll.

ADDE 2022-02-01 04:17

Hej! Jag har nu löst problemet och det verkar nu funka som det ska. Det uppdaterade koden finns nu på Github om någon vill testa testsignalen i olika miljöer.

Jag har nu börjat arbeta med en kombo av Huvudsignal + Dvärgsignal genom att bygga vidare på koden. Dvärgsignalen gör just nu följande.

Om huvudsignalen visar stopp så visar dvärgsignalen 2 lodräta vita.
Om huvudsignalen visar Kör, Kör40 eller Kör40, kort tågväg så visar dvärgsignalen 2 vågräta vita.
Om huvudsignalen visar stopp men du trycker på TAB och får meddelandet "Requesting to pass signal at danger accepted" så händer följande:
-om tåg finns på blocksträckan så visar dvärgsignalen snett vänster.
-om det är tomt på blocksträckan så visar dvärgsginalen lodrätt.

-Snett höger används inte just nu. Jag kollar om andra signalkombinationer är aktuella? Hur är det med huvud+dvärg-kombo som övervakar bangårdsinfarter, manuella växlar och specialfall eller udda besked?

ADDE 2022-02-09 04:46

Hej! Signalscriptet är i stort färdigt och jag söker efter betatestare. Gå in i mitt github och ladda ner signalpaketet. i TS så bocka i SummerADDE>SESignalsTest. Placera sedan ut SE SignalV2 H5 DV4 2L.

Signalen ska kunna ha med följande egenskaper:
i A-fältet så kan man skriva in siffror som ger signalen olika funktioner.
  • Skriver du in 1 så visar signalen stopp om nästa signal visar stopp.
  • Skriver du in 2 så är den länken endast växlingsväg. Huvudsignalen visar alltid rött men dvärgsignalen visar kör.
  • -Här undrar jag om AI-tåg passerar signalen som tänkt?
  • -Skriver du in 2 samt bockar i "Limited aspect" för den länken så är sträckan bortom helt obevakad och dvärgsignalen visar "Kontrollera växlar" för den tågvägen oavsett tågplacering och växellägen.
  • Skriver du in 3 så visar H5-signalen 3 gröna vid Kör 40.
  • Bockar du in "Limited aspect" så visar signalen alltid kör 40 istället för kör i denna tågväg.
  • Bockar du in "Approach control" så visar signalen kör 40 istället för kör om nästa signal visar stopp.

Ta gärna och testa och ge mig sedan feedback. Jag ska se om jag har tid och testa ordentligt själv med en testrutt och packa ihop en testversion för download, men man kan komma åt filerna på github direkt redan nu.

Testa också TAB-funktionen i olika lägen och se om du kan köra mot rött efteråt samt om dvärgsignalen visar "kör" eller "Hinder finns". samt skapa en scenario och kör mot rött och se om du får game over vid olika lägen.

Hgv 2022-02-09 12:20

Kul att du fortsätter jobba med signalerna! Själv har jag inte öppnat TS på många månader nu, jag tappade sugen att bygga när jag insåg att det tar 2-3 minuter att spara ändringar så fort man ändrar något spårrelaterat, och dessutom kraschar simulatorn frekvent när man bygger, även på en ny, snabb dator.

Om jag förstår rätt så har du fått till det så att samma H5-signal kan användas i alla situationer. Jättebra om det fungerar! Det borde också vara lätt att använda samma logik för andra huvudsignaler också (även huvuddvärgar).

Jag skapade ju olika signaler beroende på vilken signalbild man vill ha, alltså beroende på avstånd till nästa signal. Det fungerade men blir förstås ganska stökigt att hålla reda på alla olika varianter!

Ett störande problem som jag inte vet om du har lyckats lösa var ju att DV4-signalen fastnar i stopp när ett tåg har passerat, även när signalsträckan är fri (dvs när tåget har passerat nästa signal). Jag lyckades aldrig knäcka den nöten tyvärr! Men om du har fått till det så att det funkar med medgivandedvärgen (som är kopplad till huvudsignalen) så kanske det går att lösa även för fristående växlingsdvärgsignaler? Fast jag tror att grundproblemet var att DV4-signalerna inte kan skicka signalmeddelanden korrekt om det står en huvudsignal "i vägen", för huvudsignalen "suger upp" dessa meddelanden. Det problemet uppstår inte vid medgivandedvärg då den alltid står tillsammans med en huvudsignal. På samma sätt uppstår inte problemet med huvuddvärgsignalerna men däremot med växlingsdvärgarna.

Problemet är ju att det kryllar av fristående växlingsdvärgar vid större bangårdar exempelvis runt Stockholm så det är tråkigt när de inte fungerar ordentligt.

När det gäller AI-trafik så bryr den sig inte om signalbilder överhuvudtaget om jag har förstått rätt. Det enda AI tittar på är om nästa signalsträcka är fri så det borde inte vara något problem att huvudsignalen visar stopp.

ADDE 2022-02-09 17:09

Citat:

Ursprungligen postat av Hgv (Inlägg 321039)
Kul att du fortsätter jobba med signalerna! Själv har jag inte öppnat TS på många månader nu, jag tappade sugen att bygga när jag insåg att det tar 2-3 minuter att spara ändringar så fort man ändrar något spårrelaterat, och dessutom kraschar simulatorn frekvent när man bygger, även på en ny, snabb dator.

Ja, det kan vara jobbigt. Jag har t.ex. fortfarande inte fått Mälardalen att fungera för mig... :/ Jag tog också paus i några månader då jag startade ett helt nytt projekt. Det har väl haltat till så jag gick tillbaka hit så länge.

Citat:

Ursprungligen postat av Hgv (Inlägg 321039)
Om jag förstår rätt så har du fått till det så att samma H5-signal kan användas i alla situationer. Jättebra om det fungerar! Det borde också vara lätt att använda samma logik för andra huvudsignaler också (även huvuddvärgar).

Det är tanken ja. Att jag börjar med H5+DV4 är just för att jag ska kunna återanvända samma kod och skala ner samt anpassa detta för olika signalvarianter med eller utan medväxlingsdvärg.

Citat:

Ursprungligen postat av Hgv (Inlägg 321039)
Jag skapade ju olika signaler beroende på vilken signalbild man vill ha, alltså beroende på avstånd till nästa signal. Det fungerade men blir förstås ganska stökigt att hålla reda på alla olika varianter!

Sant! Jag såg ju att TS hade funktioner våra signaler inte stöds, så därför motiverade det mig att uppdatera koden.

Citat:

Ursprungligen postat av Hgv (Inlägg 321039)
Ett störande problem som jag inte vet om du har lyckats lösa var ju att DV4-signalen fastnar i stopp när ett tåg har passerat, även när signalsträckan är fri (dvs när tåget har passerat nästa signal). Jag lyckades aldrig knäcka den nöten tyvärr! Men om du har fått till det så att det funkar med medgivandedvärgen (som är kopplad till huvudsignalen) så kanske det går att lösa även för fristående växlingsdvärgsignaler? Fast jag tror att grundproblemet var att DV4-signalerna inte kan skicka signalmeddelanden korrekt om det står en huvudsignal "i vägen", för huvudsignalen "suger upp" dessa meddelanden. Det problemet uppstår inte vid medgivandedvärg då den alltid står tillsammans med en huvudsignal. På samma sätt uppstår inte problemet med huvuddvärgsignalerna men däremot med växlingsdvärgarna.

Problemet är ju att det kryllar av fristående växlingsdvärgar vid större bangårdar exempelvis runt Stockholm så det är tråkigt när de inte fungerar ordentligt.

Jag ska absolut kolla på detta. Det är tänkt att min kod ska funka på en fristående växlingsdvärg som kan visa en signalbild. Dock får jag kolla på de brittiska signalerna och se hur det fungerar med en blandning av huvud- och dvärgsignaler på en bangård.

Fokus liger just nu att se om H5+DV4 fungerar som tänkt. Det vore jobbigt om man hittade en bugg som ligger i samtliga signalvarianter. Då har jag flera scripts som behöver skrivas om.

Citat:

Ursprungligen postat av Hgv (Inlägg 321039)
När det gäller AI-trafik så bryr den sig inte om signalbilder överhuvudtaget om jag har förstått rätt. Det enda AI tittar på är om nästa signalsträcka är fri så det borde inte vara något problem att huvudsignalen visar stopp.

All right, vi får hoppas på det. Min kod är skrivet så 3 olika funktioner hanterar olika områden. STATE_GO osv. tar hand om signalens beteende i simulatorn och berättar för föregående signal vilken signalbild den ska visa.

För huvudsignalens signalbild använder jag ANIMSTATE_GO osv och för dvärgsignalens signalbild använder jag SHUNTSTATE_GO osv. På så vis kan signalen visa olika kombinationer och säga till föregående signal vad den ska visa på olika sätt.

Hgv 2022-02-10 16:19

Det låter som en lovande lösning för att få fristående växlingsdvärgar att fungera!

Jönköpingsbanan (med Stockholm) har säkert ett hundratal dvärgsignaler utplacerade, om inte fler. Så jag hoppas att det går att lösa utan att man behöver placera ut signalerna på nytt. Det borde gå att helt enkelt byta ut scriptet för DV4-signalen.

Totte 2022-02-10 16:42

Jag kollade mycket med Bergensbanens och Trollhattans signalsystem. Det var fel helt hållet och jag rättade till så att Trollhattan började fungera med RW64. Bergensbanen går inte på RW64 än och jag fortsätter forska länkar framöver.
Att Trollhattan löstes var länkfel i Göteborg:tumupp:.
Man kan inte ha så många växlar mellan signal och länk. Framförallt genom spårkors är det stopp där.
Jag kollade även Mälardalen och den har många felplacerade länkar.

ADDE 2022-02-11 19:52

Citat:

Ursprungligen postat av Totte (Inlägg 321044)
Jag kollade även Mälardalen och den har många felplacerade länkar.

Skulle du kunna fixa dem åt mig? Rutten fugnerar inte alls för mig och för flera andra. :/

Ta gärna bort alla svenska gatukorsningar om du hittar dessa.


Alla tider är GMT +2. Klockan är nu 23:40.

Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
© Svenska 3D-Tåg 2001-2009