Somda Invoer Hulp 1.0.3

 

De invoer van spots via het invoervenster op www.somda.nl dient volgens het voorgeschreven invoerformaat te worden ingevoerd.

 

Somda Invoer Hulp is een hulpprogramma bij het invoeren van spots op de website van Somda. Ik heb dit programma geschreven omdat ik nogal eens de posities verkeerd had. En soms maakte ik ook fouten in de invoer van bepaalde materieelnummers, zoals ‘6601’ in plaats van ‘ERS6601’. Na de eerste opzet heb ik het programma uitgebreid met meer functionaliteit.

 

Features:

 

Laatste wijzigingen in versie 1.0.1:

 

Laatste wijzigingen in versie 1.0.2:

 

Laatste wijzigingen in versie 1.0.3:

 

Vereisten

 

Somda Invoer Hulp vereist dat het MicrosoftTM .Net Framework 1.1 is geïnstalleerd. Mogelijk werkt het programma ook met nieuwere versies van het framework.

Het framework kan worden gedownload vanaf de site van MicrosoftTM.

 

 

Hoe werkt Somda Invoer Hulp?

 

  1. Start Somda Invoer Hulp op
  2. Vul de samenstelling in. De hele samenstelling van meerdere nummers kan in één regel ingevoerd worden voorzien van plustekens tussen de nummers, bijvoorbeeld “801+443+936”.
    Met de knoppen Lijst en Naam kan een nummer uit een lijst worden gekozen, zie verderop.
  3. Voer het treinnummer in, of kies een treintype uit de lijst (zoals LM of GDST). Het is ook mogelijk om de afkorting van een treintype zelf in te typen.
  4. Vul eventuele opmerkingen in. Als bij stap 3 een treintype is ingevoerd, dan is het verplicht om opmerkingen in te vullen, zoals plaats en tijdstip. Voor onbekende goederentreinen (met treintype CARGO) dient hier ook de soort belading van de trein opgegeven te worden.
  5. Eventueel kan een afwijkende spotlocatie ingevoerd worden. Laat dit veld leeg om de op de site van Somda opgegeven spotlocatie te gebruiken. Met de knop Locatie kan een locatie uit de lijst met bekende locaties worden gekozen.
    (Het vinkje Neem over kan worden aangevinkt om de afwijkende spotlocatie te laten staan voor een volgende in te voeren spot.)
  6. Indien in de samenstelling ook rijtuig stamnummers zijn ingevuld, dan dient het vinkje Rijtuigstam aangevinkt te worden. Met Aantal locs voorop kan worden aangegeven hoeveel locs er voorop de samenstelling zitten en met Loc achterop kan worden aangegeven of er ook nog een loc achterop zit. Deze instellingen zijn nodig om de juiste posities bij voor de spot te generen.
  7. Druk op de knop Toevoegen om de spot te genereren. De gegenereerde spotregels (één regel per nummer) verschijnen in het tekstvak boven in het scherm. De inhoud van dit tekstvak kan worden bewerkt (bijvoorbeeld om eventuele typefouten te herstellen). Ook kunnen hele (foute) regels verwijderd worden.
  8. Herhaal de stappen 2 t/m 7 voor elke volgende in te voeren spot.
  9. Controleer de inhoud van het tekstvak op eventuele fouten.
  10. Druk op de knop Kopiëren om de inhoud van het tekstvak te kopiëren naar het klembord.
  11. Ga naar Spots Invoeren op de site van Somda.
  12. Kies een spotplek en de datum van de spots.
  13. Plak de inhoud van het klembord in het tekstvak.
  14. Druk op de knop Spot(s) opslaan.

 


Hulp bij samenstellingen met rijtuig stamnummers

 

Zoals hierboven in stap 6 is aangegeven dienen bij de invoer van een spot van een samenstelling met rijtuig stamnummers aangegeven te worden waar en hoeveel locs er in de samenstelling zitten. Om de keuze hiervan te vergemakkelijken is in het menu Invoer een aantal voorkeursinstellingen ondergebracht. Door in dit menu de regel die bij de spots past te klikken, worden de vinkjes in stap 6 automatisch ingesteld.

 

o      Ctrl+Shift+S:        Treinstellen of getrokken trein zonder rijtuig/stamnummers

o      Ctrl+Shift+G:        Getrokken trein met loc(s) voorop

o      Ctrl+Shift+D:        Trek-duw trein met loc achterop

o      Ctrl+Shift+T:        Trek-trek trein met loc(s) voorop en loc achterop

o      Ctrl+Shift+E:        Gesleepte treinstellen met loc(s) voorop

 

 

Keuzelijst met nummers

 

Om de invoer van bepaalde nummers te vereenvoudigen (moet er nu wel of niet NMBS voorafgaand aan het nummer 2551 worden ingevoerd?) kunnen nummers uit een lijst worden gekozen. De lijst wordt getoond door op de knop Lijst te drukken. De eerste keer dat op deze knop wordt gedrukt, wordt de lijst ingelezen en opgebouwd, dit kan eventjes duren.

Met de velden Nummer en Serie kan een filter worden opgegeven waarop de lijst kan worden gefilterd. De lijst wordt pas gefilterd nadat op de knop Filter is gedrukt. Met de knop Wis wordt het filter gewist.

Met het vinkje Toon Alles wordt aangegeven of alle nummers worden getoond, of alleen de als ‘bijzonder’ gemarkeerde nummers.

Door in de lijst een regel te selecteren en op de knop Kies te drukken, of op te selecteren regel te dubbelklikken wordt het nummer van de gekozen regel aan de samenstelling toegevoegd. Automatisch wordt een plusteken als scheiding tussen de reeds ingevoerde samenstelling toegevoegd. (Als er al een plusteken stond, wordt er niet nog een tussengevoegd.)

 

Als extra hulp bij het invoeren zijn de complete samenstellingen van het blokkendoos driewagenstel van het spoorwegmuseum en de vijf TEE-rijtuigen van de stichting TEE ook in de lijst opgenomen.

 

Door de recente materieelwijzigingen, kan deze lijst verouderd raken.

 

De basis voor de lijst is een xml bestand (“Materieel.xml”). Dit bestand kan naar behoefte worden aangepast om nieuwe materieelnummers toe te voegen, of afgevoerde materieelnummers te verwijderen. Enige kennis van xml is wel vereist, want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand staat verderop in dit document beschreven.

 

 

Keuzelijst met namen

 

Tegenwoordig is het weer in om treinen namen te geven. Soms heb je bij het spotten wel de naam, maar niet het nummer kunnen lezen. Dan is het wel handig om aan de hand van de naam het nummer te achterhalen. Dit kan door op de knop Naam achter de samenstelling te drukken. Net als bij de keuzelijst met nummers, verschijnt een lijst met namen en nummers. Om een bepaalde naam te zoeken kan de naam (of een deel van de naam) worden ingevuld in het veld Naam en na het drukken op de knop Zoek wordt de lijst gefilterd op de nummers, waarvan de naam deels overeenkomt met de ingevoerde naam.

Door in de lijst een regel te selecteren en op de knop Kies te drukken, of op te selecteren regel te dubbelklikken wordt het nummer van de gekozen regel aan de samenstelling toegevoegd. Automatisch wordt een plusteken als scheiding tussen de reeds ingevoerde samenstelling toegevoegd. (Als er al een plusteken stond, wordt er niet nog een tussengevoegd.)

 

De basis voor de lijst is een xml bestand (“Namen.xml”). Dit bestand kan naar behoefte worden aangepast om nieuwe materieelnummers toe te voegen, of afgevoerde materieelnummers te verwijderen. Enige kennis van xml is wel vereist, want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand staat verderop in dit document beschreven.

 


Automatische suggesties

 

Sommige materieelnummers dienen te worden voorafgegaan door de maatschappijnaam, om eventuele doublures met andere nummers te voorkomen. Wanneer en welke de nummers door de maatschappijnaam dienen te worden voorafgegaan is niet altijd even eenduidig, en een foute invoer is zo gemaakt.

Uiteraard kan bij twijfel de bovenbeschreven keuzelijst met nummers gebruikt worden. Maar het is makkelijker als dit automatisch kan worden gecontroleerd, en indien mogelijk ook automatisch kan worden hersteld. En dat kan!

 

Als er geen nummer doublures zijn, wordt een herkende foute invoer automatisch hersteld. (Bijvoorbeeld van de NMBS reeks 77 kwamen aanvankelijk alleen de 7771 t/m 7790 in Nederland. Hierbij treden geen doublures met ander materieel op. Toch moeten deze locs als NMBS7771 t/m NMBS7790 in Somda ingevoerd te worden.)

 

Als er wel doublures zijn (bijvoorbeeld 41 of NSM41) dan wordt bevestiging gevraagd welk nummer bedoeld wordt.

 

Omdat er soms wel en soms geen naam voor het nummer komt (zoals wel bij NSM41, maar niet bij 273) worden overbodige maatschappijnummers voor een nummer automatisch verwijderd.

 

Sommige nummer doublures betreffen locs enerzijds en rijtuigstammen anderzijds (zoals 6601 en ERS6601). Omdat met de velden Rijtuigstam, Aantal locs voorop en Loc achterop kan worden vastgesteld welk deel van de samenstelling een loc betreft en welk deel een rijtuig stamnummer, kunnen ook fout ingevoerde locs automatisch worden hersteld.

 

Deze suggesties zijn aanvankelijk bedoeld als hulpmiddel om foute invoer te verbeteren, maar het is ook heel handig om nog sneller spots in Somda Invoer Hulp in te voeren, doordat het programma er zelf wel het juiste nummer van maakt.

 

Mocht je na veelvuldig gebruik van dit programma toch eens handmatig spots in Somda moeten invoeren (bijvoorbeeld vanaf een plek waar je dit programma niet bij de hand hebt), moet je er wel aan denken om de juiste nummers te gebruiken!

 

De basis voor de suggesties is een xml bestand (“Suggesties.xml”). Dit bestand kan naar behoefte worden aangepast om nieuwe correcties toe te voegen, of overbodig geraakte correcties te verwijderen. Enige kennis van xml en van reguliere expressies is wel vereist, want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand staat verderop in dit document beschreven.

 

Omdat er geen lijst van de suggesties wordt getoond, en de inhoud van het xml bestand door de gebruikte reguliere expressies niet voor iedereen even leesbaar is, volgt hier een globaal overzicht van opgenomen correcties:

 

 

Met ‘Correctie in’ in dit overzicht wordt dat diverse invoermogelijkheden worden herkend en gecorrigeerd in de juiste notatie.

Enkele herkende mogelijkheden voor het corrigeren van C9002 zijn: C 9002, mc 9002, mC9002, 9002.

 

Qua blokkendozen is deze suggestielijst beperkt tot de Jaap en het elektrische stel van het spoorwegmuseum, omdat deze regelmatig op pad zijn en worden gespot en ingevoerd in Somda. De getrokken rijtuigen van andere museumorganisaties zijn zeer weinig op de hoofdlijnen aan te treffen en vaak worden dan alleen de locnummers ingevoerd en niet alle rijtuignummers.

 

 

Keuzelijst met locaties

 

In Somda worden voor de spotlocaties de geldende afkortingen gebruikt. Omdat niet alle afkortingen uit het hoofd te hoeven leren, is een lijst met de meestgebruikelijke in Somda voor spotlocaties toegestane afkortingen met de betekenissen opgenomen. Door de knop Locatie achter de locatie te drukken verschijnt deze lijst. Om een bepaalde locatie te zoeken kan de afkorting of naam (of een deel ervan) worden ingevuld in het velden Afkorting en Naam en na het drukken op de knop Filter wordt de lijst gefilterd op de locaties, waarvan de afkorting of naam deels overeenkomt met de ingevoerde afkorting en naam.

Door in de lijst een regel te selecteren en op de knop Kies te drukken, of op te selecteren regel te dubbelklikken wordt de afkorting van de gekozen regel aan gekozen.

 

Daarnaast is het ook mogelijk om ingevoerde locaties te controleren op geldigheid. Hiervoor zijn drie modi beschikbaar (te kiezen in het menu):

 

De basis voor de lijst is een xml bestand (“Locaties.xml”). Dit bestand kan naar behoefte worden aangepast om nieuwe locaties toe te voegen, of overbodige locaties te verwijderen. Enige kennis van xml is wel vereist, want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand staat verderop in dit document beschreven.

 

 

Tekortkomingen

 

Ondanks dat ik getracht heb zoveel mogelijk te ondersteunen, zal dit programma best enkele beperkingen kennen. Bepaalde beperkingen betreffen ook beperkingen op Somda.

Zo kunnen bij gebruik van rijtuig stamnummers maximaal drie locs voorop en maximaal één loc achterop worden opgegeven.

Samenstellingen van meer dan 10 delen worden door dit programma prima verwerkt, alleen weet ik niet hoe Somda op posities van 11 en hoger reageert. Maar dergelijke samenstellingen zijn dusdanig zeldzaam (goederenwagens worden niet ingevoerd), dat dit zelden tot problemen zal leiden.

 


Bestandsformaten

 

Dit onderdeel is alleen bedoeld voor kenners van xml die de xml-bestanden wil aanpassen.

 

Voor de opbouw van de betreffende bestanden verwijs ik deels naar de bijgeleverde bestanden. Door daar in te kijken wordt al een hoop duidelijk, en hoef ik hier niet alles te gaan zitten uitleggen ;-)

De namen van de xml-tags zijn altijd in kleine letters.

 

 

Keuzelijst met nummers: Materieel.xml

 

Om niet elk nummer afzonderlijk op te hoeven nemen, bevat dit xml-bestand reeksen, met een van-nummer en een tot-en-met-nummer. In de lijst in het programma wordt elk tussenliggend nummer wel afzonderlijk getoond.

 

De hele inhoud van dit bestand staat tussen de tags <matlijst> en </matlijst>.

Elk element (een los nummer of een reeks) staat tussen de tags  <reeks> en </reeks>. (Ja ook als het een los nummer en geen reeks betreft, hebben de tags wel de naam reeks!)

 

Een los nummer bestaat uit de door de volgende tags omsloten waarden:

      <van>               het nummer (zoals deze in Somda ingevoerd dient te worden).

      <oms>               een omschrijving van het materieeltype. Dit veld wordt in de kolom Serie getoond.

      <markeer>    de waarde 1 als dit nummer altijd moet worden getoond, of de waarde 0 als dit nummer alleen bij het aanvinken van Toon Alles moet worden getoond.

 

Een reeks bestaat uit de door de volgende tags omsloten waarden:

      <van>               het eerste nummer van de reeks (zoals deze in Somda ingevoerd dient te worden).

      <tot>               het laatste nummer van de reeks (zoals deze in Somda ingevoerd dient te worden).

      <oms>               een omschrijving van het materieeltype. Dit veld wordt in de kolom Serie getoond.

      <markeer>    de waarde 1 als dit nummer altijd moet worden getoond, of de waarde 0 als dit nummer alleen bij het aanvinken van Toon Alles moet worden getoond.

 

 

Keuzelijst met namen: Namen.xml

 

De hele inhoud van dit bestand staat tussen de tags <namenlijst> en </namenlijst>.

In dit xml-bestand wordt voor elke naam een element opgenomen.

Elk element staat tussen de tags  <namen> en </namen>.

 

Elke element bestaat uit de door de volgende tags omsloten waarden:

      <naam>            de naam van het treinstel of locomotief.

      <nummer>       het nummer (zoals deze in Somda ingevoerd dient te worden).

      <oms>               een omschrijving van het materieeltype. Dit veld wordt in de kolom Serie getoond.

 


Automatische suggesties: Suggesties.xml

 

Dit is het ingewikkeldste bestand, omdat hierin ook reguliere expressies worden gebruikt. Als je hiermee bekend bent, levert dat grote voordelen op bij het beheer van dit bestand, omdat er dan minder elementen te hoeven worden opgegeven. Het nadeel is wel de vaak onleesbare expressies. Maar ja, elk nadeel heeft zijn voordeel…

Zonder gebruik te maken van reguliere expressies is het mogelijk om voor elke mogelijke foute nummer een element op te nemen.

 

De hele inhoud van dit bestand staat tussen de tags <suggestielijst> en </suggestielijst>.

In dit xml-bestand wordt voor elke suggestie een element opgenomen.

Elk element staat tussen de tags  <suggestie> en </suggestie>.

 

Elke element bestaat uit de door de volgende tags omsloten waarden:

      <invoer>       het foute invoer nummer, of reguliere expressie, waarmee de ingevoerde materieelnummers worden vergeleken.

      <uitvoer>    het te corrigeren nummer, of reguliere vervang expressie, waarmee de foutieve invoer vervangen dient te worden

      <wijzig>       dit veld geeft aan wanneer en hoe de foute invoer gewijzigd wordt.

 

De mogelijke waarden voor het veld wijzig zijn (alleen kleine letters):

      nooit                   de invoer wordt nooit gecorrigeerd, het veld uitvoer is dan niet nodig.

      altijd                    de invoer wordt altijd gecorrigeerd met de uitvoer.

      vraag                  voor de correctie wordt een vraag ter bevestiging gestel.

      geenrijtuig         de invoer wordt alleen gecorrigeerd als het deel van de samenstelling niet een rijtuig stamnummer betreft.

      rijtuig                  de invoer wordt alleen gecorrigeerd als het deel van de samenstelling wel een rijtuig stamnummer betreft.

 

De waarde nooit wordt gebruikt om bepaalde nummers uit te sluiten van een suggestie verderop in het xml-bestand.

Alleen de eerste gevonden suggestie die aan het te controleren nummer voldoet wordt verwerkt, dus de volgorde waarin bepaalde suggesties in dit xml-bestand zijn opgenomen kan van belang zijn.

 

Bij de reguliere expressies (eigenlijk bij alle inhoud van al de xml-bestanden) dient te worden opgemerkt, dat een ampersand (een en-teken, dus ‘&’) dient te worden ingevoerd als ‘&amp;’.

 

Bij gebruik van reguliere expressies, bevat invoer de reguliere expressie waarmee de ingevoerde materieelnummers vergeleken worden. Als de vergelijking slaagt wordt het materieelnummer gecorrigeerd volgens de uitvoer expressie. Voor informatie verwijs ik naar de vele bronnen die hierover op internet zijn te vinden.

Het programma voegt aan de invoer expressie nog een ^ aan het begin en een $ aan het eind toe, zodat alleen volledige nummers vergeleken worden, en niet een deel van een nummer.

 

 

Keuzelijst met locaties: Locaties.xml

 

De hele inhoud van dit bestand staat tussen de tags <locatielijst> en </locatielijst>.

In dit xml-bestand wordt voor elke naam een element opgenomen.

Elk element staat tussen de tags  <locatie> en </locatie>.

 

Elke element bestaat uit de door de volgende tags omsloten waarden:

      <afk>               de afkorting van de locatie.

      <naam>            de naam van de locatie (voluit).

      <lijn>            eventueel een beknopte aanduiding aan welke lijn de locatie licht.