57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
|
#include "MPSoCSequenceCount.h"
|
||
|
|
||
|
MPSoCSequenceCount::MPSoCSequenceCount() {
|
||
|
}
|
||
|
|
||
|
MPSoCSequenceCount::~MPSoCSequenceCount() {
|
||
|
}
|
||
|
|
||
|
MPSoCSequenceCount::increment() {
|
||
|
ReturnValue_t result = RETURN_OK;
|
||
|
result = spiMutex->lockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::increment: Failed to lock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
sequenceCount = (sequenceCount + 1) & SEQUENCE_COUNT_MASK;
|
||
|
result = spiMutex->unlockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::increment: Failed to unlock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
MPSoCSequenceCount::set(uint16_t sequenceCount_) {
|
||
|
ReturnValue_t result = RETURN_OK;
|
||
|
result = spiMutex->lockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::set: Failed to lock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
sequenceCount = sequenceCount_;
|
||
|
result = spiMutex->unlockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::set: Failed to unlock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
MPSoCSequenceCount::reset() {
|
||
|
ReturnValue_t result = RETURN_OK;
|
||
|
result = spiMutex->lockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::reset: Failed to lock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
sequenceCount = 0;
|
||
|
result = spiMutex->unlockMutex(timeoutType, timeoutMs);
|
||
|
if (result != RETURN_OK) {
|
||
|
sif::warning << "MPSoCSequenceCount::reset: Failed to unlock mutex" << std::endl;
|
||
|
return result;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
uint16_t MPSoCSequenceCount::get() {
|
||
|
return sequenceCount;
|
||
|
}
|