important fix and clarification
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
2022-11-04 14:19:58 +01:00
parent dc024e5385
commit 2b9afbedff
4 changed files with 68 additions and 49 deletions

View File

@ -14,14 +14,12 @@ struct SpTcParams {
SpTcParams(SpacePacketCreator& creator, uint8_t* buf, size_t maxSize)
: creator(creator), buf(buf), maxSize(maxSize) {}
void setPayloadLen(size_t payloadLen_) { dataFieldLen = payloadLen_ + 2; }
void setDataFieldLen(size_t dataFieldLen_) { dataFieldLen = dataFieldLen_; }
void setFullPacketLen(size_t fullPacketLen_) { fullPacketLen = fullPacketLen_; }
SpacePacketCreator& creator;
uint8_t* buf = nullptr;
size_t maxSize = 0;
size_t dataFieldLen = 0;
size_t fullPacketLen = 0;
};
class SpTcBase {
@ -39,7 +37,7 @@ class SpTcBase {
}
void updateSpFields() {
spParams.creator.setDataLenField(spParams.dataFieldLen - 1);
spParams.creator.setDataLenField(spParams.fullPacketLen - 1);
spParams.creator.setPacketType(ccsds::PacketType::TC);
}
@ -50,7 +48,7 @@ class SpTcBase {
uint16_t getApid() const { return spParams.creator.getApid(); }
ReturnValue_t checkPayloadLen() {
if (ccsds::HEADER_LEN + spParams.dataFieldLen > spParams.maxSize) {
if (ccsds::HEADER_LEN + spParams.fullPacketLen > spParams.maxSize) {
return SerializeIF::BUFFER_TOO_SHORT;
}