Software ontwerp

Kort wordt de gedachte achter het ontwerp weergegeven.

De software kan in twee componenten worden beschreven, de modulaire opbouw van het programma, de eigenlijke "source", en de data.
Het programma is (uiteraard) in de Arduino variant geschreven van "C". Er wordt met een centrale stuurmodule gewerkt, die, afhankelijk van de op dat moment uit te voeren actie, een subroutine aanspreekt. Bijzonder belangrijk hierbij is de keuze om het afvragen van de REED-contacten door een module te laten gebeuren terwijl alle andere modules niet worden aangeroepen. Dat houdt in dat de interne program counter zo snel mogelijk weer het programma stuurt naar het afvragen van de reedcontacten. Hierdoor wordt een optimale bedrijfszekerheid voor het plaatsbepalen van de locomotief bereikt.

Source modules tot zover ontwikkeld:

- Control, de centrale module die onder meer bepaalt:

- lezen spoorboekje"
- ophalen gegevens route
- ophalen gegevens locomotief

- stoppen: alle relais en stroomvoorziening-instellingen worden op nul (niet rijden)gezet
- rijden: hier wordt via de relais voor de betreffende rijweg de stroom op de blokken ingesteld, de PWM-waarde van de betrokken locomotief wordt opgehaald en daarmee wordt een blokpuls op de rijweg gezet die de snelheid van de loc bepaalt (zie data model)
- wissels zetten: hier worden de wissels gezet zoals die volgens de rijwegen (zie hieronder) moeten worden gesteld, de rijweg volgt weer uit het spoorboekje
- rij richting bepalen, zie ook onderstaande over het spoorboekje
- controleren of de betreffende loc op de betreffende reed contact is aangekomen; het reed contact wordt genoemd in het spoorboekje

Data samenvatting

"datamodel van de applicatie"


Hiernaast de relatie tussen de gegevens. In het spoorboekje staan de ritten die moeten worden uitgevoerd. Een teller geeft aan welke "regel moet worden uitgevoerd".
Ook wordt aangegeven met welke locomotieven moet worden gereden. Hier is dan sprake van indirecte adressering, de data van de loc en de rijweg worden door de software opgehaald vanuit de verwijzing in de regel van het spoorboekje.








Tot slot nog het laatste plaatje


Dit toont de opdeling in blokken, geeft de onderbreekpunten aan en de plaats van de reedcontacten. UIteindelijk komen al deze data plus de data van de locomotieven in de bovenstaande datastructuur terug.