#ifndef FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ #define FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ #include "../tmtcpacket/SpacePacketBase.h" class SourceSequenceCounter { private: uint16_t sequenceCount; public: SourceSequenceCounter() : sequenceCount(0) {} void increment() { sequenceCount = (sequenceCount+1) % (SpacePacketBase::LIMIT_SEQUENCE_COUNT); } void decrement() { sequenceCount = (sequenceCount-1) % (SpacePacketBase::LIMIT_SEQUENCE_COUNT); } uint16_t get() { return this->sequenceCount; } void reset(uint16_t toValue = 0) { sequenceCount = toValue % (SpacePacketBase::LIMIT_SEQUENCE_COUNT); } }; #endif /* FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ */