DCCpp
This is the library version of a program for Arduino to control railroading DCC devices.
Turnout.h
1 /**********************************************************************
2 
3 Turnout.h renamed from Accessories.h
4 COPYRIGHT (c) 2013-2016 Gregg E. Berman
5 
6 Part of DCC++ BASE STATION for the Arduino
7 
8 **********************************************************************/
9 
10 #ifndef Turnout_h
11 #define Turnout_h
12 
13 #include "Arduino.h"
14 
15 #include "DCCpp.h"
16 
17 #ifdef USE_TURNOUT
18 
19 struct TurnoutData {
20  byte tStatus;
21  byte subAddress;
22  int id;
23  int address;
24 };
25 
117 struct Turnout{
118  struct TurnoutData data;
126  void begin(int id, int add, int subAdd);
133  void set(int id, int add, int subAdd);
137  void activate(int s = 1);
140  inline void inactivate() { activate(0); }
144  inline bool isActivated() { return this->data.tStatus > 0; }
145 
146 #if defined(USE_EEPROM) || defined(USE_TEXTCOMMAND)
154  static Turnout* get(int id);
159  static void remove(int id);
164  static int count();
165 
166 #ifdef DCCPP_PRINT_DCCPP
167 
170  static void show();
171 #endif
172 
173 #if defined(USE_EEPROM)
174  int eepromPos;
179  static void load();
183  static void store();
184 #endif
185 
186 #endif
187 
188 #if defined(USE_TEXTCOMMAND)
189 
193  static bool parse(char *c);
201  static Turnout *create(int id, int add, int subAdd);
202 #endif
203 
204 }; // Turnout
205 
206 #endif
207 #endif
static bool parse(char *c)
Definition: Turnout.cpp:206
static void store()
Definition: Turnout.cpp:181
static void load()
Definition: Turnout.cpp:152
int eepromPos
Definition: Turnout.h:174
static void show()
Definition: Turnout.cpp:284
static int count()
Definition: Turnout.cpp:141
static void remove(int id)
Definition: Turnout.cpp:108
static Turnout * get(int id)
Definition: Turnout.cpp:100
Turnout * nextTurnout
Definition: Turnout.h:148
static Turnout * firstTurnout
Definition: Turnout.h:147
bool isActivated()
Definition: Turnout.h:144
void inactivate()
Definition: Turnout.h:140
void activate(int s=1)
Definition: Turnout.cpp:73
void set(int id, int add, int subAdd)
Definition: Turnout.cpp:64
static Turnout * create(int id, int add, int subAdd)
Definition: Turnout.cpp:259
void begin(int id, int add, int subAdd)
Definition: Turnout.cpp:34
struct TurnoutData data
Definition: Turnout.h:118
int address
Definition: Turnout.h:23
int id
Definition: Turnout.h:22
byte subAddress
Definition: Turnout.h:21
byte tStatus
Definition: Turnout.h:20