Svenska 3D-Tåg - Forum  
 

Om det här är ditt första besök, se till att gå till vår FAQ (finns även länk till FAQ i navigeringsmenyn ovan). Du kan behöva att registrera dig innan du kan posta (finns även en länk till registrering i navigeringsmenyn ovan). För att titta på inlägg, välj det forum som du vill besöka från de som är listade nedan.

Gå tillbaka   Svenska 3D-Tåg - Forum > N3V Trainz > Scenarios och scripts

Svara
 
Ämnesverktyg Visningsalternativ
Gammal 2016-05-15, 16:49   #1
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Det verkar inte som att felen är kopplade till varandra i alla fall.

Det första felet är, om jag förstått vissa spekulationer på Trainz forum
rätt, att Trainz tycker att scriptet tagit för lång tid på sig att köra.
Låter väldigt skumt i mina öron då det är en helt egen tråd som körs
och kan avbrytas när som helst.
Låter rimligt. Det första felet dök upp i TANE och är inget som jag har stött på i gamla TS2010.
Det kan ju röra sig om en ny kontroll i TANE:s underliggande system som visar sig på detta sätt.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Men förstår jag dig rätt om detta felet bara dyker upp en gång när du startar och aldrig igen efter det, även om du köra omkring, lägger om växlar osv?
Korrekt.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Det är i alla fall kopplat till signaldelen av scriptet och uppkommer när scriptet försöker leta efter nästa blocksignal.
Det har inte med några referensloopar att göra i alla fall, då skulle du fått en lång upprepning av samma fel i den detaljerade felrapporten.
Det låter också rimligt.
Men det är ändå lite konstigt för banan saknar blocksignaler. Har det någon betydelse?

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Jag misstänker dock att detta beror på att du har en spårloop någonstans på
din bana, så att sökningen efter nästa signal fastnar i loopen och kör runt, runt, runt.
Strukturen är ganska enkel med en dubbelspårig huvudlinje och
några enkelspåriga sidolinjer som slutar i ändstationer.
Jag har experimenterat med vändslingor i slutet på dessa linjer men
de är numera bortplockade.
Det blir ingen skillnad i beteendet med och utan dessa slingor. Skumt.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Verkar signalerna fortfarande fungera och uppdatera sig? För antingen borde
du få detta fel om och om igen, eller så borde signalerna sluta att fungera helt om jag förstår scriptet rätt!
Det första felet visar sig bara vid starten.
Därefter fungerar signalerna, i alla fall så långt det går att se när man kör på banan.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Det andra felet:
Verkar bero på scriptfunktionaliteten som kopplar dubbla växlar.
Meddelandekön innehåller massor med meddelanden ifrån växlar som har lagts om (toggled)
som scriptet inte hunnit med att kontrollera om de är kopplade med någon annan växel.
Det konstiga är att alla dessa växlar av någon anledning måste ha lagts om precis vid sessionens startande för att generera alla dessa meddelanden.
Dessutom förekommer samma växlar om och om igen i listan vilket är märkligt.
En hypotes:
Jag misstänker att detta kan ha att göra med att scriptet behöver
analyserar banan i uppstarten av sessionen.
Om skriptet behöver bygga upp en intern datastruktur som beskriver
banans layout så behöver scriptet söka igenom banan med TrackSearch
och notera var olika objekt som signaler och växlar finns.
Varje växel blir då ett vägval som leder till en ny del av banan.
Då behöver scriptet lägg om växlarna i tur och ordning och söka
igenom varje del för sig.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Du verkar ha många a och b-växlar, men det dyker inte upp några c och d-växlar i meddelandekön.
För det måste väl vara i dubbla engelsmän som du använder sådana växelkopplingar och då borde du väl även ha massor av c och d-växlar?
Flertalet av dessa a- och b-växlar är två enkla kopplade växlar till
exempel vid övergång från det ena spåret till det andra på en
dubbelspårig sträcka eller vid infarter till stationer.
Det är bekvämt att bara behöva lägga om den ena växeln trots att båda
läggas om samtidigt. Det finns några få engelsmän så det blir inte många
c- och d-växlar.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Får jag fråga hur stor den här banan är? Hur många stationer, signaler och kopplade växlar handlar det om på ett ungefär?
50 km huvudlinje och ett tiotal stationer varav några är lite större .
Jag återkommer om antalet signaler och kopplade växlar. Måste räkna lite.

/Magnus
MegaCastor besöker inte forumet just nu  
Svara med citat
Gammal 2016-05-16, 21:30   #2
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Jag återkommer om antalet signaler och kopplade växlar. Måste räkna lite.
Räknat färdigt:
463 signalobjekt (masters, signal markers, klarerare)
474 växlar varav 16 ingår i 4 dubbla korsningsväxlar (a,b,c,d) och 134 ingår i kopplade växelpar (a,b).

/Magnus
MegaCastor besöker inte forumet just nu   Svara med citat
Gammal 2016-05-18, 23:26   #3
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

En uppdatering från felsökningen:

Som ett experiment ersatte jag alla länkade växlar med vanlig växlar.
Inga a,b,c,d i slutet på växelnamnen alltså.

Resultatet blev oförändrat. Felen finns kvar vid starten av sessionen.
Det verkar inte som om länkningen av växlar påverkar detta.

/Magnus
MegaCastor besöker inte forumet just nu   Svara med citat
Gammal 2016-05-20, 23:46   #4
korvtiger
Medlem
 
Reg.datum: Jan 2008
Ort: Uppland, Sverige
Inlägg: 2 728
Standard

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Låter rimligt. Det första felet dök upp i TANE och är inget som jag har stött på i gamla TS2010.
Det kan ju röra sig om en ny kontroll i TANE:s underliggande system som visar sig på detta sätt.
Uppstår Message overflow-felet i TS2010?
Sökningen skulle som du säger mycket väl kunna vara någon begränsning de lagt till i TANE av någon anledning.

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Det låter också rimligt.
Men det är ändå lite konstigt för banan saknar blocksignaler. Har det någon betydelse?
Det låter lite märkligt, vet faktiskt inte om det äldre systemet stödjer någon form av blocksignaler, men antagligen. Tror tillochmed att man hade semaforer som blocksignaler längs stambanorna utanför Stockholm, även om det fungerade på ett lite annorlunda sätt på den tiden.
Har kikat på koden och hittat en märklig sak. Svenolov har (som alla vettiga programmerare borde) lagt till en begränsning som gör att sökningen aldrig överstiger ett vist maxavstånd. Detta avstånd är valt till 10km. Detta gör det hela väldigt skumt, för alla spårloopar borde bara resultera i att sökningen terminerar, men av någon anledning pågår sökningen så länge att TANE får nog.
Det skumma är att anropet till sökningen verkar göras för varje signal en gång per sekund, vilket borde innebära att felet uppstår på nytt varje sekund, eller att felet skulle krascha hela signalbiblioteket, så att ingen signal fungerar. Inget av detta inträffar vilket är märkligt.

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
En hypotes:
Jag misstänker att detta kan ha att göra med att scriptet behöver
analyserar banan i uppstarten av sessionen.
Om skriptet behöver bygga upp en intern datastruktur som beskriver
banans layout så behöver scriptet söka igenom banan med TrackSearch
och notera var olika objekt som signaler och växlar finns.
Varje växel blir då ett vägval som leder till en ny del av banan.
Då behöver scriptet lägg om växlarna i tur och ordning och söka
igenom varje del för sig.
En ganska vettig hypotes, men för att söka av spåret behöver inte växlarna faktiskt läggas om, utan scriptet borde själv klara av att hitta vidare på de två spåren. Men jag är ganska säker på att scriptet i början analyserar tågvägar på varje station för att hitta genomfartstågvägar, så det skulle kunna har något med det att göra. Men det borde vara så att den nöjer sig med att använda den lagda tågvägen från signal A till B som genomfartsväg. Ska kika och se om jag kan hitta någon sådan del av koden.

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Flertalet av dessa a- och b-växlar är två enkla kopplade växlar till
exempel vid övergång från det ena spåret till det andra på en
dubbelspårig sträcka eller vid infarter till stationer.
Det är bekvämt att bara behöva lägga om den ena växeln trots att båda
läggas om samtidigt. Det finns några få engelsmän så det blir inte många
c- och d-växlar.
Låter vettigt. Trodde att det var en enkelspårig bana med tanke på att du använde det gamla signalsystemet.


Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Räknat färdigt:
463 signalobjekt (masters, signal markers, klarerare)
474 växlar varav 16 ingår i 4 dubbla korsningsväxlar (a,b,c,d) och 134 ingår i kopplade växelpar (a,b).
/Magnus
Det är ganska många signaler, men det verkar ju fungera fint när allt väl går igång! Det är också en väldigt hög andel kopplade växlar, men det hjälpte ju inte att ta bort kopplingen, så det är ju inte där felet ligger heller.

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
En uppdatering från felsökningen:

Som ett experiment ersatte jag alla länkade växlar med vanlig växlar.
Inga a,b,c,d i slutet på växelnamnen alltså.

Resultatet blev oförändrat. Felen finns kvar vid starten av sessionen.
Det verkar inte som om länkningen av växlar påverkar detta.

/Magnus
Bytte du nummer på dem, så att de matchade udda/jämn riktning eller tog du bara bort a/b? Skulle kunna vara att scriptet blir förvirrat om det försöker hitta tågvägar och växlarna kommer i fel ordning.

Ett annan teori:
Har du några speciella rules som lägger om växlar i början av sessionen som skulle kunna vara inblandade?
__________________
-k-
korvtiger besöker inte forumet just nu   Svara med citat
Gammal 2016-05-22, 10:03   #5
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Uppstår Message overflow-felet i TS2010?
Sökningen skulle som du säger mycket väl kunna vara någon begränsning de lagt till i TANE av någon anledning.
Felet uppstår i TS2010 också.

Lite bakgrund:

Banan började byggas i TS2010 med det moderna signalsystemet.
Problemet med message overflow i början av sessionen uppstod
även där. Tendensen var att felet blev värre ju fler signaler jag satte upp.
Först en enstaka rad i felrutan, sedan flera med växande antal signaler.

Vad värre var, problemet tycks nästan växa exponentiellt så att det vid
en viss punkt "exploderar" och fyller felrutan med liknande message overflow-
meddelanden. Då hänger hela systemet upp till 10 sek i början av sessionen
innan man kan titta på felmeddelandena. Sedan kan man köra tåg och då
tycks signalerna i de flesta fall fungera, även om jag ibland har sett
skumma beteenden hos några enskilda signaler.

Några bilder som visar felutskrifterna:

Översikt

2010-alla.jpg

Början på detaljerna för första raden

2010-1.jpg

Slutet på detaljerna för första raden

2010-2.jpg

Och så fortsätter det...

Edit: Jag har också 76 MB JetLog.txt om det skulle vara av intresse.

Samma signal tycks ge upphov till en massa message overflows.
Det var ungefär i detta läge som jag gick över till TANE...

/Magnus

Senast redigerad av MegaCastor den 2016-05-22 klockan 10:12. Anledning: Hittade en loggfil som kanske är intressant.
MegaCastor besöker inte forumet just nu   Svara med citat
Gammal 2016-05-25, 23:40   #6
korvtiger
Medlem
 
Reg.datum: Jan 2008
Ort: Uppland, Sverige
Inlägg: 2 728
Standard

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Felet uppstår i TS2010 också.

Lite bakgrund:

Banan började byggas i TS2010 med det moderna signalsystemet.
Problemet med message overflow i början av sessionen uppstod
även där. Tendensen var att felet blev värre ju fler signaler jag satte upp.
Först en enstaka rad i felrutan, sedan flera med växande antal signaler.

Vad värre var, problemet tycks nästan växa exponentiellt så att det vid
en viss punkt "exploderar" och fyller felrutan med liknande message overflow-
meddelanden. Då hänger hela systemet upp till 10 sek i början av sessionen
innan man kan titta på felmeddelandena. Sedan kan man köra tåg och då
tycks signalerna i de flesta fall fungera, även om jag ibland har sett
skumma beteenden hos några enskilda signaler.
Men om du för över denna banan i TANE, får du exakt samma fel då? Har denna bana flera signaler än den ifrån TANE som du visade växelfelmeddelandena ifrån?

Det här felet är ju inte samma som det andra, utan ett helt annat. För i det här fallet så overflowas alla signaler på banans message queues. Det verkar som att alla signaler i början av sessionen ungefär samtidigt skickar ett broadcast-meddelande (alltså ett meddelande som alla som lyssnar på signalen kan fånga upp) och talar om att deras signal state har ändrats. (Antagligen för att de alla initialiseras på samma gång och då sätter sitt signal state) Eftersom alla signaler också verkar lyssna på alla andra signaler på banan så kommer alla signalers message queues att innehålla samma meddelanden. En specifik signal (Hoc 52) råkar vara den som får samtliga signalers meddelandeköer att overflowas, därav att det namnet förekommer på alla rader i felmeddelandeöversikten som du visar i första bilden.

Orsaken till det här är att det är fler signaler på banan än vad Trainz klarar av att hantera. Särskilt gamla TS2010 som inte är flertrådad har en tråd där alla signaler initialiseras och får meddelandeköerna att overflowas för att varje signal inte har tid att ta hand om meddelandena. Potentiellt så skulle TANE kunna klara av detta för att den är bättre multitrådad och kan låta signalerna ta hand om meddelandena samtidigt som nya signaler initialiseras.

Det borde gå att få reda på hur många signaler som är maxgränsen. Om du tar valfri signals detaljerade lista och räknar hur många rader med meddelanden som redan är i kön (alltså antal rader som börjar med "router"), så kommer du att få det maximal antalet signaler som går att ha i TS2010. Min gissning är att det är 256.

Själva meddelandet "Signal, StateChanged" är ett standardmeddelande inbyggt i Trainz som det verkar, så jag tror inte att vi kan påverka det på något sätt.
En potentiell lösning skulle vara att leta reda på den loop som initialiserar alla signaler på banan och se till att den bara initialiserar ett 10- eller 100-tal signaler åt gången, och efter varje grupp med signaler tar en kort paus för att lämna över CPU:n till alla signaltrådar så de kan få tid att uppdatera sig och gå igenom meddelandeköerna. Men det förutsätter att detta görs i Svenolovs script och inte är Trainz egna, underliggande signalscript.

Citat:
Ursprungligen postat av MegaCastor Visa inlägg
Edit: Jag har också 76 MB JetLog.txt om det skulle vara av intresse.
Naaae, men tack för erbjudandet! Har nog att göra så det räcker i alla fall!
__________________
-k-
korvtiger besöker inte forumet just nu   Svara med citat
Gammal 2016-05-26, 09:47   #7
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Naaae, men tack för erbjudandet! Har nog att göra så det räcker i alla fall!
Trodde nog det men det skadar ju inte att fråga

Hur som helst, tack för informationen. Det finns en hel del att begrunda
och undersöka men jag hinner nog inte med det de närmaste dagarna.

/Magnus
MegaCastor besöker inte forumet just nu   Svara med citat
Gammal 2016-05-22, 10:08   #8
MegaCastor
Medlem
 
Reg.datum: May 2011
Ort: Linköping
Inlägg: 32
Standard

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Bytte du nummer på dem, så att de matchade udda/jämn riktning eller tog du bara bort a/b? Skulle kunna vara att scriptet blir förvirrat om det försöker hitta tågvägar och växlarna kommer i fel ordning.
Jag bytte nummer för att följa udda-jämn-principen.

Citat:
Ursprungligen postat av korvtiger Visa inlägg
Ett annan teori:
Har du några speciella rules som lägger om växlar i början av sessionen som skulle kunna vara inblandade?
Nej, inget sådant heller.

/Magnus
MegaCastor besöker inte forumet just nu   Svara med citat
Svara

Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av
Forumhopp



Alla tider är GMT +2. Klockan är nu 11:16.


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