BLE Application to open a Garage door
Dependencies: BLE_API Crypto RNG mbed nRF51822
Fork of BLE_LED by
Diff: History.h
- Revision:
- 9:329af8cdc923
- Child:
- 10:80850cd6c29e
diff -r 0f145b25ab0b -r 329af8cdc923 History.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/History.h Tue Aug 25 22:18:21 2015 +0000 @@ -0,0 +1,50 @@ +#ifndef HISTORY_H +#define HISTORY_H + +template<uint32_t BufferSize> +class History { +public: + History() : _head(0) { + } + + ~History() { + } + + void save(const uint64_t& data) { + _pool[_head++] = data; + _head %= BufferSize; + } + + bool exist(const uint64_t& data) { + for(uint32_t i=0; i<BufferSize; i++) { + DBG("%llu == %llu\r\n", _pool[i], data); + if(_pool[i]==data) { + return true; + } + } + return false; + } + + uint64_t last() { + uint32_t prev = (_head-1+BufferSize)%BufferSize; + return _pool[prev]; + } + + uint32_t last_ts() { + return (uint32_t) last(); + } + + /** Reset the buffer + * + */ + void reset() { + _head = 0; + } + +private: + uint64_t _pool[BufferSize]; + volatile uint32_t _head; +}; + + +#endif \ No newline at end of file