2021-07-13 20:58:45 +02:00
|
|
|
#include "fsfw/pus/Service17Test.h"
|
2020-09-16 19:05:25 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "fsfw/FSFW.h"
|
2022-07-20 22:21:15 +02:00
|
|
|
#include "fsfw/objectmanager/ObjectManager.h"
|
2021-07-13 20:58:45 +02:00
|
|
|
#include "fsfw/objectmanager/SystemObject.h"
|
2022-07-21 13:48:58 +02:00
|
|
|
#include "fsfw/tmtcservices/tmHelpers.h"
|
2020-09-16 19:05:25 +02:00
|
|
|
|
2022-07-20 22:21:15 +02:00
|
|
|
Service17Test::Service17Test(object_id_t objectId, uint16_t apid, uint8_t serviceId)
|
2022-07-26 11:09:57 +02:00
|
|
|
: PusServiceBase(objectId, apid, serviceId),
|
|
|
|
storeHelper(apid),
|
|
|
|
tmHelper(serviceId, storeHelper, sendHelper) {}
|
2020-09-16 19:05:25 +02:00
|
|
|
|
2022-07-20 11:43:16 +02:00
|
|
|
Service17Test::~Service17Test() = default;
|
2020-09-16 19:05:25 +02:00
|
|
|
|
|
|
|
ReturnValue_t Service17Test::handleRequest(uint8_t subservice) {
|
2022-02-02 10:29:30 +01:00
|
|
|
switch (subservice) {
|
|
|
|
case Subservice::CONNECTION_TEST: {
|
2022-07-26 13:59:09 +02:00
|
|
|
ReturnValue_t result = tmHelper.prepareTmPacket(Subservice::CONNECTION_TEST_REPORT);
|
|
|
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
return tmHelper.storeAndSendTmPacket();
|
2022-02-02 10:29:30 +01:00
|
|
|
}
|
2020-09-16 19:05:25 +02:00
|
|
|
case Subservice::EVENT_TRIGGER_TEST: {
|
2022-02-02 10:29:30 +01:00
|
|
|
triggerEvent(TEST, 1234, 5678);
|
2022-07-26 13:59:09 +02:00
|
|
|
ReturnValue_t result = tmHelper.prepareTmPacket(Subservice::EVENT_TRIGGER_TEST);
|
|
|
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
return tmHelper.storeAndSendTmPacket();
|
2020-09-16 19:05:25 +02:00
|
|
|
}
|
2022-02-02 10:29:30 +01:00
|
|
|
default:
|
|
|
|
return AcceptsTelecommandsIF::INVALID_SUBSERVICE;
|
|
|
|
}
|
2020-09-16 19:05:25 +02:00
|
|
|
}
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
ReturnValue_t Service17Test::performService() { return HasReturnvaluesIF::RETURN_OK; }
|
2022-07-20 11:43:16 +02:00
|
|
|
|
|
|
|
ReturnValue_t Service17Test::initialize() {
|
|
|
|
ReturnValue_t result = PusServiceBase::initialize();
|
|
|
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
|
|
|
return result;
|
|
|
|
}
|
2022-07-20 22:21:15 +02:00
|
|
|
initializeTmHelpers(sendHelper, storeHelper);
|
|
|
|
if (storeHelper.getTmStore() == nullptr) {
|
|
|
|
auto* tmStore = ObjectManager::instance()->get<StorageManagerIF>(objects::TM_STORE);
|
|
|
|
if (tmStore == nullptr) {
|
|
|
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
|
|
|
}
|
2022-07-25 11:24:13 +02:00
|
|
|
storeHelper.setTmStore(*tmStore);
|
2022-07-20 22:21:15 +02:00
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2022-07-25 11:24:13 +02:00
|
|
|
void Service17Test::setCustomTmStore(StorageManagerIF& tmStore_) {
|
2022-07-20 22:21:15 +02:00
|
|
|
storeHelper.setTmStore(tmStore_);
|
|
|
|
}
|