blob: f98d7e3127bf7cf0d4f2406ed68a7f7c4cba77fb [file] [log] [blame]
#include "aos/util/wrapping_counter.h"
namespace aos {
namespace util {
WrappingCounter::WrappingCounter(int32_t initial_count)
: count_(initial_count), last_count_(0) {}
int32_t WrappingCounter::Update(uint8_t current) {
if (last_count_ > current) {
count_ += 0x100;
}
count_ = (count_ & 0xffffff00) | current;
last_count_ = current;
return count_;
}
} // namespace util
} // namespace aos