cgnuino
cgnuino.h
1 
7 #ifndef INCLUDED_CGNUINO
8 #define INCLUDED_CGNUINO
9 
10 #include "Arduino.h"
11 
16 #define countof(array) (sizeof(array) / sizeof(array[0]))
17 
18 constexpr uint32_t ULONG_MAX = 4294967295;
19 constexpr byte BYTE_MAX = 255;
20 constexpr byte N_CGNDI = 10;
21 constexpr byte N_CGNDO = 10;
22 
119 class CgnControl {
120  public:
121  CgnControl(char = 10);
122  String update();
123  int getCode();
124  String getValue();
125 
126  private:
127  int c;
128  String v;
129  char eol;
130 };
131 
232 class CgnDI {
233  public:
234  CgnDI(byte, byte = 1, byte = NULL, byte = 2);
235  void update();
236  bool on(byte = 0);
237  bool off(byte = 0);
238  bool turnon(byte = 0);
239  bool turnoff(byte = 0);
240  bool change(byte = 0);
241  bool keep(byte = 0);
242 
243  private:
244  byte first;
245  byte n;
246  byte relay;
247  bool relaid;
248  bool cur[N_CGNDI];
249  bool pre[N_CGNDI];
250  byte r;
251  byte rest[N_CGNDI];
252  uint32_t last;
253 };
254 
261 class CgnDO {
262  public:
263  CgnDO(byte, byte = 1);
264  void update();
265  void out(byte, uint32_t);
266 
267  private:
268  byte first;
269  byte n;
270  uint32_t limit[N_CGNDO];
271 };
272 
276 class CgnData {
277  public:
278  CgnData(char = 9);
279  void append(String);
280  void out();
281  void clear();
282 
283  private:
284  char sep;
285  String data;
286 };
287 
291 class CgnLogger {
292  public:
293  CgnLogger(bool = false, byte = NULL, byte = 0);
294  void update(bool);
295  bool on();
296  bool off();
297  bool turnon();
298  bool turnoff();
299  bool change();
300  bool keep();
301 
302  private:
303  bool cur;
304  bool pre;
305  byte relay;
306  bool relaid;
307  byte r;
308  byte rest;
309  uint32_t last;
310 };
311 
315 class CgnPause {
316  public:
317  CgnPause(byte, bool = LOW, uint16_t = 100);
318  void check();
319 
320  private:
321  byte pin;
322  bool stopwhen;
323  uint16_t cycle;
324 };
325 
329 class CgnPeriod {
330  public:
331  CgnPeriod();
332  void set(String, uint32_t = 0);
333  bool is(String);
334  bool expire();
335  String get();
336  uint32_t until();
337 
338  private:
339  String period;
340  uint32_t limit;
341 };
342 
347  public:
348  CgnStopwatch();
349  uint32_t lap();
350  uint32_t get();
351 
352  private:
353  uint32_t from;
354 };
355 
359 class CgnStrobe {
360  public:
361  CgnStrobe(byte, uint32_t = 5);
362  uint32_t out(String);
363 
364  private:
365  void wait();
366  byte first;
367  uint32_t len;
368  bool us;
369 };
370 
374 class CgnTone {
375  public:
376  CgnTone(byte);
377  void update();
378  void out(uint32_t, uint16_t = 440);
379 
380  private:
381  byte pin;
382  uint32_t limit;
383 };
384 
388 class CgnValtiel {
389  public:
390  CgnValtiel();
391  void start();
392  float lap();
393  uint32_t getMax();
394  uint32_t getMin();
395 
396  private:
397  uint32_t from;
398  uint32_t last;
399  uint32_t n;
400  uint32_t mx;
401  uint32_t mn;
402 };
403 
404 #endif
405 
Remembers current task period and its time constraint.
Definition: cgnuino.h:329
Communicates with external control apprication running on a secondary PC.
Definition: cgnuino.h:119
Offers convenient digital-in buffering.
Definition: cgnuino.h:232
String update()
Checks the serial buffer for a new input line.
Definition: CgnControl.cpp:24
int getCode()
Shows decomposed code for the last serial input.
Definition: CgnControl.cpp:59
Logs arbitorary bit change similar to CgnDI class.
Definition: cgnuino.h:291
Stores trial information and print it to the Serial.
Definition: cgnuino.h:276
CgnControl(char=10)
Constructor.
Definition: CgnControl.cpp:15
Temporally pauses task progression by digital-in pin state.
Definition: cgnuino.h:315
Emits asynchroneous digital-out.
Definition: cgnuino.h:261
Emits asynchroneous tone output.
Definition: cgnuino.h:374
String getValue()
Shows decomposed value for the last serial input.
Definition: CgnControl.cpp:66
Monitors average length of executed loops on Arduino.
Definition: cgnuino.h:388
Emits a text as one-by-one characters using (8 + 1)-bit digital-out.
Definition: cgnuino.h:359
Measures time difference in milliseconds.
Definition: cgnuino.h:346