SL Transport: Vad betyder de olika Departure-tillstånden?
Jag skulle behöva facit för att tolka Departure.State:
[ NOTEXPECTED, NOTCALLED, EXPECTED, CANCELLED, INHIBITED, ATSTOP, BOARDING, BOARDINGCLOSED, DEPARTED, PASSED, MISSED, REPLACED, ASSUMEDDEPARTED ]
Jag försöker till en början att tolka vilka som innebär "visa ej avgången" och vilka som innebär "inställd". Använder hittills NOTEXPECTED och CANCELLED respektive (helt utifrån motsvarande beskrivning i Journey.State, så bara en gissning). Många av dessa tillstånd känns tvetydiga utan beskrivning (praktiskt taget alla).
[ NOTEXPECTED, NOTCALLED, EXPECTED, CANCELLED, INHIBITED, ATSTOP, BOARDING, BOARDINGCLOSED, DEPARTED, PASSED, MISSED, REPLACED, ASSUMEDDEPARTED ]
Jag försöker till en början att tolka vilka som innebär "visa ej avgången" och vilka som innebär "inställd". Använder hittills NOTEXPECTED och CANCELLED respektive (helt utifrån motsvarande beskrivning i Journey.State, så bara en gissning). Många av dessa tillstånd känns tvetydiga utan beskrivning (praktiskt taget alla).
Följ inlägget
2
följare
För tydlighetens skull kopierar jag den dokumentationen som du refererar till.
Anledningen till att listan är så långt är för att den kommer från ROI-specifikationen (https://www.noptis.com/downloads/) sektion 3.2.3. Det är alltså en lista på allt som är tekniskt sätt möjligt inom bakomliggande system, men det betyder inte att alla förekommer.I den här diagrammen ser man hur livscykel kan variera. Egentligen är det bara cancelled, not run, och aborted som verkligen visar en viktig avvikelse när man ska visa data på en avgångstavla.
Jag skulle hantera allt som "vanligt", förutom de specialfall som man kan hantera korrekt som CANCELLED, ABORTED och NOT RUN.
Hoppas detta hjälper.
Hälsningar,
Bert
{
"destination": "Farsta strand",
"direction_code": 2,
"direction": "Farsta strand",
"state": "CANCELLED",
"display": "21:56",
"scheduled": "2024-03-19T21:56:15",
"expected": "2024-03-19T21:58:40",
"journey": {
"id": 2024031980072,
"state": "NORMALPROGRESS",
"prediction_state": "NORMAL"
},
"stop_area": {
"id": 1051,
"name": "T-Centralen",
"type": "METROSTN"
},
"stop_point": {
"id": 1052,
"name": "T-Centralen",
"designation": "4"
},
"line": {
"id": 18,
"designation": "18",
"transport_mode": "METRO",
"group_of_lines": "Tunnelbanans gröna linje"
},
"deviations": [
{
"importance_level": 7,
"consequence": "CANCELLED",
"message": "Inställd"
}
]
}
Hur kommer det sig att det både finns en deviation "CANCELLED" och att departure.state är "CANCELLED" men departure.journey.state är "NORMALPROGRESS"? Bör inte rimligtvis den senare också vara "CANCELLED"? Nu finns det tre fält (departure.state, departure.journey.state, departure.deviations) som kan indikera på att den är inställd, men det är ju helt hopplöst för oss utvecklare att veta vad vi ska presentera då det är ganska bristfällig dokumentation på hur dessa kan skilja sig och det är ju inte bättre att fälten uppenbarligen kan vara motstridiga.
Jag tycker inte det känns orimligt att en avgång kan vara inställd i en resa som inte är inställd, men jag skulle likt dig inte kalla det för "normal progress" (i avsaknad av någon som helst beskrivning av "normal progress").
Återigen: vad betyder de olika statusarna? Ingen vet...?
Hej Ano,
Ber om ursäkt för sent svar, jag blandade ihop journey state och departure state.
Här finns samma diagram för departure och arrival, från sektion 3.3.1 och 3.3.2 i Noptis ROI specen:
Angående inställda delsträckor, så kan en avgång vara inställd medan delsträckor före och efter den avgången trafikeras som vanligt. Till exempel när en tunnelbanestation är stängd, när ett tåg vänder tidigare än planerat, eller när pendeltåget stannar vid Stockholm C istället för Stockholm City och Odenplan.
Angående Normalprogress etc skulle jag inte värdesätta den för mycket. Som tidigare sagt behöver bakomliggande systemet inte ha stöd för dessa, utan det kan vara så att den alltid är NormalProgress så länge att fordonet är i tjänst. På samma sätt kan det vara att Assumed departed eller Missed aldrig används, så det är bäst att man hanterar allt som "normalt" förutom de fall man kan hantera, tex cancelled, expected, at stop och departed.
Om turen är inställd får man utgå ifrån att samtliga avgångar är inställd, om turen inte är inställd och avgången är inställd är det nog en delsträcka som är inställd.
Själv har jag inte mycket mer insyn i hur API:erna fungerar än det som vi har lagt ut på Trafiklab och här, så en stor del av detta är mer branschkunskap än specifik dokumentation för detta API. Hoppas att det hjälper dock.
Hälsningar,
Bert
Jag ser inte Inhibited, Boarding, Boarding Closed i diagrammen – jag antar att de är undertillstånd till At Stop?
Angående att behandla tillstånd som kanske inte används som "normala" så känns det som att bädda för fel. Det rimliga är väl ändå att behandla alla tillstånd korrekt – speciellt när man inte kan säga säkert om de används eller ej – och därefter kunna vara bekväm med att det kvittar ifall vissa undersystem (tunnelbana t.ex.) använder dem eller ej.
Jag kan hantera alla tillstånd, så länge jag vet semantiken (och utan den kan jag inte hantera något tillstånd). Till exempel ser "passed" i diagrammet ut att betyda att färdmedlet passerade hållplatsen, och det vore väl konstigt att visa en sådan avgång som om den vore normal?
Gör rätt och glöm bort > få en smula info åt gången och släppa uppdateringar om och om igen.