2020-12-14 21:30:39 +01:00
|
|
|
#ifndef FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_
|
|
|
|
#define FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-07-20 11:43:16 +02:00
|
|
|
#include "fsfw/tmtcpacket/ccsds/SpacePacketReader.h"
|
2016-06-15 23:48:41 +02:00
|
|
|
|
|
|
|
class SourceSequenceCounter {
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
uint16_t sequenceCount;
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
};
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2020-12-14 21:30:39 +01:00
|
|
|
#endif /* FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ */
|