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

22 lines
755 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)
2022-08-03 16:00:48 +02:00
: FileDirectiveReader(pduBuf, maxSize) {}
cfdp::PromptResponseRequired PromptPduDeserializer::getPromptResponseRequired() const {
2022-02-02 10:29:30 +01:00
return responseRequired;
}
ReturnValue_t PromptPduDeserializer::parseData() {
2022-08-03 16:00:48 +02:00
ReturnValue_t result = FileDirectiveReader::parseData();
2022-08-16 01:08:26 +02:00
if (result != returnvalue::OK) {
2022-02-02 10:29:30 +01:00
return result;
}
2022-08-03 16:00:48 +02:00
if (FileDirectiveReader::getWholePduSize() <= FileDirectiveReader::getHeaderSize()) {
2022-02-02 10:29:30 +01:00
return SerializeIF::STREAM_TOO_SHORT;
}
2022-08-03 16:00:48 +02:00
responseRequired = static_cast<cfdp::PromptResponseRequired>(
2022-08-08 18:29:32 +02:00
(pointers.rawPtr[FileDirectiveReader::getHeaderSize()] >> 7) & 0x01);
2022-08-16 01:08:26 +02:00
return returnvalue::OK;
}