Updates Stopwatch class to use internal state enum

This commit is contained in:
João Brázio 2016-07-19 14:30:44 +01:00
parent 46117593b9
commit 238fefcb00
2 changed files with 13 additions and 13 deletions

View File

@ -33,7 +33,7 @@ bool Stopwatch::stop() {
#endif #endif
if (this->isRunning() || this->isPaused()) { if (this->isRunning() || this->isPaused()) {
this->state = STOPWATCH_STOPPED; this->state = STOPPED;
this->stopTimestamp = millis(); this->stopTimestamp = millis();
return true; return true;
} }
@ -46,7 +46,7 @@ bool Stopwatch::pause() {
#endif #endif
if (this->isRunning()) { if (this->isRunning()) {
this->state = STOPWATCH_PAUSED; this->state = PAUSED;
this->stopTimestamp = millis(); this->stopTimestamp = millis();
return true; return true;
} }
@ -62,7 +62,7 @@ bool Stopwatch::start() {
if (this->isPaused()) this->accumulator = this->duration(); if (this->isPaused()) this->accumulator = this->duration();
else this->reset(); else this->reset();
this->state = STOPWATCH_RUNNING; this->state = RUNNING;
this->startTimestamp = millis(); this->startTimestamp = millis();
return true; return true;
} }
@ -74,18 +74,18 @@ void Stopwatch::reset() {
Stopwatch::debug(PSTR("reset")); Stopwatch::debug(PSTR("reset"));
#endif #endif
this->state = STOPWATCH_STOPPED; this->state = STOPPED;
this->startTimestamp = 0; this->startTimestamp = 0;
this->stopTimestamp = 0; this->stopTimestamp = 0;
this->accumulator = 0; this->accumulator = 0;
} }
bool Stopwatch::isRunning() { bool Stopwatch::isRunning() {
return (this->state == STOPWATCH_RUNNING) ? true : false; return (this->state == RUNNING) ? true : false;
} }
bool Stopwatch::isPaused() { bool Stopwatch::isPaused() {
return (this->state == STOPWATCH_PAUSED) ? true : false; return (this->state == PAUSED) ? true : false;
} }
millis_t Stopwatch::duration() { millis_t Stopwatch::duration() {

View File

@ -28,12 +28,6 @@
// Print debug messages with M111 S2 (Uses 156 bytes of PROGMEM) // Print debug messages with M111 S2 (Uses 156 bytes of PROGMEM)
//#define DEBUG_STOPWATCH //#define DEBUG_STOPWATCH
enum StopwatchState {
STOPWATCH_STOPPED,
STOPWATCH_RUNNING,
STOPWATCH_PAUSED
};
/** /**
* @brief Stopwatch class * @brief Stopwatch class
* @details This class acts as a timer proving stopwatch functionality including * @details This class acts as a timer proving stopwatch functionality including
@ -41,7 +35,13 @@ enum StopwatchState {
*/ */
class Stopwatch { class Stopwatch {
private: private:
StopwatchState state; enum State {
STOPPED,
RUNNING,
PAUSED
};
Stopwatch::State state;
millis_t accumulator; millis_t accumulator;
millis_t startTimestamp; millis_t startTimestamp;
millis_t stopTimestamp; millis_t stopTimestamp;