blob: f98d7e3127bf7cf0d4f2406ed68a7f7c4cba77fb [file] [log] [blame]
John Park33858a32018-09-28 23:05:48 -07001#include "aos/util/wrapping_counter.h"
Brian Silverman2f594502013-10-16 10:29:47 -07002
3namespace aos {
4namespace util {
5
6WrappingCounter::WrappingCounter(int32_t initial_count)
7 : count_(initial_count), last_count_(0) {}
8
9int32_t WrappingCounter::Update(uint8_t current) {
10 if (last_count_ > current) {
11 count_ += 0x100;
12 }
13 count_ = (count_ & 0xffffff00) | current;
14 last_count_ = current;
15 return count_;
16}
17
18} // namespace util
19} // namespace aos