Merge branch 'mueller/refactor-tmtc-stack' into mueller/refactor-tmtc-stack-with-retval-refactoring
This commit is contained in:
commit
2a4ab0af7b
16
CHANGELOG.md
16
CHANGELOG.md
@ -8,17 +8,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
## Changes
|
# [v6.0.0]
|
||||||
|
|
||||||
- Removed `HasReturnvaluesIF` class in favor of `returnvalue` namespace with `OK` and `FAILED`
|
|
||||||
constants.
|
|
||||||
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/659
|
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
|
||||||
- Add new `UnsignedByteField` class
|
- Add new `UnsignedByteField` class
|
||||||
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660
|
||||||
|
|
||||||
|
## Changes
|
||||||
|
|
||||||
|
- Removed `HasReturnvaluesIF` class in favor of `returnvalue` namespace with `OK` and `FAILED`
|
||||||
|
constants.
|
||||||
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/659
|
||||||
|
- Overhaul of the TMTC stack, including various changes and improvements
|
||||||
|
for other modules
|
||||||
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/655
|
||||||
|
which also includes a migration guide
|
||||||
|
|
||||||
# [v5.0.0] 25.07.2022
|
# [v5.0.0] 25.07.2022
|
||||||
|
|
||||||
## Changes
|
## Changes
|
||||||
|
@ -33,7 +33,7 @@ enum framework_objects : object_id_t {
|
|||||||
TC_STORE = 0x534f0100,
|
TC_STORE = 0x534f0100,
|
||||||
TM_STORE = 0x534f0200,
|
TM_STORE = 0x534f0200,
|
||||||
TIME_STAMPER = 0x53500010,
|
TIME_STAMPER = 0x53500010,
|
||||||
TC_VERIFICATOR = 0x53500020,
|
VERIFICATION_REPORTER = 0x53500020,
|
||||||
|
|
||||||
FSFW_OBJECTS_END = 0x53ffffff,
|
FSFW_OBJECTS_END = 0x53ffffff,
|
||||||
NO_OBJECT = 0xFFFFFFFF
|
NO_OBJECT = 0xFFFFFFFF
|
||||||
|
@ -103,16 +103,15 @@ ReturnValue_t PusDistributor::callbackAfterSending(ReturnValue_t queueStatus) {
|
|||||||
if (queueStatus != returnvalue::OK) {
|
if (queueStatus != returnvalue::OK) {
|
||||||
tcStatus = queueStatus;
|
tcStatus = queueStatus;
|
||||||
}
|
}
|
||||||
if (tcStatus != returnvalue::OK) {
|
if (tcStatus != RETURN_OK) {
|
||||||
verifyChannel->sendFailureReport(
|
verifyChannel->sendFailureReport({tcverif::ACCEPTANCE_FAILURE, reader, tcStatus});
|
||||||
VerifFailureParams(tcverif::ACCEPTANCE_FAILURE, reader, tcStatus));
|
|
||||||
// A failed packet is deleted immediately after reporting,
|
// A failed packet is deleted immediately after reporting,
|
||||||
// otherwise it will block memory.
|
// otherwise it will block memory.
|
||||||
store->deleteData(currentMessage.getStorageId());
|
store->deleteData(currentMessage.getStorageId());
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
} else {
|
} else {
|
||||||
verifyChannel->sendSuccessReport(VerifSuccessParams(tcverif::ACCEPTANCE_SUCCESS, reader));
|
verifyChannel->sendSuccessReport({tcverif::ACCEPTANCE_SUCCESS, reader});
|
||||||
return returnvalue::OK;
|
return RETURN_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +135,7 @@ ReturnValue_t PusDistributor::initialize() {
|
|||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
if (verifyChannel == nullptr) {
|
if (verifyChannel == nullptr) {
|
||||||
verifyChannel = ObjectManager::instance()->get<VerificationReporterIF>(objects::TC_VERIFICATOR);
|
verifyChannel = ObjectManager::instance()->get<VerificationReporterIF>(objects::VERIFICATION_REPORTER);
|
||||||
if (verifyChannel == nullptr) {
|
if (verifyChannel == nullptr) {
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ ReturnValue_t CommandingServiceBase::initialize() {
|
|||||||
|
|
||||||
if (verificationReporter == nullptr) {
|
if (verificationReporter == nullptr) {
|
||||||
verificationReporter =
|
verificationReporter =
|
||||||
ObjectManager::instance()->get<VerificationReporterIF>(objects::TC_VERIFICATOR);
|
ObjectManager::instance()->get<VerificationReporterIF>(objects::VERIFICATION_REPORTER);
|
||||||
if (verificationReporter == nullptr) {
|
if (verificationReporter == nullptr) {
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ ReturnValue_t PusServiceBase::initialize() {
|
|||||||
|
|
||||||
if (psbParams.verifReporter == nullptr) {
|
if (psbParams.verifReporter == nullptr) {
|
||||||
psbParams.verifReporter =
|
psbParams.verifReporter =
|
||||||
ObjectManager::instance()->get<VerificationReporterIF>(objects::TC_VERIFICATOR);
|
ObjectManager::instance()->get<VerificationReporterIF>(objects::VERIFICATION_REPORTER);
|
||||||
if (psbParams.verifReporter == nullptr) {
|
if (psbParams.verifReporter == nullptr) {
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#include "fsfw/tmtcservices/PusVerificationReport.h"
|
#include "fsfw/tmtcservices/PusVerificationReport.h"
|
||||||
|
|
||||||
object_id_t VerificationReporter::DEFAULT_RECEIVER = objects::PUS_SERVICE_1_VERIFICATION;
|
object_id_t VerificationReporter::DEFAULT_RECEIVER = objects::PUS_SERVICE_1_VERIFICATION;
|
||||||
object_id_t VerificationReporter::DEFAULT_REPORTER = objects::TC_VERIFICATOR;
|
object_id_t VerificationReporter::DEFAULT_REPORTER = objects::VERIFICATION_REPORTER;
|
||||||
|
|
||||||
VerificationReporter::VerificationReporter(AcceptsVerifyMessageIF* receiver, object_id_t objectId)
|
VerificationReporter::VerificationReporter(object_id_t objectId, AcceptsVerifyMessageIF* receiver)
|
||||||
: SystemObject(objectId) {
|
: SystemObject(objectId) {
|
||||||
if (receiver != nullptr) {
|
if (receiver != nullptr) {
|
||||||
acknowledgeQueue = receiver->getVerificationQueue();
|
acknowledgeQueue = receiver->getVerificationQueue();
|
||||||
|
@ -27,16 +27,13 @@ class VerificationReporter : public SystemObject, public VerificationReporterIF
|
|||||||
friend void Factory::setStaticFrameworkObjectIds();
|
friend void Factory::setStaticFrameworkObjectIds();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit VerificationReporter(AcceptsVerifyMessageIF* receiver,
|
explicit VerificationReporter(object_id_t objectId = DEFAULT_REPORTER,
|
||||||
object_id_t objectId = DEFAULT_REPORTER);
|
AcceptsVerifyMessageIF* receiver = nullptr);
|
||||||
~VerificationReporter() override;
|
~VerificationReporter() override;
|
||||||
|
|
||||||
void setReceiver(AcceptsVerifyMessageIF& receiver);
|
void setReceiver(AcceptsVerifyMessageIF& receiver);
|
||||||
|
|
||||||
// TODO: The API is a little bit bloated. It might be better to group all the parameters
|
|
||||||
// into a dedicated struct
|
|
||||||
ReturnValue_t sendSuccessReport(VerifSuccessParams params) override;
|
ReturnValue_t sendSuccessReport(VerifSuccessParams params) override;
|
||||||
|
|
||||||
ReturnValue_t sendFailureReport(VerifFailureParams params) override;
|
ReturnValue_t sendFailureReport(VerifFailureParams params) override;
|
||||||
|
|
||||||
static object_id_t DEFAULT_REPORTER;
|
static object_id_t DEFAULT_REPORTER;
|
||||||
@ -44,7 +41,7 @@ class VerificationReporter : public SystemObject, public VerificationReporterIF
|
|||||||
ReturnValue_t initialize() override;
|
ReturnValue_t initialize() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MessageQueueId_t acknowledgeQueue;
|
MessageQueueId_t acknowledgeQueue = MessageQueueIF::NO_QUEUE;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ */
|
#endif /* FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ */
|
||||||
|
@ -213,7 +213,7 @@ TEST_CASE("Pus Service Base", "[pus-service-base]") {
|
|||||||
SECTION("Auto Initialize Verification Reporter") {
|
SECTION("Auto Initialize Verification Reporter") {
|
||||||
psbParams.verifReporter = nullptr;
|
psbParams.verifReporter = nullptr;
|
||||||
psbParams.objectId = 1;
|
psbParams.objectId = 1;
|
||||||
object_id_t reporterId = objects::TC_VERIFICATOR;
|
object_id_t reporterId = objects::VERIFICATION_REPORTER;
|
||||||
PusVerificationReporterMock otherReporter(reporterId);
|
PusVerificationReporterMock otherReporter(reporterId);
|
||||||
auto psb2 = PsbMock(psbParams);
|
auto psb2 = PsbMock(psbParams);
|
||||||
REQUIRE(psb2.initialize() == returnvalue::OK);
|
REQUIRE(psb2.initialize() == returnvalue::OK);
|
||||||
|
Loading…
Reference in New Issue
Block a user