1
0
forked from fsfw/fsfw

more tests, minor bugfix

This commit is contained in:
2021-01-08 01:49:00 +01:00
parent 41d8cbda55
commit 4255176b5c
3 changed files with 48 additions and 9 deletions

View File

@ -100,8 +100,8 @@ public:
return vectorSize;
}
T& operator [](int i);
const T &operator [](int i) const;
T& operator [](size_t i);
const T &operator [](size_t i) const;
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size,
const size_t maxSize,
@ -126,6 +126,7 @@ public:
ReturnValue_t read(MutexIF::TimeoutType timeoutType =
MutexIF::TimeoutType::WAITING,
uint32_t timeoutMs = 20) override;
/**
* @brief The commit call copies the array values back to the data pool.
* @details

View File

@ -91,8 +91,8 @@ inline ReturnValue_t LocalPoolVector<T, vectorSize>::commitWithoutLock() {
}
template<typename T, uint16_t vectorSize>
inline T& LocalPoolVector<T, vectorSize>::operator [](int i) {
if(i <= vectorSize) {
inline T& LocalPoolVector<T, vectorSize>::operator [](size_t i) {
if(i < vectorSize) {
return value[i];
}
// If this happens, I have to set some value. I consider this
@ -100,13 +100,16 @@ inline T& LocalPoolVector<T, vectorSize>::operator [](int i) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "LocalPoolVector: Invalid index. Setting or returning"
" last value!" << std::endl;
#else
fsfw::printError("LocalPoolVector: Invalid index. Setting or returning"
" last value!\n\r");
#endif
return value[i];
return value[vectorSize];
}
template<typename T, uint16_t vectorSize>
inline const T& LocalPoolVector<T, vectorSize>::operator [](int i) const {
if(i <= vectorSize) {
inline const T& LocalPoolVector<T, vectorSize>::operator [](size_t i) const {
if(i < vectorSize) {
return value[i];
}
// If this happens, I have to set some value. I consider this
@ -114,8 +117,11 @@ inline const T& LocalPoolVector<T, vectorSize>::operator [](int i) const {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "LocalPoolVector: Invalid index. Setting or returning"
" last value!" << std::endl;
#else
fsfw::printError("LocalPoolVector: Invalid index. Setting or returning"
" last value!\n\r");
#endif
return value[i];
return value[vectorSize];
}
template<typename T, uint16_t vectorSize>