fsfw/src/fsfw/cfdp/pdu/PromptPduDeserializer.cpp

22 lines
774 B
C++
Raw Normal View History

#include "PromptPduDeserializer.h"
2022-02-02 10:29:30 +01:00
PromptPduDeserializer::PromptPduDeserializer(const uint8_t *pduBuf, size_t maxSize)
: FileDirectiveDeserializer(pduBuf, maxSize) {}
cfdp::PromptResponseRequired PromptPduDeserializer::getPromptResponseRequired() const {
2022-02-02 10:29:30 +01:00
return responseRequired;
}
ReturnValue_t PromptPduDeserializer::parseData() {
2022-02-02 10:29:30 +01:00
ReturnValue_t result = FileDirectiveDeserializer::parseData();
2022-08-15 20:28:16 +02:00
if (result != returnvalue::OK) {
2022-02-02 10:29:30 +01:00
return result;
}
size_t currentIdx = FileDirectiveDeserializer::getHeaderSize();
if (FileDirectiveDeserializer::getWholePduSize() - currentIdx < 1) {
return SerializeIF::STREAM_TOO_SHORT;
}
responseRequired = static_cast<cfdp::PromptResponseRequired>((rawPtr[currentIdx] >> 7) & 0x01);
2022-08-15 20:28:16 +02:00
return returnvalue::OK;
}