SpDrS60 Stellwerkssimulation Stellwerkssimulation zu Verwendung in bliebigen Schienensystemen
besetztmeldungControl.cpp
1/*Library für die Steuerung eines SpDrS60-Gleisbildstellpults
2 * mit dieser Library können Weichen, Signale etc. gesteuert werden
3 * Lennart Klüner 05.09.2020
4 */
5#include "Arduino.h"
6#include "BesetztmeldungControl.h"
7#include "Besetztmelder.h"
8
9//Methoden der Klasse besetztmeldungControl
10BesetztmeldungControl::BesetztmeldungControl(int gleisPins[], int ledsGelb[], int ledsRot[], int weichenbesetztmelder[], int anzahlMelder, int registerPins[4])
11{
12 _anzahlMelder = anzahlMelder;
13 //array wird definiert
14 _pbesetztmelder = new Besetztmelder *[_anzahlMelder];
15 //und initialisiert
16 for (int besetztmelderNr = 0; besetztmelderNr < _anzahlMelder; besetztmelderNr++)
17 _pbesetztmelder[besetztmelderNr] = new Besetztmelder(gleisPins[besetztmelderNr], ledsGelb[besetztmelderNr], ledsRot[besetztmelderNr], weichenbesetztmelder[besetztmelderNr], registerPins);
18}
19
21{
22 return _pbesetztmelder[BesetztmelderNr];
23}
24//aus der Klasse Control werden die entgegengenommenen Befehle auf die einzelnen Besetztmelder verteilt.
25boolean BesetztmeldungControl::getBesetztmelderstatus(int besetztmelder, boolean besetztmelderBeleuchtung, WeichenControl WeichenControl)
26{
27 return _pbesetztmelder[besetztmelder]->besetztmelderAuslesen(besetztmelderBeleuchtung, WeichenControl);
28}
29
30void BesetztmeldungControl::setBesetztmelderBeleuchtung(int besetztmelder, boolean besetztmelderLichtstatus)
31{
32 _pbesetztmelder[besetztmelder]->setBesetztmelderLicht(besetztmelderLichtstatus);
33}
34void BesetztmeldungControl::setFahrstrassenelement(int besetztmelderNr, int fahrstrassenNr, boolean fahrstrassenstatus)
35{
36 _pbesetztmelder[besetztmelderNr]->setFahrstrassenelement(fahrstrassenNr, fahrstrassenstatus);
37}
39{
40 return _pbesetztmelder[besetztmelderNr]->getFahrstrassenelement();
41}
42
44{
45 for (int besetztmelderNr = 0; besetztmelderNr < _anzahlMelder; besetztmelderNr++)
46 _pbesetztmelder[besetztmelderNr]->besetztmelderAuslesen(LOW, WeichenControl);
47}
void setBesetztmelderLicht(boolean newBesetztmelderStatus)
boolean getFahrstrassenelement()
void setFahrstrassenelement(int fahrstrassennr, boolean Fahrstrassenelement)
boolean besetztmelderAuslesen(boolean besetztmelderBeleuchtung, class WeichenControl WeichenControl)
boolean getBesetztmelderstatus(int besetztmelder, boolean besetztmelderBeleuchtung, class WeichenControl WeichenControl)
boolean getFahrstrassenelement(int besetztmelderNr)
void setFahrstrassenelement(int besetztmelderNr, int fahrstrassenNr, boolean fahrstrassenstatus)
void setBesetztmelderBeleuchtung(int besetztmelder, boolean besetztmelderLicht)
BesetztmeldungControl(int gleisPins[], int ledsGelb[], int ledsRot[], int weichenbesetztmelder[], int anzahlMelder, int registerPins[4])
Besetztmelder * getBesetztmelder(int besetztmelderNr)
void besetztmelderAusfuehren(class WeichenControl WeichenControl)