2022-07-26 10:21:16 +02:00
|
|
|
#include "TmStoreAndSendHelper.h"
|
2022-07-26 11:09:57 +02:00
|
|
|
#include "tmHelpers.h"
|
2022-07-26 10:21:16 +02:00
|
|
|
|
2022-07-26 11:09:57 +02:00
|
|
|
TmStoreAndSendWrapper::TmStoreAndSendWrapper(
|
|
|
|
uint8_t defaultService, TmStoreHelper& storeHelper, TmSendHelper& sendHelper)
|
|
|
|
: storeHelper(storeHelper), sendHelper(sendHelper), defaultService(defaultService){}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreAndSendWrapper::storeAndSendTmPacket() {
|
|
|
|
ReturnValue_t result = storeHelper.addPacketToStore();
|
|
|
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
result = sendHelper.sendPacket(storeHelper.getCurrentAddr());
|
|
|
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
|
|
|
if (delOnFailure) {
|
|
|
|
storeHelper.deletePacket();
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
if(incrementSendCounter) {
|
|
|
|
sendCounter++;
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreAndSendWrapper::sendTmPacket(uint8_t subservice, const uint8_t* sourceData,
|
|
|
|
size_t sourceDataLen) {
|
|
|
|
storeHelper.preparePacket(defaultService, subservice, sendCounter);
|
|
|
|
storeHelper.setSourceDataRaw(sourceData, sourceDataLen);
|
|
|
|
return storeAndSendTmPacket();
|
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreAndSendWrapper::sendTmPacket(uint8_t subservice, object_id_t objectId,
|
|
|
|
const uint8_t* data, size_t dataLen) {
|
|
|
|
telemetry::DataWithObjectIdPrefix dataWithObjId(objectId, data, dataLen);
|
|
|
|
storeHelper.preparePacket(defaultService, subservice, sendCounter);
|
|
|
|
storeHelper.setSourceDataSerializable(dataWithObjId);
|
|
|
|
return storeAndSendTmPacket();
|
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreAndSendWrapper::sendTmPacket(uint8_t subservice, SerializeIF& sourceData) {
|
|
|
|
storeHelper.preparePacket(defaultService, subservice, sendCounter);
|
|
|
|
storeHelper.setSourceDataSerializable(sourceData);
|
|
|
|
return storeAndSendTmPacket();
|
|
|
|
}
|
|
|
|
|
|
|
|
ReturnValue_t TmStoreAndSendWrapper::sendTmPacket(uint8_t subservice) {
|
|
|
|
storeHelper.preparePacket(defaultService, subservice, sendCounter);
|
|
|
|
storeHelper.setSourceDataRaw(nullptr, 0);
|
|
|
|
return storeAndSendTmPacket();
|
|
|
|
}
|