78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# crystal-orb
|
|
|
|
> Ta en titt inn i krystallkulen og se om det går en buss i dag.
|
|
|
|
AtB-infoskjerm til å visepå TV-skjermen på terminalrommet.
|
|
|
|
## Få tak i avgangstider
|
|
|
|
Det ser ut til at API-et [mpolden](https://github.com/mpolden/atb) har laget er tilstrekkelig
|
|
for å få tak i alle busser og avgangstider for et gitt stoppested (stopPlace).
|
|
API-et hans er en wrapper for Entur sitt API som er litt tyngre skyts en det hackere har behov for,
|
|
derav hvorfor han lagde et (tror jeg).
|
|
|
|
### Informasjon fra mpolden sitt API
|
|
|
|
Dersom man gir https://mpolden.no/atb/v2/departures/ en høvelig kode for stoppested, gir den tilbake
|
|
disse feltene:
|
|
|
|
- `line`
|
|
- Dette er linje-nummeret til bussen
|
|
- `scheduledDepartureTime`
|
|
- Dette er den forventede avgangstiden til bussen, basert på Entur sitt felt `expectedDepartureTime`
|
|
- I tilleg finnes `aimedDepartureTime` og `actualDepartureTime` hos Entur,
|
|
som er hva bussen er satt opp til etter planen og når bussen faktisk dro.
|
|
- Av disse er naturligvis `expectedDepartureTime` det viktigste feltet for oss
|
|
- `destination`
|
|
- Hvor bussen skal til slutt, det er dette som står foran på bussen
|
|
- Basert på `destinationDisplay.frontText` hos Entur
|
|
- `isRealTimeData`
|
|
- Hvorvidt tidspunktet er oppdatert/basert på sanntidsdata
|
|
- Gir en indikasjon på hvor stabil informasjonen er
|
|
- Hvis det er sanntid skal man ta det med en klype salt
|
|
- Hvis det ikke er sanntid er det ikke vits å finne frem saltbøssen engang
|
|
- `isGoingTowardsCentrum`
|
|
- Basert på `journeyPattern.directionType` hos Entur
|
|
- Busser går stort sett enten inn mot Midtbyen eller ut,
|
|
dette er kjekt å vite ettersom man ofte vet hvilken retning man skal herfra
|
|
|
|
### Koder for stoppested
|
|
|
|
Man kan finne stoppestedskoden på url https://stoppested.entur.org/ .
|
|
De mest relevante kodene for oss på PVV er:
|
|
|
|
- Gløshaugen: 44085
|
|
- Høgskoleringen: 42029
|
|
- Hesthagen: 41620
|
|
|
|
## Funksjonalitet
|
|
|
|
Vi har på dette tidspunktet ingen anelse hvilken funksjonalitet dette programmet skal ha,
|
|
men noen ideer har vi allerede.
|
|
|
|
- Mulighet for å vise de kommende avgangstidene på Georg/Grzegorz
|
|
- Mer generelt gjennom `mpv` på en eller annen måte
|
|
- Gjerne med kule farger eller et nice layout
|
|
- Hadde kanskje vært kult med et cli hvor man kjapt kan sjekke de neste bussene som drar
|
|
- Kule farger er også nice her
|
|
- En nettside eller en annen visualiseringsmetode
|
|
- Nettopp for å kunne støtte et brukervennlig layout av informasjonen
|
|
|
|
## Hvordan kjøre programmet slik det er
|
|
|
|
Akkurat nå funker `crystal_orb.py` omtrent slik:
|
|
|
|
- Man kjører programmet med `python crystal_orb.py <stoppested>`
|
|
- Stoppested kan være gløshaugen, høgskoleringen eller hesthagen
|
|
- `crystal orb` får avgangsinformasjon fra `mpolden` sitt API
|
|
- `crystal orb` lager en liste av all avgangsinformasjonen den fikk
|
|
- `crystal orb` skriver teksten på en kjørende mpv-sesjon
|
|
- Merk at `mpv` må ha satt opp en ipc socket som `crystal orb` skriver til
|
|
- Hvis denne socket-en ikke finnes, skrives listen til stdout
|
|
|
|
## Forbedringer
|
|
|
|
- Legge til `aimedDepartureTime` slik at vi kan se hva avviket er
|
|
- Av og til kjører bussen inn igjen etterslepet, dermed kan det være nyttig
|
|
-
|