2022-07-20 11:43:16 +02:00
|
|
|
#include "TmStoreHelper.h"
|
|
|
|
|
|
|
|
#include "TmTcMessage.h"
|
2022-07-20 22:21:15 +02:00
|
|
|
|
|
|
|
TmStoreHelper::TmStoreHelper(uint16_t defaultApid, StorageManagerIF* tmStore,
|
|
|
|
TimeStamperIF* timeStamper)
|
2022-07-22 16:06:31 +02:00
|
|
|
: tmStore(tmStore) {
|
2022-07-20 22:21:15 +02:00
|
|
|
creator.setApid(defaultApid);
|
2022-07-22 16:06:31 +02:00
|
|
|
creator.setTimeStamper(timeStamper);
|
2022-07-20 22:21:15 +02:00
|
|
|
}
|
|
|
|
|
2022-07-22 16:06:31 +02:00
|
|
|
TmStoreHelper::TmStoreHelper(uint16_t defaultApid, StorageManagerIF* tmStore) : tmStore(tmStore) {
|
2022-07-20 22:21:15 +02:00
|
|
|
creator.setApid(defaultApid);
|
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreHelper::preparePacket(uint8_t service, uint8_t subservice, uint16_t counter) {
|
2022-07-20 11:43:16 +02:00
|
|
|
// TODO: Implement
|
|
|
|
// creator.setApid(apid);
|
2022-07-20 22:21:15 +02:00
|
|
|
PusTmParams& params = creator.getParams();
|
|
|
|
params.secHeader.service = service;
|
|
|
|
params.secHeader.subservice = subservice;
|
|
|
|
params.secHeader.messageTypeCounter = counter;
|
2022-07-20 11:43:16 +02:00
|
|
|
// TODO: Implement serialize and then serialize into the store
|
2022-07-20 22:21:15 +02:00
|
|
|
return HasReturnvaluesIF::RETURN_OK;
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
StorageManagerIF* TmStoreHelper::getTmStore() { return tmStore; }
|
|
|
|
|
|
|
|
void TmStoreHelper::setTmStore(StorageManagerIF* store) { tmStore = store; }
|
|
|
|
const store_address_t& TmStoreHelper::getCurrentAddr() const { return currentAddr; }
|
|
|
|
ReturnValue_t TmStoreHelper::deletePacket() { return tmStore->deleteData(currentAddr); }
|
|
|
|
|
|
|
|
void TmStoreHelper::setSourceDataRaw(const uint8_t* data, size_t len) {
|
|
|
|
PusTmParams& params = creator.getParams();
|
|
|
|
params.dataWrapper.type = ecss::DataTypes::RAW;
|
|
|
|
params.dataWrapper.dataUnion.raw.data = data;
|
|
|
|
params.dataWrapper.dataUnion.raw.len = len;
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
void TmStoreHelper::setSourceDataSerializable(SerializeIF* serializable) {
|
|
|
|
PusTmParams& params = creator.getParams();
|
|
|
|
params.dataWrapper.type = ecss::DataTypes::SERIALIZABLE;
|
|
|
|
params.dataWrapper.dataUnion.serializable = serializable;
|
|
|
|
}
|
2022-07-20 11:43:16 +02:00
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
ReturnValue_t TmStoreHelper::addPacketToStore() {
|
|
|
|
creator.updateSpLengthField();
|
|
|
|
uint8_t* dataPtr;
|
|
|
|
tmStore->getFreeElement(¤tAddr, creator.getSerializedSize(), &dataPtr);
|
|
|
|
size_t serLen = 0;
|
|
|
|
return creator.serialize(&dataPtr, &serLen, creator.getSerializedSize(),
|
|
|
|
SerializeIF::Endianness::NETWORK);
|
|
|
|
}
|
2022-07-20 11:43:16 +02:00
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
void TmStoreHelper::setTimeStamper(TimeStamperIF* timeStamper_) {
|
|
|
|
creator.setTimeStamper(timeStamper_);
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
2022-07-20 22:21:15 +02:00
|
|
|
void TmStoreHelper::setApid(uint16_t apid) { creator.setApid(apid); }
|