cgnuino
CgnLogger.cpp
1 
8 #include "Arduino.h"
9 #include "cgnuino.h"
10 
17 CgnLogger::CgnLogger(bool b, byte o, byte d) {
18  cur = b;
19  pre = cur;
20  relay = o;
21  relaid = (relay != NULL);
22  r = d;
23  last = millis();
24  rest = 0;
25  if (relaid) {
26  pinMode(relay, OUTPUT);
27  digitalWrite(relay, cur ? HIGH : LOW);
28  }
29 }
30 
36 void CgnLogger::update(bool b) {
37  int past;
38  past = millis() - last;
39  last = millis();
40 
41  if (rest > past) {
42  rest -= past;
43 
44  } else {
45  rest = 0;
46  pre = cur;
47  cur = b;
48 
49  if (cur != pre) {
50  rest = r;
51  if (relaid) {
52  digitalWrite(relay, cur ? HIGH : LOW);
53  }
54  }
55  }
56 }
57 
61 bool CgnLogger::on() {
62  return cur;
63 }
64 
69  return !cur;
70 }
71 
76  return cur && !pre;
77 }
78 
83  return !cur && pre;
84 }
85 
90  return cur != pre;
91 }
92 
97  return cur == pre;
98 }
99 
bool change()
Checks whether the buffer was changed from previous loop.
Definition: CgnLogger.cpp:89
bool off()
Checks whether current value is false.
Definition: CgnLogger.cpp:68
bool turnon()
Checks whether the buffer turned on in current loop.
Definition: CgnLogger.cpp:75
bool keep()
Checks whether the buffer kept unchanged from previous loop.
Definition: CgnLogger.cpp:96
void update(bool)
Updates boolean buffer by current value.
Definition: CgnLogger.cpp:36
bool on()
Checks whether current value is true.
Definition: CgnLogger.cpp:61
bool turnoff()
Checks whether the buffer turned off in current loop.
Definition: CgnLogger.cpp:82
CgnLogger(bool=false, byte=NULL, byte=0)
Constructor.
Definition: CgnLogger.cpp:17