62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
#ifndef REST_H
|
|
#define REST_H
|
|
|
|
struct Rest {
|
|
|
|
uint64_t millisTotal;
|
|
|
|
uint64_t decisTotal;
|
|
|
|
uint64_t secondsTotal;
|
|
|
|
uint64_t minutesTotal;
|
|
|
|
uint64_t hoursTotal;
|
|
|
|
uint64_t daysTotal;
|
|
|
|
uint32_t decisPart;
|
|
|
|
uint32_t secondsPart;
|
|
|
|
uint32_t minutesPart;
|
|
|
|
uint32_t hoursPart;
|
|
|
|
uint32_t daysPart;
|
|
|
|
explicit Rest(const uint32_t millisTotal)
|
|
: millisTotal(millisTotal),
|
|
decisTotal(millisTotal / 100),
|
|
secondsTotal(decisTotal / 10),
|
|
minutesTotal(secondsTotal / 60),
|
|
hoursTotal(minutesTotal / 60),
|
|
daysTotal(hoursTotal / 24),
|
|
decisPart(decisTotal % 10),
|
|
secondsPart(secondsTotal % 60),
|
|
minutesPart(minutesTotal % 60),
|
|
hoursPart(hoursTotal % 24),
|
|
daysPart(daysTotal) {
|
|
//
|
|
}
|
|
|
|
bool deciChanged(const Rest &rest) const {
|
|
return decisTotal != rest.decisTotal;
|
|
}
|
|
|
|
bool secondChanged(const Rest &last) const {
|
|
return secondsTotal != last.secondsTotal;
|
|
}
|
|
|
|
bool hourChanged(const Rest &rest) const {
|
|
return hoursTotal != rest.hoursTotal;
|
|
}
|
|
|
|
void log() const {
|
|
Serial.printf("%3d.%02d:%02d:%02d.%d\n", daysPart, hoursPart, minutesPart, secondsPart, decisPart);
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|