diff --git a/container/FixedMap.h b/container/FixedMap.h index d664a086..55a43533 100644 --- a/container/FixedMap.h +++ b/container/FixedMap.h @@ -164,6 +164,15 @@ public: return theMap.maxSize(); } + bool full() { + if(_size == theMap.maxSize()) { + return true; + } + else { + return false; + } + } + virtual ReturnValue_t serialize(uint8_t** buffer, uint32_t* size, const uint32_t max_size, bool bigEndian) const { ReturnValue_t result = SerializeAdapter::serialize(&this->_size, diff --git a/datapool/PoolRawAccess.cpp b/datapool/PoolRawAccess.cpp index c4e327b1..66ba6218 100644 --- a/datapool/PoolRawAccess.cpp +++ b/datapool/PoolRawAccess.cpp @@ -38,6 +38,7 @@ ReturnValue_t PoolRawAccess::read() { result = READ_TYPE_TOO_LARGE; } } else { + info << "PoolRawAccess: Size: " << (int)read_out->getSize() << std::endl; result = READ_INDEX_TOO_LARGE; } } else { diff --git a/datapool/PoolRawAccessHelper.cpp b/datapool/PoolRawAccessHelper.cpp index 8c750270..de6e4802 100644 --- a/datapool/PoolRawAccessHelper.cpp +++ b/datapool/PoolRawAccessHelper.cpp @@ -92,11 +92,12 @@ ReturnValue_t PoolRawAccessHelper::handlePoolEntrySerialization(uint32_t current counter ++; DataSet currentDataSet = DataSet(); + info << "Current array position: " << (int)arrayPosition << std::endl; PoolRawAccess currentPoolRawAccess(currentPoolId,arrayPosition,¤tDataSet,PoolVariableIF::VAR_READ); result = currentDataSet.read(); if (result != RETURN_OK) { - debug << std::hex << "Pool Raw Access Helper: Error reading raw dataset with returncode " + debug << std::hex << "Pool Raw Access Helper: Error reading raw dataset with returncode 0x" << result << std::dec << std::endl; return result; } @@ -134,7 +135,7 @@ ReturnValue_t PoolRawAccessHelper::checkRemainingSize(PoolRawAccess * currentPoo *isSerialized = true; } else if(remainingSize > 0) { - *arrayPosition += currentPoolRawAccess->getSizeOfType(); + *arrayPosition += 1; } else { return RETURN_FAILED;