Aanpassen van ini bestanden voor eigen baan omgeving - rwmodeltrain/departure-board GitHub Wiki

INI-Bestanden

Departure-board maakt gebruik van INI-bestanden om baan- en applicatieinformatie uit te lezen en op te slaan. De Baaninformatie bestaat uit stations- trein en advertentie informatie. De applicatieinformatie bestaat o.a. uit de lokaties van de verschillende directories. De bestanden bevinden zich in de directories 2 en 4 (zie onderstaande figuur).

  • Lokatie 2: Bestanden met de baaninformatie
  • Lokatie 4: INI bestanden met informatie om de applicatie goed te laten functioneren

Lokatie 2: INI bestanden met baaninformatie (op PC)

Altijd aanwezig:

  • Trackinfo.ini

Daarnaast is er één INI bestand per aanwezig station. Het bestand heeft exact dezelfde naam als het station zoals opgenomen in Trackinfo.ini. In het geval van de Epinal-baan zijn dit:

  • Epinal.ini
  • Remiremont.ini
  • Freize.ini

De opbouw van deze bestanden is steeds hetzelfde, in deze wiki wordt in het algemeen verwezen naar deze bestanden als Station.ini. Het wijzigen van de bestanden kan met een programma als Notepad++, deze gaat correct om met regeleinden. Voor de Mac kan bijvoorbeeld TextWrangler gebruikt worden. Beide programma's zijn gratis te downloaden.

Trackinfo.ini

Het Trackinfo.ini bestand bevat de basisinformatie over de modelspoorbaan, naast algemene informatie ook de namen van de stations, de treintypes en de route informatie (de berichten van Koploper). Het bestand is opgedeeld in 4 blokken

[General]
[Station]
[TrainType]
[Routeinfo]

Hieronder een uitwerking van de verschillende blokken:

Blok 1: [General]

[General]
stationcount: 3
routeinfocount: 50
traintypecount: 4
  • stationcount: Het aantal stations in gebruik
  • routeinfocount: Het aantal verschillende berichten dat verwerkt moet worden door departure-board
  • traintypecount: Het aantal verschillende soorten treinen, onderscheid wordt gemaakt vanwege het gebruik van verschillende logo's. In het geval van de Epinal-baan gaat het om het TGV logo en het TER logo.

Blok 2: [Station]

Blok 2 bevat de namen van de stations:

[Station1]
id: 1
name: Epinal

Ieder station heeft een volgnummer en een ID. Deze zijn meestal gelijk. Ieder station heeft zijn eigen 'blokje' in het mini-bestand, waarbij het blokje tussen blokhaken de tekst Station heeft staan plus een volgnummer. Dus bijvoorbeeld zoals bovenstaand, [Station1]. Geen spaties achter Station, gewoon doortypen.

  • id: Een uniek nummer (meestal gelijk aan het volgnummer)
  • name: De naam van het station. Wordt gebruikt op het vertrektijdenbord én om de stationsinformatie in te lezen. De stationsinformatie staat in een apart INI bestand en heeft de naam van het station + .INI. Dus in dit geval wordt dit Epinal.ini.

Blok 3: [TrainType]

Blok 3 bevat informatie over de verschillende treintypes, voor het gebruik van verschillende logo's:

[TrainType1]
id: 1
type: TER
logofile: ter_klein.png
logoxpos: 11

Ieder treintype krijgt zijn eigen blokje, net als bij de stations. Het blokje begint met [TrainTypex], waarin x het volgnummer is.

  • id: Een uniek nummer voor het treintype
  • type: Een code voor het treintype, wordt naar gerefereerd in Station.ini.
  • logofile: Het logo-bestand dat gebruikt wordt op het scherm. Dit is een heel klein bestand, veelal in PNG formaat zodat de achtergrond transparant blijft. De grootte van de gebruikte logo's op de Epinal-baan is ongeveer 19x9 pixels. Een hoogte groter dan 9 pixels zorgt voor verstoring. Het logbestand moet worden geplaatst in de map met logo's op de RPi (logopath).
  • logoxpos: Het logo moet gepositioneerd worden op de x-as van het scherm, per logo kan het nodig zijn dat een kleine aanpassing nodig is. Begin met een waarde van 7 en kijk of het logo naar links of naar rechts moet.

Blok 4: [Routeinfo]

In dit blok is de routeinformatie over de baan opgenomen. Ieder bericht van Koploper dat door departure-board moet worden geïnterpreteerd, is hier gedefinieerd. We maken onderscheid in berichten die zijn bedoeld voor treinen die arriveren en treinen die vertrekken. Een voorbeeld van een blokje voor een aankomstbericht:

[Routeinfo5]
id: 5
type: arrival
name: Epinal -> Freize R5 S1
koplopermessage: msg_r5_e->f_s1_a
audiofile: audio_e-f_s1.ogg
station: 1
trainid: 5
rail: 1

Ieder Routeinfoblokje heeft zijn eigen volgnummer, in dit geval [Routeinfo5]. Daarnaast:

  • id: Een uniek nummer voor het bericht, is gelijk aan het volgnummer
  • type: Aankomst (arrival) of Vertrek (departure)
  • name: Een naam voor het bericht, wordt verder niet gebruikt en is vooral ter herkenning. Het is raadzaam om een routenummer op te nemen en om welk spoor het gaat. In dit geval is het de trein die vanuit Epinal naar Freize gaat, het is koploperroute nr. 5 en hij komt binnen op spoor 1
  • koplopermessage: Het bericht uit het logbestand waarop departure-board moet reageren. Het bestaat altijd uit 17 tekens en wordt voorafgegaan door msg. Elders is aangegeven hoe dit bericht verder logisch op te bouwen.
  • audiofile: Het bestand dat wordt afgespeeld op het moment dat de trein binnen gaat komen bij type 'arrival', of als de trein vertrekt in het geval van het type departure. Dit kan een omroeperbestand zijn, maar kan ook bijvoorbeeld het geluid van een hoorn zijn in het geval van een goederentrein. Het audiobestand dient als OGG bestand te zijn opgenomen in de directory audiofiles (zie elders)
  • station: Het unieke nummer (ID) van het station waar dit bericht betrekking op heeft. In dit geval is dit station ID 1, dit is Epinal
  • trainid: Het unieke nummer van de trein die binnenkomt of vertrekt. De treinen zijn gedefinieerd in het bestand Station.ini, in het geval van het station Epinal gaat het dan om Epinal.ini
  • rail: Het spoornummer waar de trein op binnenkomt. Bij vertrek is dit '-', dan is een spoornummer niet relevant.

Station.ini

Ieder station heeft zijn eigen INI bestand, de naam van het bestand is gelijk aan de naam van het station zoals opgenomen in Trackinfo.ini. De voorbeelden hieronder komen uit het bestand Epinal.ini. Het bestand bestaat uit 3 blokken:

[General]
[Train]
[Ad]

Hieronder een uitwerking van de verschillende blokken:

Blok 1: [General]

[General]
traincount: 3
adcount: 7
activestation: Epinal
  • traincount: Het aantal treinen dat binnen kan komen op het station, het maakt niet uit op welk spoor
  • adcount: Het aantal advertenties dat op het vertrektijdenbord getoond wordt
  • active station: Is waarschijnlijk overbodig (needs revision)

Blok 2: [Train]

Iedere trein krijgt zijn eigen volgnummer in de naam van het blok. In het voorbeeld hieronder gaat het om [Train1]. Het [Train] blokje bevat de informatie die op het vertrektijdenbord getoond wordt.

[Train1]
inid = 1
id = 3
da = D
type = TER
destination = Freize TER
rail = -
position = 6
status = On the way
  • inid: Is een ID gelijk aan het volgnummer. Tijdens het ontwikkelen van departure-board bleek een uniek nummer nodig te zijn anders dan het id. Als bij inid hetzelfde nummer wordt opgenomen als bij het volgnummer van het blokje, komt het goed
  • id: Een uniek ID van de trein, wordt door alle stations gebruikt. (needs revision)
  • da: is altijd 'D' voor Departure (vertrek) (needs revision)
  • type: Treintype, zoals opgenomen in type onder [Traintype] in het bestand Trackinfo.ini
  • destination: Bestemming van de trein zoals aangegeven moet worden op het vertrektijdenbord
  • rail: Is een '-' als de trein onderweg is, is het spoornummer als de trein daar stil staat. Het is raadzaam te beginnen met lege sporen, dus met een '-'. Bij het afsluiten van departure-board wordt deze regel bijgewerkt met de actuele stationsinformatie.
  • position: Positie van de trein op het scherm. Positie 6 is regelnummer 6. Er kan slechts één trein op een regelnummer worden geplaatst. Bij het afsluiten van departure-board wordt deze regel bijgewerkt met de actuele stationsinformatie.
  • status: Is 'On the way' of 'Incoming'. Bij de start met een lege sporen is dit 'On the way'. Bij het afsluiten van departure-board wordt deze regel bijgewerkt met de actuele stationsinformatie.

Blok 3: [Ad]

Op het vertrektijdenbord worden, wanneer er geen treinactiviteit is, advertenties weergegeven. In deze blokjes zijn de advertenties opgenomen. Iedere advertentie krijgt zijn eigen volgnummer in de naam van het blok. In het voorbeeld hieronder gaat het om [Ad1]:

[Ad1]
id = 1
type = JPG
position = 1
active = False
filename = pepsi.jpg
  • id: Een uniek nummer voor de advertentie (voor dit station).
  • type: is JPG of MP4. Het gaat om de onderverdeling tussen plaatjes (JPG of PNG) en videobestanden (MPG). Tijdens het ontwikkelen bleek dat MP4 bestanden niet door departure-board kunnen worden afgespeeld en dat de video's moesten worden omgezet naar MPEG1 formaat. Zie daarvoor elders in de wiki. Uit historie is het nog steeds MP4 als type (needs revision)
  • position: De positie in de 'afspeellijst'. Bepaalt de volgorde van afspelen.
  • active: is True of False, er is maar 1 advertentie op het station tegelijk True.
  • filename: Bestandsnaam van de reclame, bij type JPG kan dit een JPG of PNG bestand zijn, bij type MP4 moet het een MPG bestand zijn.

Lokatie 4: INI-Bestanden met applicatie-informatie (op RPi)

De lokatie van de Windows share is opgenomen in train.sh, hierin wordt een virtuele koppeling gemaakt naar de Koploper PC. Op de pagina voor het installeren/aanpassen van de RPi is dit reeds besproken. Voor departure-board is deze share na opstarten bekend als /mnt/koploper/.

appinit.ini

Dit bestand ziet er in aanvang als volgt uit:

[General]
apppath = /mnt/koploper/appfiles/
appname = departure-board.py
  • apppath: Lokatie waar departure-board.py te vinden is. Als de Windows-share de naam Koploper heeft hoeft hier niets aan veranderd te worden. Heet de share anders, pas de regel dan aan.
  • appname: Naam van het hoofdscript, nl departure-board. Deze zal niet snel wijzigen. Dit script staat in de directory zoals aangegeven bij apppath.

departure-board.ini

[General]
inipath: /mnt/koploper/inifiles/
adpath: adfiles/
audiopath: audiofiles/
logopath: logofiles/
currentstation: Epinal
msgvolume: 5
usetft: True
useRpi: True
enableAds: True
  • ini path: De verwijzing naar de directory op de Windows PC waar de ini-bestanden staan. Als deze handleiding is gevolgd heet deze directory inifiles en is een aanpassing niet nodig.
  • adpath: De directory waar de JPG's en MPG bestanden te vinden zijn, benodigd voor de verschillende reclames.
  • audiopath: De directory waar de omroeperbestanden te vinden zijn, in OGG formaat.
  • logopath: De directory waar de logo's te vinden zijn die op het scherm gebruikt worden (op de Epinal baan zijn dit het SNCF logo, het TGV logo en het TER logo.
  • currentstation: De naam van het station dat bij het starten van de RPi zichtbaar wordt. De naam van het station moet bekend zijn in Trackinfo.ini.
  • msgvolume: Het volume voor de geluid- en mediabestanden. Minimaal 0, maximaal 100. Bij gebruik van speakers met versterker is de waarde 5 voldoende. Bij onversterkte speakers is het waarschijnlijk nodig deze waarde op 100 in te stellen.
  • usetft: Waarde True of False. Bij True wordt het TFT scherm gebruikt, bij False het scherm dat is aangesloten op de HDMI poort van de RPi.
  • useRpi: Waarde Trueof False. Departure-board is ook te gebruiken zonder RPi en TFT scherm, bijvoorbeeld op Ubuntu. Kijk hier voor meer informatie.
  • enableAds: Waarde True of False. Bij True worden advertenties getoond, bij False blijft de stationsinformatie altijd zichtbaar, ook als er geen activiteit op het station is.