start using new packet format
This commit is contained in:
@ -355,11 +355,11 @@ enum PoolIds : lp_id_t {
|
||||
ADC_ENG_15
|
||||
};
|
||||
|
||||
struct SupvTcParams : public ploc::SpTcParams {
|
||||
struct TcParams : public ploc::SpTcParams {
|
||||
public:
|
||||
SupvTcParams(SpacePacketCreator& creator) : ploc::SpTcParams(creator) {}
|
||||
TcParams(SpacePacketCreator& creator) : ploc::SpTcParams(creator) {}
|
||||
|
||||
SupvTcParams(SpacePacketCreator& creator, uint8_t* buf, size_t maxSize)
|
||||
TcParams(SpacePacketCreator& creator, uint8_t* buf, size_t maxSize)
|
||||
: ploc::SpTcParams(creator, buf, maxSize) {}
|
||||
|
||||
void setLenFromPayloadLen(size_t payloadLen) {
|
||||
@ -367,14 +367,14 @@ struct SupvTcParams : public ploc::SpTcParams {
|
||||
}
|
||||
};
|
||||
|
||||
class SupvTcBase : public ploc::SpTcBase {
|
||||
class TcBase : public ploc::SpTcBase {
|
||||
public:
|
||||
SupvTcBase(SupvTcParams params) : ploc::SpTcBase(params) { setup(); }
|
||||
TcBase(TcParams params) : ploc::SpTcBase(params) { setup(); }
|
||||
|
||||
SupvTcBase(SupvTcParams params, uint16_t apid, uint8_t serviceId, uint16_t seqCount)
|
||||
TcBase(TcParams params, uint16_t apid, uint8_t serviceId, uint16_t seqCount)
|
||||
: ploc::SpTcBase(params, apid, seqCount), serviceId(serviceId) {
|
||||
if (setup() == OK) {
|
||||
params.buf + supv::PAYLOAD_OFFSET = serviceId;
|
||||
if (setup() == OK and params.buf != nullptr) {
|
||||
params.buf[supv::PAYLOAD_OFFSET] = serviceId;
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,11 +391,13 @@ class SupvTcBase : public ploc::SpTcBase {
|
||||
}
|
||||
};
|
||||
|
||||
class NoPayloadPacket : public SupvTcBase {
|
||||
class NoPayloadPacket : public TcBase {
|
||||
public:
|
||||
NoPayloadPacket(SupvTcParams params, uint16_t apid, uint8_t serviceId, uint16_t seqCount)
|
||||
: SupvTcBase(params, apid, serviceId, seqCount) {}
|
||||
NoPayloadPacket(TcParams params, uint16_t apid, uint8_t serviceId)
|
||||
: NoPayloadPacket(params, apid, serviceId, 0) {}
|
||||
|
||||
NoPayloadPacket(TcParams params, uint16_t apid, uint8_t serviceId, uint16_t seqId)
|
||||
: TcBase(params, apid, serviceId, seqId) {}
|
||||
ReturnValue_t buildPacket() {
|
||||
ReturnValue_t result = checkSizeAndSerializeHeader();
|
||||
if (result != OK) {
|
||||
@ -406,33 +408,6 @@ class NoPayloadPacket : public SupvTcBase {
|
||||
|
||||
private:
|
||||
};
|
||||
/**
|
||||
* @brief This class creates a space packet containing only the header data and the CRC.
|
||||
*/
|
||||
class ApidOnlyPacket : public ploc::SpTcBase {
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor
|
||||
*
|
||||
* @param apid The APID to set in the space packet.
|
||||
*
|
||||
* @note Sequence count of empty packet is always 1.
|
||||
*/
|
||||
ApidOnlyPacket(ploc::SpTcParams params, uint16_t apid) : ploc::SpTcBase(params) {
|
||||
spParams.setFullPayloadLen(MIN_TC_LEN);
|
||||
spParams.creator.setApid(apid);
|
||||
}
|
||||
|
||||
ReturnValue_t buildPacket() {
|
||||
auto res = checkSizeAndSerializeHeader();
|
||||
if (res != returnvalue::OK) {
|
||||
return res;
|
||||
}
|
||||
return calcAndSetCrc();
|
||||
}
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief This class can be used to generate the space packet selecting the boot image of
|
||||
|
Reference in New Issue
Block a user