flash write wip
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
This commit is contained in:
parent
996a8a226e
commit
f8eebe2e7d
@ -1,56 +0,0 @@
|
|||||||
#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;
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
#ifndef BSP_Q7S_DEVICES_PLOC_MPSOCSEQUENCECOUNT_H_
|
|
||||||
#define BSP_Q7S_DEVICES_PLOC_MPSOCSEQUENCECOUNT_H_
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Manages incrementing, resetting and harmonization of the sequence count in the space
|
|
||||||
* packet based communication between MPSoC and OBC.
|
|
||||||
*
|
|
||||||
* @author J. Meier
|
|
||||||
*/
|
|
||||||
class MPSoCSequenceCount {
|
|
||||||
public:
|
|
||||||
MPSoCSequenceCount();
|
|
||||||
virtual ~MPSoCSequenceCount();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Increments the sequence count.
|
|
||||||
*/
|
|
||||||
void increment();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Sets the value of the sequence count
|
|
||||||
*
|
|
||||||
* @param sequenceCount The sequence count to set
|
|
||||||
*/
|
|
||||||
void set(uint16_t sequenceCount_);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Resets the sequence count to zero
|
|
||||||
*/
|
|
||||||
void reset();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Returns the current value sequence count
|
|
||||||
*/
|
|
||||||
uint16_t get();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
MutexIF* spiMutex = nullptr;
|
|
||||||
MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING;
|
|
||||||
uint32_t timeoutMs = 20;
|
|
||||||
|
|
||||||
static const uint16_t SEQUENCE_COUNT_MASK = 0x3FFF;
|
|
||||||
|
|
||||||
uint16_t sequenceCount = 0x3FFF;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* BSP_Q7S_DEVICES_PLOC_MPSOCSEQUENCECOUNT_H_ */
|
|
Loading…
Reference in New Issue
Block a user