AGirs
GirsUtils.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "LedLcdManager.h" // for led_t
4 #include <MultiDecoder.h> // for MultiDecoder::Type
5 #ifdef ARDUINO
6 #include <IPAddress.h>
7 #endif
8 #include "defineMissingStuff.h"
9 
10 class GirsUtils {
11 private:
12  GirsUtils();
13 
14 public:
15  static unsigned long freeRam();
16  static void reset();
17 
18  // TODO: where should this go?
19  static led_t decode2logicalLed(MultiDecoder::Type type) {
20  return (led_t) ((int) type - 1);
21  }
22 
23  static void printVariable(Stream& stream, const char *variableName, unsigned long value) {
24  stream.print(variableName);
25  stream.print("=");
26  stream.println(value);
27  }
28 
29 #ifdef ARDUINO
30  static String ip2string(IPAddress ip);
31 #endif
32 
33  static pin_t receiverPin(uint8_t receiverNo UNUSED) {
34 
35 #ifdef IRRECEIVER_1_PIN
36  if (receiverNo == 1)
37  return IRRECEIVER_1_PIN;
38 #endif
39 
40 #ifdef IRRECEIVER_2_PIN
41  if (receiverNo == 2)
42  return IRRECEIVER_2_PIN;
43 #endif
44 
45 #ifdef IRRECEIVER_3_PIN
46  if (receiverNo == 3)
47  return IRRECEIVER_3_PIN;
48 #endif
49 
50 #ifdef IRRECEIVER_4_PIN
51  if (receiverNo == 4)
52  return IRRECEIVER_4_PIN;
53 #endif
54 
55 #ifdef IRRECEIVER_5_PIN
56  if (receiverNo == 5)
57  return IRRECEIVER_5_PIN;
58 #endif
59 
60 #ifdef IRRECEIVER_6_PIN
61  if (receiverNo == 6)
62  return IRRECEIVER_6_PIN;
63 #endif
64 
65 #ifdef IRRECEIVER_7_PIN
66  if (receiverNo == 7)
67  return IRRECEIVER_7_PIN;
68 #endif
69 
70 #ifdef IRRECEIVER_8_PIN
71  if (receiverNo == 8)
72  return IRRECEIVER_8_PIN;
73 #endif
74  return invalidPin;
75  }
76 
77  static bool receiverPullup(uint8_t receiverNo UNUSED) {
78 
79 #ifdef IRRECEIVER_1_PIN
80  if (receiverNo == 1)
82 #endif
83 
84 #ifdef IRRECEIVER_2_PIN
85  if (receiverNo == 2)
87 #endif
88 
89 #ifdef IRRECEIVER_3_PIN
90  if (receiverNo == 3)
92 #endif
93 
94 #ifdef IRRECEIVER_4_PIN
95  if (receiverNo == 4)
97 #endif
98 
99 #ifdef IRRECEIVER_5_PIN
100  if (receiverNo == 5)
102 #endif
103 
104 #ifdef IRRECEIVER_6_PIN
105  if (receiverNo == 6)
107 #endif
108 
109 #ifdef IRRECEIVER_7_PIN
110  if (receiverNo == 7)
112 #endif
113 
114 #ifdef IRRECEIVER_8_PIN
115  if (receiverNo == 8)
117 #endif
118  return false;
119  }
120 
121  static void setupLeds() {
122 #ifdef SIGNAL_LED_1_GND
123  pinMode(SIGNAL_LED_1_GND, OUTPUT);
124  digitalWrite(SIGNAL_LED_1_GND, LOW);
125 #endif
126 
127 #ifdef SIGNAL_LED_2_GND
128  pinMode(SIGNAL_LED_2_GND, OUTPUT);
129  digitalWrite(SIGNAL_LED_2_GND, LOW);
130 #endif
131 
132 #ifdef SIGNAL_LED_3_GND
133  pinMode(SIGNAL_LED_3_GND, OUTPUT);
134  digitalWrite(SIGNAL_LED_3_GND, LOW);
135 #endif
136 
137 #ifdef SIGNAL_LED_4_GND
138  pinMode(SIGNAL_LED_4_GND, OUTPUT);
139  digitalWrite(SIGNAL_LED_4_GND, LOW);
140 #endif
141 
142 #ifdef SIGNAL_LED_5_GND
143  pinMode(SIGNAL_LED_5_GND, OUTPUT);
144  digitalWrite(SIGNAL_LED_5_GND, LOW);
145 #endif
146 
147 #ifdef SIGNAL_LED_6_GND
148  pinMode(SIGNAL_LED_6_GND, OUTPUT);
149  digitalWrite(SIGNAL_LED_6_GND, LOW);
150 #endif
151 
152 #ifdef SIGNAL_LED_7_GND
153  pinMode(SIGNAL_LED_7_GND, OUTPUT);
154  digitalWrite(SIGNAL_LED_7_GND, LOW);
155 #endif
156 
157 #ifdef SIGNAL_LED_8_GND
158  pinMode(SIGNAL_LED_8_GND, OUTPUT);
159  digitalWrite(SIGNAL_LED_8_GND, LOW);
160 #endif
161  }
162 
163  static void setupReceivers() {
164 #ifdef IRRECEIVER_1_GND
165  pinMode(IRRECEIVER_1_GND, OUTPUT);
166  digitalWrite(IRRECEIVER_1_GND, LOW);
167 #endif
168 
169 #ifdef IRRECEIVER_2_GND
170  pinMode(IRRECEIVER_2_GND, OUTPUT);
171  digitalWrite(IRRECEIVER_2_GND, LOW);
172 #endif
173 
174 #ifdef IRRECEIVER_3_GND
175  pinMode(IRRECEIVER_3_GND, OUTPUT);
176  digitalWrite(IRRECEIVER_3_GND, LOW);
177 #endif
178 
179 #ifdef IRRECEIVER_4_GND
180  pinMode(IRRECEIVER_4_GND, OUTPUT);
181  digitalWrite(IRRECEIVER_4_GND, LOW);
182 #endif
183 
184 #ifdef IRRECEIVER_5_GND
185  pinMode(IRRECEIVER_5_GND, OUTPUT);
186  digitalWrite(IRRECEIVER_5_GND, LOW);
187 #endif
188 
189 #ifdef IRRECEIVER_6_GND
190  pinMode(IRRECEIVER_6_GND, OUTPUT);
191  digitalWrite(IRRECEIVER_6_GND, LOW);
192 #endif
193 
194 #ifdef IRRECEIVER_7_GND
195  pinMode(IRRECEIVER_7_GND, OUTPUT);
196  digitalWrite(IRRECEIVER_7_GND, LOW);
197 #endif
198 
199 #ifdef IRRECEIVER_8_GND
200  pinMode(IRRECEIVER_8_GND, OUTPUT);
201  digitalWrite(IRRECEIVER_8_GND, LOW);
202 #endif
203 
204 #ifdef IRRECEIVER_1_VCC
205  pinMode(IRRECEIVER_1_VCC, OUTPUT);
206  digitalWrite(IRRECEIVER_1_VCC, HIGH);
207 #endif
208 
209 #ifdef IRRECEIVER_2_VCC
210  pinMode(IRRECEIVER_2_VCC, OUTPUT);
211  digitalWrite(IRRECEIVER_2_VCC, HIGH);
212 #endif
213 
214 #ifdef IRRECEIVER_3_VCC
215  pinMode(IRRECEIVER_3_VCC, OUTPUT);
216  digitalWrite(IRRECEIVER_3_VCC, HIGH);
217 #endif
218 
219 #ifdef IRRECEIVER_4_VCC
220  pinMode(IRRECEIVER_4_VCC, OUTPUT);
221  digitalWrite(IRRECEIVER_4_VCC, HIGH);
222 #endif
223 
224 #ifdef IRRECEIVER_5_VCC
225  pinMode(IRRECEIVER_5_VCC, OUTPUT);
226  digitalWrite(IRRECEIVER_5_VCC, HIGH);
227 #endif
228 
229 #ifdef IRRECEIVER_6_VCC
230  pinMode(IRRECEIVER_6_VCC, OUTPUT);
231  digitalWrite(IRRECEIVER_6_VCC, HIGH);
232 #endif
233 
234 #ifdef IRRECEIVER_7_VCC
235  pinMode(IRRECEIVER_7_VCC, OUTPUT);
236  digitalWrite(IRRECEIVER_7_VCC, HIGH);
237 #endif
238 
239 #ifdef IRRECEIVER_8_VCC
240  pinMode(IRRECEIVER_8_VCC, OUTPUT);
241  digitalWrite(IRRECEIVER_8_VCC, HIGH);
242 #endif
243  }
244 
245  static void setupSensors() {
246 #ifdef IRSENSOR_1_GND
247  pinMode(IRSENSOR_1_GND, OUTPUT);
248  digitalWrite(IRSENSOR_1_GND, LOW);
249 #endif
250 
251 #ifdef IRSENSOR_2_GND
252  pinMode(IRSENSOR_2_GND, OUTPUT);
253  digitalWrite(IRSENSOR_2_GND, LOW);
254 #endif
255 
256 #ifdef IRSENSOR_3_GND
257  pinMode(IRSENSOR_3_GND, OUTPUT);
258  digitalWrite(IRSENSOR_3_GND, LOW);
259 #endif
260 
261 #ifdef IRSENSOR_4_GND
262  pinMode(IRSENSOR_4_GND, OUTPUT);
263  digitalWrite(IRSENSOR_4_GND, LOW);
264 #endif
265 
266 #ifdef IRSENSOR_5_GND
267  pinMode(IRSENSOR_5_GND, OUTPUT);
268  digitalWrite(IRSENSOR_5_GND, LOW);
269 #endif
270 
271 #ifdef IRSENSOR_6_GND
272  pinMode(IRSENSOR_6_GND, OUTPUT);
273  digitalWrite(IRSENSOR_6_GND, LOW);
274 #endif
275 
276 #ifdef IRSENSOR_7_GND
277  pinMode(IRSENSOR_7_GND, OUTPUT);
278  digitalWrite(IRSENSOR_7_GND, LOW);
279 #endif
280 
281 #ifdef IRSENSOR_8_GND
282  pinMode(IRSENSOR_8_GND, OUTPUT);
283  digitalWrite(IRSENSOR_8_GND, LOW);
284 #endif
285 
286 #ifdef IRSENSOR_1_VCC
287  pinMode(IRSENSOR_1_VCC, OUTPUT);
288  digitalWrite(IRSENSOR_1_VCC, HIGH);
289 #endif
290 
291 #ifdef IRSENSOR_2_VCC
292  pinMode(IRSENSOR_2_VCC, OUTPUT);
293  digitalWrite(IRSENSOR_2_VCC, HIGH);
294 #endif
295 
296 #ifdef IRSENSOR_3_VCC
297  pinMode(IRSENSOR_3_VCC, OUTPUT);
298  digitalWrite(IRSENSOR_3_VCC, HIGH);
299 #endif
300 
301 #ifdef IRSENSOR_4_VCC
302  pinMode(IRSENSOR_4_VCC, OUTPUT);
303  digitalWrite(IRSENSOR_4_VCC, HIGH);
304 #endif
305 
306 #ifdef IRSENSOR_5_VCC
307  pinMode(IRSENSOR_5_VCC, OUTPUT);
308  digitalWrite(IRSENSOR_5_VCC, HIGH);
309 #endif
310 
311 #ifdef IRSENSOR_6_VCC
312  pinMode(IRSENSOR_6_VCC, OUTPUT);
313  digitalWrite(IRSENSOR_6_VCC, HIGH);
314 #endif
315 
316 #ifdef IRSENSOR_7_VCC
317  pinMode(IRSENSOR_7_VCC, OUTPUT);
318  digitalWrite(IRSENSOR_7_VCC, HIGH);
319 #endif
320 
321 #ifdef IRSENSOR_8_VCC
322  pinMode(IRSENSOR_8_VCC, OUTPUT);
323  digitalWrite(IRSENSOR_8_VCC, HIGH);
324 #endif
325  }
326 
327  static bool sensorPullup(uint8_t sensorNo UNUSED) {
328 
329 #ifdef IRSENSOR_1_PIN
330  if (sensorNo == 1)
332 #endif
333 
334 #ifdef IRSENSOR_2_PIN
335  if (sensorNo == 2)
337 #endif
338 
339 #ifdef IRSENSOR_3_PIN
340  if (sensorNo == 3)
342 #endif
343 
344 #ifdef IRSENSOR_4_PIN
345  if (sensorNo == 4)
347 #endif
348 
349 #ifdef IRSENSOR_5_PIN
350  if (sensorNo == 5)
352 #endif
353 
354 #ifdef IRSENSOR_6_PIN
355  if (sensorNo == 6)
357 #endif
358 
359 #ifdef IRSENSOR_7_PIN
360  if (sensorNo == 7)
362 #endif
363 
364 #ifdef IRSENSOR_8_PIN
365  if (sensorNo == 8)
367 #endif
368  return false;
369  }
370 
371 #ifndef NON_MOD_PIN
372 #define NON_MOD_PIN invalidPin
373 #endif
374 };
#define SIGNAL_LED_8_GND
static const unsigned sensorNo
Definition: Girs.cpp:131
static led_t decode2logicalLed(MultiDecoder::Type type)
Definition: GirsUtils.h:19
#define SIGNAL_LED_7_GND
#define SIGNAL_LED_3_GND
#define IRSENSOR_1_PULLUP_VALUE
#define IRRECEIVER_4_PIN
#define IRRECEIVER_2_PULLUP_VALUE
#define SIGNAL_LED_5_GND
#define IRRECEIVER_8_PULLUP_VALUE
static void setupReceivers()
Definition: GirsUtils.h:163
static pin_t receiverPin(uint8_t receiverNo UNUSED)
Definition: GirsUtils.h:33
static void setupSensors()
Definition: GirsUtils.h:245
#define IRSENSOR_7_PULLUP_VALUE
#define SIGNAL_LED_6_GND
#define IRSENSOR_6_PULLUP_VALUE
#define IRRECEIVER_1_PIN
#define IRSENSOR_1_VCC
static String ip2string(IPAddress ip)
Definition: GirsUtils.cpp:34
#define IRRECEIVER_5_PIN
#define IRRECEIVER_5_PULLUP_VALUE
#define UNUSED
#define IRSENSOR_8_PULLUP_VALUE
#define IRRECEIVER_3_PULLUP_VALUE
static const uint8_t receiverNo
Definition: Girs.cpp:145
#define IRRECEIVER_7_PULLUP_VALUE
#define IRSENSOR_5_PULLUP_VALUE
#define SIGNAL_LED_2_GND
uint8_t led_t
Definition: LedLcdManager.h:10
static void reset()
Definition: GirsUtils.cpp:21
#define IRRECEIVER_1_PULLUP_VALUE
#define IRSENSOR_1_GND
#define IRRECEIVER_2_PIN
#define IRSENSOR_2_PULLUP_VALUE
static void printVariable(Stream &stream, const char *variableName, unsigned long value)
Definition: GirsUtils.h:23
#define IRRECEIVER_3_PIN
#define IRRECEIVER_4_PULLUP_VALUE
static void setupLeds()
Definition: GirsUtils.h:121
static bool sensorPullup(uint8_t sensorNo UNUSED)
Definition: GirsUtils.h:327
#define IRRECEIVER_1_GND
#define SIGNAL_LED_4_GND
#define IRSENSOR_4_PULLUP_VALUE
#define IRRECEIVER_1_VCC
#define IRSENSOR_3_PULLUP_VALUE
#define IRRECEIVER_6_PULLUP_VALUE
static unsigned long freeRam()
Definition: GirsUtils.cpp:5
static bool receiverPullup(uint8_t receiverNo UNUSED)
Definition: GirsUtils.h:77