15 #include "DCCpp_Uno.h" 25 #if defined(USE_EEPROM) && defined(DCCPP_DEBUG_MODE) 26 if (strncmp(
EEStore::data.
id, EESTORE_ID,
sizeof(EESTORE_ID)) != 0) {
27 INTERFACE.println(F(
"Sensor::begin() must be called BEFORE DCCpp.begin() !"));
34 else if (
get(snum) == NULL) {
41 this->
set(snum, pin, pullUp);
43 #ifdef USE_TEXTCOMMAND 44 INTERFACE.print(
"<O>");
45 #if !defined(USE_ETHERNET) 46 INTERFACE.println(
"");
56 this->
data.
pullUp = (pullUp == 0 ? LOW : HIGH);
60 ArduiEmulator::Arduino::dontCheckNextPinAccess =
true;
62 digitalWrite(pin, pullUp);
64 ArduiEmulator::Arduino::dontCheckNextPinAccess =
true;
84 #ifdef USE_TEXTCOMMAND 85 INTERFACE.print(
"<X>");
86 #if !defined(USE_ETHERNET) 87 INTERFACE.println(
"");
100 #ifdef USE_TEXTCOMMAND 101 INTERFACE.print(
"<O>");
102 #if !defined(USE_ETHERNET) 103 INTERFACE.println(
"");
128 INTERFACE.print(
"<Q");
130 INTERFACE.print(
">");
133 INTERFACE.print(
"<q");
135 INTERFACE.print(
">");
137 #if !defined(USE_ETHERNET) 138 INTERFACE.println(
"");
144 #ifdef DCCPP_PRINT_DCCPP 147 void Sensor::show() {
151 INTERFACE.print(
"<X>");
152 #if !defined(USE_ETHERNET) 153 INTERFACE.println(
"");
159 INTERFACE.print(
"<Q");
161 INTERFACE.print(
" ");
163 INTERFACE.print(
" ");
165 INTERFACE.print(
">");
166 #if !defined(USE_ETHERNET) 167 INTERFACE.println(
"");
174 void Sensor::status() {
178 INTERFACE.print(
"<X>");
179 #if !defined(USE_ETHERNET) 180 INTERFACE.println(
"");
186 INTERFACE.print(tt->
active ?
"<Q" :
"<q");
188 INTERFACE.print(
">");
189 #if !defined(USE_ETHERNET) 190 INTERFACE.println(
"");
210 #if defined(USE_TEXTCOMMAND) 214 #ifdef DCCPP_DEBUG_MODE 216 INTERFACE.println(F(
"Sensor::begin() must be called BEFORE Sensor::load() !"));
246 #if defined(USE_TEXTCOMMAND) 253 switch (sscanf(c,
"%d %d %d", &n, &s, &m)) {
263 #ifdef DCCPP_PRINT_DCCPP 268 #ifdef USE_TEXTCOMMAND 270 INTERFACE.print(
"<X>");
271 #if !defined(USE_ETHERNET) 272 INTERFACE.println(
"");
285 #ifdef USE_TEXTCOMMAND 286 INTERFACE.print(
"<X>");
287 #if !defined(USE_ETHERNET) 288 INTERFACE.println(
"");
294 tt->
begin(snum, pin, pullUp);
static void parse(char *c)
static void advance(int inIncrement)
static Sensor * create(int snum, int pin, int pullUp)
static void remove(int snum)
void set(int snum, int pin, int pullUp)
static Sensor * get(int snum)
static Sensor * firstSensor
void begin(int snum, int pin, int pullUp)