fsfw/src/fsfw/pus/Service17Test.cpp

60 lines
1.8 KiB
C++
Raw Normal View History

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
Service17Test::Service17Test(PsbParams params)
: PusServiceBase(params),
storeHelper(params.apid),
2022-09-14 20:10:41 +02:00
tmHelper(params.serviceId, storeHelper, sendHelper) {
params.name = "PUS 17 Test";
}
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);
2022-08-16 01:08:26 +02:00
if (result != returnvalue::OK) {
2022-07-26 13:59:09 +02:00
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);
2022-08-16 01:08:26 +02:00
if (result != returnvalue::OK) {
2022-07-26 13:59:09 +02:00
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-08-16 01:08:26 +02:00
ReturnValue_t Service17Test::performService() { return returnvalue::OK; }
2022-07-20 11:43:16 +02:00
ReturnValue_t Service17Test::initialize() {
ReturnValue_t result = PusServiceBase::initialize();
2022-08-16 01:08:26 +02:00
if (result != returnvalue::OK) {
2022-07-20 11:43:16 +02:00
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_);
}