fsfw/src/fsfw/cfdp/pdu/PromptPduReader.cpp

22 lines
725 B
C++
Raw Normal View History

2022-09-14 19:48:11 +02:00
#include "PromptPduReader.h"
2022-09-14 19:48:11 +02:00
PromptPduReader::PromptPduReader(const uint8_t *pduBuf, size_t maxSize)
2022-08-03 16:00:48 +02:00
: FileDirectiveReader(pduBuf, maxSize) {}
2022-09-14 19:48:11 +02:00
cfdp::PromptResponseRequired PromptPduReader::getPromptResponseRequired() const {
2022-02-02 10:29:30 +01:00
return responseRequired;
}
2022-09-14 19:48:11 +02:00
ReturnValue_t PromptPduReader::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;
}