2022-07-20 11:43:16 +02:00
|
|
|
#include "TmStoreHelper.h"
|
|
|
|
|
|
|
|
#include "TmTcMessage.h"
|
2022-07-20 22:21:15 +02:00
|
|
|
|
2022-07-25 19:36:56 +02:00
|
|
|
TmStoreHelper::TmStoreHelper(uint16_t defaultApid) : tmStore(nullptr) {
|
2022-07-25 10:50:52 +02:00
|
|
|
creator.setApid(defaultApid);
|
|
|
|
}
|
|
|
|
|
|
|
|
TmStoreHelper::TmStoreHelper(uint16_t defaultApid, StorageManagerIF& tmStore) : tmStore(&tmStore) {
|
2022-07-20 22:21:15 +02:00
|
|
|
creator.setApid(defaultApid);
|
|
|
|
}
|
|
|
|
|
2022-07-25 10:50:52 +02:00
|
|
|
TmStoreHelper::TmStoreHelper(uint16_t defaultApid, StorageManagerIF& tmStore,
|
2022-09-05 14:44:35 +02:00
|
|
|
TimeWriterIF& timeStamper)
|
2022-07-25 10:50:52 +02:00
|
|
|
: tmStore(&tmStore) {
|
2022-07-20 22:21:15 +02:00
|
|
|
creator.setApid(defaultApid);
|
2022-07-25 10:50:52 +02:00
|
|
|
creator.setTimeStamper(timeStamper);
|
2022-07-20 22:21:15 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreHelper::preparePacket(uint8_t service, uint8_t subservice, uint16_t counter) {
|
2022-07-26 11:14:40 +02:00
|
|
|
creator.setService(service);
|
|
|
|
creator.setSubservice(subservice);
|
|
|
|
creator.setMessageTypeCounter(counter);
|
2022-08-16 01:08:26 +02:00
|
|
|
return returnvalue::OK;
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
|
|
|
|
2022-07-25 13:39:07 +02:00
|
|
|
StorageManagerIF* TmStoreHelper::getTmStore() const { return tmStore; }
|
2022-07-20 22:21:15 +02:00
|
|
|
|
2022-07-25 11:24:13 +02:00
|
|
|
void TmStoreHelper::setTmStore(StorageManagerIF& store) { tmStore = &store; }
|
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
const store_address_t& TmStoreHelper::getCurrentAddr() const { return currentAddr; }
|
2022-07-25 11:24:13 +02:00
|
|
|
|
2022-07-25 13:39:07 +02:00
|
|
|
ReturnValue_t TmStoreHelper::deletePacket() {
|
2022-07-25 19:36:56 +02:00
|
|
|
ReturnValue_t result = tmStore->deleteData(currentAddr);
|
2022-08-16 01:08:26 +02:00
|
|
|
if (result == returnvalue::OK) {
|
2022-07-25 13:39:07 +02:00
|
|
|
currentAddr = store_address_t::invalid();
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
2022-07-20 22:21:15 +02:00
|
|
|
|
2022-07-25 11:24:13 +02:00
|
|
|
ReturnValue_t TmStoreHelper::setSourceDataRaw(const uint8_t* data, size_t len) {
|
|
|
|
return creator.setRawUserData(data, len);
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
|
|
|
|
2022-07-25 11:26:45 +02:00
|
|
|
ReturnValue_t TmStoreHelper::setSourceDataSerializable(SerializeIF& serializable) {
|
2022-07-25 11:24:13 +02:00
|
|
|
return creator.setSerializableUserData(serializable);
|
2022-07-20 22:21:15 +02:00
|
|
|
}
|
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;
|
2022-07-23 11:43:48 +02:00
|
|
|
ReturnValue_t result =
|
|
|
|
tmStore->getFreeElement(¤tAddr, creator.getSerializedSize(), &dataPtr);
|
2022-08-16 01:08:26 +02:00
|
|
|
if (result != returnvalue::OK) {
|
2022-07-23 11:43:48 +02:00
|
|
|
return result;
|
|
|
|
}
|
2022-07-20 22:21:15 +02:00
|
|
|
size_t serLen = 0;
|
|
|
|
return creator.serialize(&dataPtr, &serLen, creator.getSerializedSize(),
|
|
|
|
SerializeIF::Endianness::NETWORK);
|
|
|
|
}
|
2022-07-20 11:43:16 +02:00
|
|
|
|
2022-09-05 14:44:35 +02:00
|
|
|
void TmStoreHelper::setTimeStamper(TimeWriterIF& timeStamper_) {
|
2022-07-20 22:21:15 +02:00
|
|
|
creator.setTimeStamper(timeStamper_);
|
2022-07-20 11:43:16 +02:00
|
|
|
}
|
2022-07-23 11:43:48 +02:00
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
void TmStoreHelper::setApid(uint16_t apid) { creator.setApid(apid); }
|
2022-07-25 11:15:45 +02:00
|
|
|
|
|
|
|
PusTmCreator& TmStoreHelper::getCreatorRef() { return creator; }
|
2022-07-25 13:39:07 +02:00
|
|
|
|
2022-09-05 14:44:35 +02:00
|
|
|
TimeWriterIF* TmStoreHelper::getTimeStamper() const { return creator.getTimestamper(); }
|
2022-07-25 13:39:07 +02:00
|
|
|
|
|
|
|
uint16_t TmStoreHelper::getApid() const { return creator.getApid(); }
|
2022-07-26 11:09:57 +02:00
|
|
|
|
2022-07-26 11:14:40 +02:00
|
|
|
void TmStoreHelper::setService(uint8_t service) { creator.setService(service); }
|
2022-07-26 11:09:57 +02:00
|
|
|
|
2022-07-26 11:14:40 +02:00
|
|
|
void TmStoreHelper::setSubservice(uint8_t subservice) { creator.setSubservice(subservice); }
|
2022-07-27 11:41:06 +02:00
|
|
|
|
|
|
|
void TmStoreHelper::disableCrcCalculation() { creator.disableCrcCalculation(); }
|
|
|
|
|
|
|
|
bool TmStoreHelper::crcCalculationEnabled() const { return creator.crcCalculationEnabled(); }
|