SpDrS60 Stellwerkssimulation Stellwerkssimulation zu Verwendung in bliebigen Schienensystemen
zugtastenControl.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
6#include "ZugtastenControl.h"
7#include "Zugtaste.h"
8
9// Methoden der Klasse besetztmeldungControl
10ZugtastenControl::ZugtastenControl(int anzahlZugtasten, int zugtastenPins[], boolean richtung[])
11
12{
13 _anzahlZugtasten = anzahlZugtasten;
14 _pzugtasten = new Zugtaste *[_anzahlZugtasten];
15 for (int zugtastenNr = 0; zugtastenNr < _anzahlZugtasten; zugtastenNr++)
16 _pzugtasten[zugtastenNr] = new Zugtaste(zugtastenPins[zugtastenNr], richtung[zugtastenNr]);
17}
18
20{
21 return _anzahlZugtasten;
22}
23
25{
26 if (isZugtaste(zugtastenNr))
27 return _pzugtasten[zugtastenNr]->getzugtastenstatus();
28 else
29 return false;
30}
31
33{
34 int zugtastenpress = 0;
35 for (int i = 0; i < _anzahlZugtasten; i++)
36 {
38 zugtastenpress++;
39 }
40 return zugtastenpress;
41}
42
43void ZugtastenControl::setGleissymbol(int zugtastenNr, Gleissymbol *symbol)
44{
45 if (isZugtaste(zugtastenNr))
46 _pzugtasten[zugtastenNr]->setGleissymbol(symbol);
47}
48
50{
51 if (isZugtaste(zugtastenNr))
52 return _pzugtasten[zugtastenNr]->getGleissymbol();
53 else
54 return nullptr;
55}
56
58{
59 if (isZugtaste(zugtastenNr))
60 return _pzugtasten[zugtastenNr];
61 else
62 return nullptr;
63}
64
65boolean ZugtastenControl::isZugtaste(int zugtastenNr)
66{
67 if (zugtastenNr < _anzahlZugtasten)
68 return true;
69 else
70 {
71 Serial.println("Error: ZugtastenNr existiert nicht. Source: ZugtastenControl::isZugtaste");
72 return false;
73 }
74}
Ist ein Knoten für den in Graph erstellten Graphen Speichert alle Objekte, die dem Entsprechenden Kno...
Definition: Gleissymbol.h:23
boolean getzugtastenstatus()
Definition: Zugtaste.cpp:22
void setGleissymbol(Gleissymbol *symbol)
Definition: Zugtaste.cpp:28
Gleissymbol * getGleissymbol()
Definition: Zugtaste.cpp:33
Gleissymbol * getGleissymbol(int zugtastenNr)
boolean zugtastenGedrueckt()
ZugtastenControl(int anzahlZugtasten, int zugtastenPins[], boolean richtung[]=nullptr)
boolean isZugtaste(int zugtastenNr)
void setGleissymbol(int zugtastenNr, Gleissymbol *symbol)
Zugtaste * getZugtaste(int zugtastenNr)
boolean getZugtastenstatus(int zugtastenNr)