muwerk Scheduler Library
A low-resource cooperative scheduler with MQTT-like queues for Arduinos, ATtiny up to ESP32
Loading...
Searching...
No Matches
timeout.h
1// timeout.h - muwerk timeout class
2
3#pragma once
4
5#include "ustd_platform.h"
6#include "muwerk.h"
7
8namespace ustd {
9
59class timeout {
60 private:
61 unsigned long timerStart;
62 unsigned long timeoutVal;
63
64 public:
65 timeout(unsigned long value = 0) : timeoutVal{value} {
69 timerStart = millis();
70 }
71
72 timeout &operator=(const unsigned long value) {
76 timeoutVal = value;
77 return *this;
78 }
79
80 operator unsigned long() const {
84 return timeoutVal;
85 }
86
87 bool test() const {
91 return ustd::timeDiff(timerStart, millis()) > timeoutVal;
92 }
93
94 void reset() {
96 timerStart = millis();
97 }
98};
99
106class utimeout {
107 private:
108 unsigned long timerStart;
109 unsigned long timeoutVal;
110
111 public:
112 utimeout(unsigned long value = 0) : timeoutVal{value} {
116 timerStart = micros();
117 }
118
119 utimeout &operator=(const unsigned long value) {
123 timeoutVal = value;
124 return *this;
125 }
126
127 operator unsigned long() const {
131 return timeoutVal;
132 }
133
134 bool test() const {
138 return ustd::timeDiff(timerStart, micros()) > timeoutVal;
139 }
140
141 void reset() {
143 timerStart = micros();
144 }
145};
146
147} // namespace ustd
muwerk Timeout Class
Definition timeout.h:59
void reset()
Definition timeout.h:94
bool test() const
Definition timeout.h:87
timeout & operator=(const unsigned long value)
Definition timeout.h:72
timeout(unsigned long value=0)
Definition timeout.h:65
muwerk High Precision Timeout Class
Definition timeout.h:106
bool test() const
Definition timeout.h:134
void reset()
Definition timeout.h:141
utimeout & operator=(const unsigned long value)
Definition timeout.h:119
utimeout(unsigned long value=0)
Definition timeout.h:112
The muwerk namespace.
Definition console.h:15
unsigned long timeDiff(unsigned long first, unsigned long second)
Definition muwerk.h:44