From 25db9bc9ed8bb53b211d1e0ea5b46ed6967888c6 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 14 Dec 2020 21:30:39 +0100 Subject: [PATCH 1/6] tmtcservices update --- pus/servicepackets/Service1Packets.h | 8 ++--- tcdistribution/PUSDistributor.cpp | 4 +-- tmtcservices/AcceptsTelecommandsIF.h | 12 +++---- tmtcservices/AcceptsTelemetryIF.h | 9 ++--- tmtcservices/AcceptsVerifyMessageIF.h | 6 ++-- tmtcservices/CommandingServiceBase.cpp | 40 +++++++++++----------- tmtcservices/CommandingServiceBase.h | 10 +++--- tmtcservices/PusServiceBase.cpp | 47 ++++++++++++++------------ tmtcservices/PusServiceBase.h | 13 +++---- tmtcservices/PusVerificationReport.cpp | 2 +- tmtcservices/PusVerificationReport.h | 2 -- tmtcservices/ServiceTypes.h | 8 +---- tmtcservices/SourceSequenceCounter.h | 12 ++----- tmtcservices/TmTcBridge.cpp | 8 ++--- tmtcservices/TmTcBridge.h | 10 +++--- tmtcservices/TmTcMessage.cpp | 11 +++--- tmtcservices/TmTcMessage.h | 16 ++++----- tmtcservices/VerificationCodes.h | 2 +- 18 files changed, 107 insertions(+), 113 deletions(-) diff --git a/pus/servicepackets/Service1Packets.h b/pus/servicepackets/Service1Packets.h index ecb62693c..2249b4b0f 100644 --- a/pus/servicepackets/Service1Packets.h +++ b/pus/servicepackets/Service1Packets.h @@ -49,7 +49,7 @@ public: if (result != HasReturnvaluesIF::RETURN_OK) { return result; } - if (failureSubtype == TC_VERIFY::PROGRESS_FAILURE) { + if (failureSubtype == tc_verification::PROGRESS_FAILURE) { result = SerializeAdapter::serialize(&stepNumber, buffer, size, maxSize, streamEndianness); if (result != HasReturnvaluesIF::RETURN_OK) { @@ -77,7 +77,7 @@ public: size_t size = 0; size += SerializeAdapter::getSerializedSize(&packetId); size += sizeof(packetSequenceControl); - if(failureSubtype==TC_VERIFY::PROGRESS_FAILURE){ + if(failureSubtype==tc_verification::PROGRESS_FAILURE){ size += SerializeAdapter::getSerializedSize(&stepNumber); } size += SerializeAdapter::getSerializedSize(&errorCode); @@ -131,7 +131,7 @@ public: if (result != HasReturnvaluesIF::RETURN_OK) { return result; } - if (subtype == TC_VERIFY::PROGRESS_SUCCESS) { + if (subtype == tc_verification::PROGRESS_SUCCESS) { result = SerializeAdapter::serialize(&stepNumber, buffer, size, maxSize, streamEndianness); if (result != HasReturnvaluesIF::RETURN_OK) { @@ -145,7 +145,7 @@ public: size_t size = 0; size += SerializeAdapter::getSerializedSize(&packetId); size += sizeof(packetSequenceControl); - if(subtype == TC_VERIFY::PROGRESS_SUCCESS){ + if(subtype == tc_verification::PROGRESS_SUCCESS){ size += SerializeAdapter::getSerializedSize(&stepNumber); } return size; diff --git a/tcdistribution/PUSDistributor.cpp b/tcdistribution/PUSDistributor.cpp index d964202fb..8e5b94cc1 100644 --- a/tcdistribution/PUSDistributor.cpp +++ b/tcdistribution/PUSDistributor.cpp @@ -77,14 +77,14 @@ ReturnValue_t PUSDistributor::callbackAfterSending(ReturnValue_t queueStatus) { tcStatus = queueStatus; } if (tcStatus != RETURN_OK) { - this->verifyChannel.sendFailureReport(TC_VERIFY::ACCEPTANCE_FAILURE, + this->verifyChannel.sendFailureReport(tc_verification::ACCEPTANCE_FAILURE, currentPacket, tcStatus); // A failed packet is deleted immediately after reporting, // otherwise it will block memory. currentPacket->deletePacket(); return RETURN_FAILED; } else { - this->verifyChannel.sendSuccessReport(TC_VERIFY::ACCEPTANCE_SUCCESS, + this->verifyChannel.sendSuccessReport(tc_verification::ACCEPTANCE_SUCCESS, currentPacket); return RETURN_OK; } diff --git a/tmtcservices/AcceptsTelecommandsIF.h b/tmtcservices/AcceptsTelecommandsIF.h index 76d10a592..bff0e9550 100644 --- a/tmtcservices/AcceptsTelecommandsIF.h +++ b/tmtcservices/AcceptsTelecommandsIF.h @@ -1,5 +1,5 @@ -#ifndef ACCEPTSTELECOMMANDSIF_H_ -#define ACCEPTSTELECOMMANDSIF_H_ +#ifndef FRAMEWORK_TMTCSERVICES_ACCEPTSTELECOMMANDSIF_H_ +#define FRAMEWORK_TMTCSERVICES_ACCEPTSTELECOMMANDSIF_H_ #include "../ipc/MessageQueueSenderIF.h" @@ -12,7 +12,7 @@ class AcceptsTelecommandsIF { public: static const uint8_t INTERFACE_ID = CLASS_ID::ACCEPTS_TELECOMMANDS_IF; - static const ReturnValue_t ACTIVITY_STARTED = MAKE_RETURN_CODE(1); + static const ReturnValue_t ACTIVITY_STARTED = MAKE_RETURN_CODE(1); // is this used anywhere or can it be removed? static const ReturnValue_t INVALID_SUBSERVICE = MAKE_RETURN_CODE(2); static const ReturnValue_t ILLEGAL_APPLICATION_DATA = MAKE_RETURN_CODE(3); static const ReturnValue_t SEND_TM_FAILED = MAKE_RETURN_CODE(4); @@ -26,9 +26,9 @@ public: /** * @brief Getter for the service id. * @details Any receiving service (at least any PUS service) shall have a - * service id. If the receiver can handle Telecommands, but for + * service ID. If the receiver can handle Telecommands, but for * some reason has no service id, it shall return 0. - * @return The service id or 0. + * @return The service ID or 0. */ virtual uint16_t getIdentifier() = 0; /** @@ -40,4 +40,4 @@ public: }; -#endif /* ACCEPTSTELECOMMANDSIF_H_ */ +#endif /* FRAMEWORK_TMTCSERVICES_ACCEPTSTELECOMMANDSIF_H_ */ diff --git a/tmtcservices/AcceptsTelemetryIF.h b/tmtcservices/AcceptsTelemetryIF.h index 2325dbe08..43173d89b 100644 --- a/tmtcservices/AcceptsTelemetryIF.h +++ b/tmtcservices/AcceptsTelemetryIF.h @@ -1,5 +1,5 @@ -#ifndef ACCEPTSTELEMETRYIF_H_ -#define ACCEPTSTELEMETRYIF_H_ +#ifndef FSFW_TMTCSERVICES_ACCEPTSTELEMETRYIF_H_ +#define FSFW_TMTCSERVICES_ACCEPTSTELEMETRYIF_H_ #include "../ipc/MessageQueueSenderIF.h" /** @@ -20,7 +20,8 @@ public: * receiving message queue. * @return The telemetry reception message queue id. */ - virtual MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel = 0) = 0; + virtual MessageQueueId_t getReportReceptionQueue( + uint8_t virtualChannel = 0) = 0; }; -#endif /* ACCEPTSTELEMETRYIF_H_ */ +#endif /* FSFW_TMTCSERVICES_ACCEPTSTELEMETRYIF_H_ */ diff --git a/tmtcservices/AcceptsVerifyMessageIF.h b/tmtcservices/AcceptsVerifyMessageIF.h index c9318ab01..d16def4db 100644 --- a/tmtcservices/AcceptsVerifyMessageIF.h +++ b/tmtcservices/AcceptsVerifyMessageIF.h @@ -1,5 +1,5 @@ -#ifndef ACCEPTSVERIFICATIONMESSAGEIF_H_ -#define ACCEPTSVERIFICATIONMESSAGEIF_H_ +#ifndef FSFW_TMTCSERVICES_ACCEPTSVERIFICATIONMESSAGEIF_H_ +#define FSFW_TMTCSERVICES_ACCEPTSVERIFICATIONMESSAGEIF_H_ #include "../ipc/MessageQueueSenderIF.h" @@ -12,4 +12,4 @@ public: }; -#endif /* ACCEPTSVERIFICATIONMESSAGEIF_H_ */ +#endif /* FSFW_TMTCSERVICES_ACCEPTSVERIFICATIONMESSAGEIF_H_ */ diff --git a/tmtcservices/CommandingServiceBase.cpp b/tmtcservices/CommandingServiceBase.cpp index 0ebc3944f..ed765ecc8 100644 --- a/tmtcservices/CommandingServiceBase.cpp +++ b/tmtcservices/CommandingServiceBase.cpp @@ -1,9 +1,9 @@ -#include "../tcdistribution/PUSDistributorIF.h" #include "AcceptsTelemetryIF.h" -#include "../objectmanager/ObjectManagerIF.h" - #include "CommandingServiceBase.h" #include "TmTcMessage.h" + +#include "../tcdistribution/PUSDistributorIF.h" +#include "../objectmanager/ObjectManagerIF.h" #include "../ipc/QueueFactory.h" #include "../tmtcpacket/pus/TcPacketStored.h" #include "../tmtcpacket/pus/TmPacketStored.h" @@ -149,13 +149,13 @@ void CommandingServiceBase::handleCommandMessage(CommandMessage* reply) { default: if (isStep) { verificationReporter.sendFailureReport( - TC_VERIFY::PROGRESS_FAILURE, iter->second.tcInfo.ackFlags, + tc_verification::PROGRESS_FAILURE, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, result, ++iter->second.step, failureParameter1, failureParameter2); } else { verificationReporter.sendFailureReport( - TC_VERIFY::COMPLETION_FAILURE, iter->second.tcInfo.ackFlags, + tc_verification::COMPLETION_FAILURE, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, result, 0, failureParameter1, failureParameter2); } @@ -184,13 +184,13 @@ void CommandingServiceBase::handleReplyHandlerResult(ReturnValue_t result, if (sendResult == RETURN_OK) { if (isStep and result != NO_STEP_MESSAGE) { verificationReporter.sendSuccessReport( - TC_VERIFY::PROGRESS_SUCCESS, + tc_verification::PROGRESS_SUCCESS, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, ++iter->second.step); } else { verificationReporter.sendSuccessReport( - TC_VERIFY::COMPLETION_SUCCESS, + tc_verification::COMPLETION_SUCCESS, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, 0); checkAndExecuteFifo(iter); @@ -200,14 +200,14 @@ void CommandingServiceBase::handleReplyHandlerResult(ReturnValue_t result, if (isStep) { nextCommand->clearCommandMessage(); verificationReporter.sendFailureReport( - TC_VERIFY::PROGRESS_FAILURE, iter->second.tcInfo.ackFlags, + tc_verification::PROGRESS_FAILURE, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, sendResult, ++iter->second.step, failureParameter1, failureParameter2); } else { nextCommand->clearCommandMessage(); verificationReporter.sendFailureReport( - TC_VERIFY::COMPLETION_FAILURE, + tc_verification::COMPLETION_FAILURE, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, sendResult, 0, failureParameter1, failureParameter2); @@ -232,14 +232,14 @@ void CommandingServiceBase::handleRequestQueue() { if ((packet.getSubService() == 0) or (isValidSubservice(packet.getSubService()) != RETURN_OK)) { - rejectPacket(TC_VERIFY::START_FAILURE, &packet, INVALID_SUBSERVICE); + rejectPacket(tc_verification::START_FAILURE, &packet, INVALID_SUBSERVICE); continue; } result = getMessageQueueAndObject(packet.getSubService(), packet.getApplicationData(), packet.getApplicationDataSize(), &queue, &objectId); if (result != HasReturnvaluesIF::RETURN_OK) { - rejectPacket(TC_VERIFY::START_FAILURE, &packet, result); + rejectPacket(tc_verification::START_FAILURE, &packet, result); continue; } @@ -250,14 +250,14 @@ void CommandingServiceBase::handleRequestQueue() { if (iter != commandMap.end()) { result = iter->second.fifo.insert(address); if (result != RETURN_OK) { - rejectPacket(TC_VERIFY::START_FAILURE, &packet, OBJECT_BUSY); + rejectPacket(tc_verification::START_FAILURE, &packet, OBJECT_BUSY); } } else { CommandInfo newInfo; //Info will be set by startExecution if neccessary newInfo.objectId = objectId; result = commandMap.insert(queue, newInfo, &iter); if (result != RETURN_OK) { - rejectPacket(TC_VERIFY::START_FAILURE, &packet, BUSY); + rejectPacket(tc_verification::START_FAILURE, &packet, BUSY); } else { startExecution(&packet, iter); } @@ -338,10 +338,10 @@ void CommandingServiceBase::startExecution(TcPacketStored *storedPacket, iter->second.tcInfo.tcPacketId = storedPacket->getPacketId(); iter->second.tcInfo.tcSequenceControl = storedPacket->getPacketSequenceControl(); - acceptPacket(TC_VERIFY::START_SUCCESS, storedPacket); + acceptPacket(tc_verification::START_SUCCESS, storedPacket); } else { command.clearCommandMessage(); - rejectPacket(TC_VERIFY::START_FAILURE, storedPacket, sendResult); + rejectPacket(tc_verification::START_FAILURE, storedPacket, sendResult); checkAndExecuteFifo(iter); } break; @@ -352,18 +352,18 @@ void CommandingServiceBase::startExecution(TcPacketStored *storedPacket, &command); } if (sendResult == RETURN_OK) { - verificationReporter.sendSuccessReport(TC_VERIFY::START_SUCCESS, + verificationReporter.sendSuccessReport(tc_verification::START_SUCCESS, storedPacket); - acceptPacket(TC_VERIFY::COMPLETION_SUCCESS, storedPacket); + acceptPacket(tc_verification::COMPLETION_SUCCESS, storedPacket); checkAndExecuteFifo(iter); } else { command.clearCommandMessage(); - rejectPacket(TC_VERIFY::START_FAILURE, storedPacket, sendResult); + rejectPacket(tc_verification::START_FAILURE, storedPacket, sendResult); checkAndExecuteFifo(iter); } break; default: - rejectPacket(TC_VERIFY::START_FAILURE, storedPacket, result); + rejectPacket(tc_verification::START_FAILURE, storedPacket, result); checkAndExecuteFifo(iter); break; } @@ -414,7 +414,7 @@ void CommandingServiceBase::checkTimeout() { for (iter = commandMap.begin(); iter != commandMap.end(); ++iter) { if ((iter->second.uptimeOfStart + (timeoutSeconds * 1000)) < uptime) { verificationReporter.sendFailureReport( - TC_VERIFY::COMPLETION_FAILURE, iter->second.tcInfo.ackFlags, + tc_verification::COMPLETION_FAILURE, iter->second.tcInfo.ackFlags, iter->second.tcInfo.tcPacketId, iter->second.tcInfo.tcSequenceControl, TIMEOUT); checkAndExecuteFifo(iter); diff --git a/tmtcservices/CommandingServiceBase.h b/tmtcservices/CommandingServiceBase.h index 252b69435..3611d7c62 100644 --- a/tmtcservices/CommandingServiceBase.h +++ b/tmtcservices/CommandingServiceBase.h @@ -1,18 +1,20 @@ #ifndef FSFW_TMTCSERVICES_COMMANDINGSERVICEBASE_H_ #define FSFW_TMTCSERVICES_COMMANDINGSERVICEBASE_H_ +#include "AcceptsTelecommandsIF.h" +#include "VerificationReporter.h" + #include "../objectmanager/SystemObject.h" #include "../storagemanager/StorageManagerIF.h" #include "../tasks/ExecutableObjectIF.h" #include "../ipc/MessageQueueIF.h" -#include "AcceptsTelecommandsIF.h" - -#include "VerificationReporter.h" #include "../ipc/CommandMessage.h" #include "../container/FixedMap.h" #include "../container/FIFO.h" #include "../serialize/SerializeIF.h" +#include + class TcPacketStored; namespace Factory{ @@ -40,7 +42,7 @@ class CommandingServiceBase: public SystemObject, friend void (Factory::setStaticFrameworkObjectIds)(); public: // We could make this configurable via preprocessor and the FSFWConfig file. - static constexpr uint8_t COMMAND_INFO_FIFO_DEPTH = 3; + static constexpr uint8_t COMMAND_INFO_FIFO_DEPTH = FSFW_CSB_FIFO_DEPTH; static const uint8_t INTERFACE_ID = CLASS_ID::COMMAND_SERVICE_BASE; diff --git a/tmtcservices/PusServiceBase.cpp b/tmtcservices/PusServiceBase.cpp index d35944a46..cb5a1247c 100644 --- a/tmtcservices/PusServiceBase.cpp +++ b/tmtcservices/PusServiceBase.cpp @@ -1,9 +1,10 @@ -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../tcdistribution/PUSDistributorIF.h" -#include "AcceptsTelemetryIF.h" #include "PusServiceBase.h" +#include "AcceptsTelemetryIF.h" #include "PusVerificationReport.h" #include "TmTcMessage.h" + +#include "../serviceinterface/ServiceInterfaceStream.h" +#include "../tcdistribution/PUSDistributorIF.h" #include "../ipc/QueueFactory.h" object_id_t PusServiceBase::packetSource = 0; @@ -41,9 +42,14 @@ void PusServiceBase::handleRequestQueue() { ReturnValue_t result = RETURN_FAILED; for (uint8_t count = 0; count < PUS_SERVICE_MAX_RECEPTION; count++) { ReturnValue_t status = this->requestQueue->receiveMessage(&message); - // debug << "PusServiceBase::performOperation: Receiving from MQ ID: " - // << std::hex << this->requestQueue.getId() - // << std::dec << " returned: " << status << std::endl; +// if(status != MessageQueueIF::EMPTY) { +// sif::debug << "PusServiceBase::performOperation: Receiving from " +// << "MQ ID: " << std::hex << "0x" << std::setw(8) +// << std::setfill('0') << this->requestQueue->getId() +// << std::dec << " returned: " << status << std::setfill(' ') +// << std::endl; +// } + if (status == RETURN_OK) { this->currentPacket.setStoreAddress(message.getStorageId()); //info << "Service " << (uint16_t) this->serviceId << @@ -55,11 +61,11 @@ void PusServiceBase::handleRequestQueue() { // ": handleRequest returned: " << (int)return_code << std::endl; if (result == RETURN_OK) { this->verifyReporter.sendSuccessReport( - TC_VERIFY::COMPLETION_SUCCESS, &this->currentPacket); + tc_verification::COMPLETION_SUCCESS, &this->currentPacket); } else { this->verifyReporter.sendFailureReport( - TC_VERIFY::COMPLETION_FAILURE, &this->currentPacket, + tc_verification::COMPLETION_FAILURE, &this->currentPacket, result, 0, errorParameter1, errorParameter2); } this->currentPacket.deletePacket(); @@ -74,9 +80,8 @@ void PusServiceBase::handleRequestQueue() { } else { sif::error << "PusServiceBase::performOperation: Service " - << (uint16_t) this->serviceId - << ": Error receiving packet. Code: " << std::hex << status - << std::dec << std::endl; + << this->serviceId << ": Error receiving packet. Code: " + << std::hex << status << std::dec << std::endl; } } } @@ -98,19 +103,17 @@ ReturnValue_t PusServiceBase::initialize() { packetDestination); PUSDistributorIF* distributor = objectManager->get( packetSource); - if ((destService != nullptr) && (distributor != nullptr)) { - this->requestQueue->setDefaultDestination( - destService->getReportReceptionQueue()); - distributor->registerService(this); - return RETURN_OK; - } - else { + if (destService == nullptr or distributor == nullptr) { sif::error << "PusServiceBase::PusServiceBase: Service " - << (uint32_t) this->serviceId << ": Configuration error." - << " Make sure packetSource and packetDestination are defined " - "correctly" << std::endl; - return RETURN_FAILED; + << this->serviceId << ": Configuration error. Make sure " + << "packetSource and packetDestination are defined correctly" + << std::endl; + return ObjectManagerIF::CHILD_INIT_FAILED; } + this->requestQueue->setDefaultDestination( + destService->getReportReceptionQueue()); + distributor->registerService(this); + return HasReturnvaluesIF::RETURN_OK; } ReturnValue_t PusServiceBase::initializeAfterTaskCreation() { diff --git a/tmtcservices/PusServiceBase.h b/tmtcservices/PusServiceBase.h index 98d65efbb..4d3d99bc4 100644 --- a/tmtcservices/PusServiceBase.h +++ b/tmtcservices/PusServiceBase.h @@ -1,14 +1,15 @@ -#ifndef FRAMEWORK_TMTCSERVICES_PUSSERVICEBASE_H_ -#define FRAMEWORK_TMTCSERVICES_PUSSERVICEBASE_H_ +#ifndef FSFW_TMTCSERVICES_PUSSERVICEBASE_H_ +#define FSFW_TMTCSERVICES_PUSSERVICEBASE_H_ + +#include "AcceptsTelecommandsIF.h" +#include "VerificationCodes.h" +#include "VerificationReporter.h" #include "../objectmanager/ObjectManagerIF.h" #include "../objectmanager/SystemObject.h" #include "../returnvalues/HasReturnvaluesIF.h" #include "../tasks/ExecutableObjectIF.h" #include "../tmtcpacket/pus/TcPacketStored.h" -#include "AcceptsTelecommandsIF.h" -#include "VerificationCodes.h" -#include "VerificationReporter.h" #include "../ipc/MessageQueueIF.h" namespace Factory{ @@ -156,4 +157,4 @@ private: void handleRequestQueue(); }; -#endif /* PUSSERVICEBASE_H_ */ +#endif /* FSFW_TMTCSERVICES_PUSSERVICEBASE_H_ */ diff --git a/tmtcservices/PusVerificationReport.cpp b/tmtcservices/PusVerificationReport.cpp index bfad9ec5e..c64e5feb3 100644 --- a/tmtcservices/PusVerificationReport.cpp +++ b/tmtcservices/PusVerificationReport.cpp @@ -1,5 +1,5 @@ #include "../serialize/SerializeAdapter.h" -#include "PusVerificationReport.h" +#include "../tmtcservices/PusVerificationReport.h" PusVerificationMessage::PusVerificationMessage() { } diff --git a/tmtcservices/PusVerificationReport.h b/tmtcservices/PusVerificationReport.h index 88954cfd5..9dce95ac7 100644 --- a/tmtcservices/PusVerificationReport.h +++ b/tmtcservices/PusVerificationReport.h @@ -7,8 +7,6 @@ #include "../tmtcpacket/pus/TcPacketBase.h" #include "../returnvalues/HasReturnvaluesIF.h" -#include - class PusVerificationMessage: public MessageQueueMessage { private: struct verifciationMessageContent { diff --git a/tmtcservices/ServiceTypes.h b/tmtcservices/ServiceTypes.h index 1f5bff42f..552601f97 100644 --- a/tmtcservices/ServiceTypes.h +++ b/tmtcservices/ServiceTypes.h @@ -1,13 +1,7 @@ -/** - * @file ServiceTypes.h - * @brief This file defines the ServiceTypes class. - * @date 11.04.2013 - * @author baetz - */ - #ifndef SERVICETYPES_H_ #define SERVICETYPES_H_ +// SHOULDDO: This is a duplication of existing configuration structures. Delete it? namespace SERVICE { enum ServiceTypes { TELECOMMAND_VERIFICATION = 1, diff --git a/tmtcservices/SourceSequenceCounter.h b/tmtcservices/SourceSequenceCounter.h index 1cc587587..2b30a53f2 100644 --- a/tmtcservices/SourceSequenceCounter.h +++ b/tmtcservices/SourceSequenceCounter.h @@ -1,12 +1,6 @@ -/** - * @file SourceSequenceCounter.h - * @brief This file defines the SourceSequenceCounter class. - * @date 04.02.2013 - * @author baetz - */ +#ifndef FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ +#define FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ -#ifndef SOURCESEQUENCECOUNTER_H_ -#define SOURCESEQUENCECOUNTER_H_ #include "../tmtcpacket/SpacePacketBase.h" class SourceSequenceCounter { @@ -27,4 +21,4 @@ public: }; -#endif /* SOURCESEQUENCECOUNTER_H_ */ +#endif /* FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ */ diff --git a/tmtcservices/TmTcBridge.cpp b/tmtcservices/TmTcBridge.cpp index 8c2f15e5b..b4e9967bf 100644 --- a/tmtcservices/TmTcBridge.cpp +++ b/tmtcservices/TmTcBridge.cpp @@ -1,7 +1,6 @@ -#include "../tmtcservices/TmTcBridge.h" +#include "TmTcBridge.h" #include "../ipc/QueueFactory.h" -#include "../tmtcservices/AcceptsTelecommandsIF.h" #include "../serviceinterface/ServiceInterfaceStream.h" #include "../globalfunctions/arrayprinter.h" @@ -95,8 +94,9 @@ ReturnValue_t TmTcBridge::handleTm() { ReturnValue_t status = HasReturnvaluesIF::RETURN_OK; ReturnValue_t result = handleTmQueue(); if(result != RETURN_OK) { - sif::error << "TmTcBridge::handleTm: Error handling TM queue!" - << std::endl; + sif::error << "TmTcBridge::handleTm: Error handling TM queue with " + << "error code 0x" << std::hex << result << std::dec + << "!" << std::endl; status = result; } diff --git a/tmtcservices/TmTcBridge.h b/tmtcservices/TmTcBridge.h index 62cfdaac6..0177648c0 100644 --- a/tmtcservices/TmTcBridge.h +++ b/tmtcservices/TmTcBridge.h @@ -1,13 +1,13 @@ -#ifndef FRAMEWORK_TMTCSERVICES_TMTCBRIDGE_H_ -#define FRAMEWORK_TMTCSERVICES_TMTCBRIDGE_H_ +#ifndef FSFW_TMTCSERVICES_TMTCBRIDGE_H_ +#define FSFW_TMTCSERVICES_TMTCBRIDGE_H_ +#include "AcceptsTelemetryIF.h" +#include "AcceptsTelecommandsIF.h" #include "../objectmanager/SystemObject.h" -#include "../tmtcservices/AcceptsTelemetryIF.h" #include "../tasks/ExecutableObjectIF.h" #include "../ipc/MessageQueueIF.h" #include "../storagemanager/StorageManagerIF.h" -#include "../tmtcservices/AcceptsTelecommandsIF.h" #include "../container/DynamicFIFO.h" #include "../tmtcservices/TmTcMessage.h" @@ -159,4 +159,4 @@ protected: }; -#endif /* FRAMEWORK_TMTCSERVICES_TMTCBRIDGE_H_ */ +#endif /* FSFW_TMTCSERVICES_TMTCBRIDGE_H_ */ diff --git a/tmtcservices/TmTcMessage.cpp b/tmtcservices/TmTcMessage.cpp index 987bd2321..ae0283158 100644 --- a/tmtcservices/TmTcMessage.cpp +++ b/tmtcservices/TmTcMessage.cpp @@ -1,5 +1,6 @@ #include "TmTcMessage.h" -#include + +#include TmTcMessage::TmTcMessage() { @@ -15,15 +16,15 @@ store_address_t TmTcMessage::getStorageId() { return temp_id; } -TmTcMessage::TmTcMessage(store_address_t store_id) { +TmTcMessage::TmTcMessage(store_address_t storeId) { this->messageSize += sizeof(store_address_t); - this->setStorageId(store_id); + this->setStorageId(storeId); } size_t TmTcMessage::getMinimumMessageSize() { return this->HEADER_SIZE + sizeof(store_address_t); } -void TmTcMessage::setStorageId(store_address_t store_id) { - memcpy(this->getData(), &store_id, sizeof(store_address_t) ); +void TmTcMessage::setStorageId(store_address_t storeId) { + memcpy(this->getData(), &storeId, sizeof(store_address_t) ); } diff --git a/tmtcservices/TmTcMessage.h b/tmtcservices/TmTcMessage.h index b5e1ff8d4..41fe198a9 100644 --- a/tmtcservices/TmTcMessage.h +++ b/tmtcservices/TmTcMessage.h @@ -1,5 +1,5 @@ -#ifndef TMTCMESSAGE_H_ -#define TMTCMESSAGE_H_ +#ifndef FSFW_TMTCSERVICES_TMTCMESSAGE_H_ +#define FSFW_TMTCSERVICES_TMTCMESSAGE_H_ #include "../ipc/MessageQueueMessage.h" #include "../storagemanager/StorageManagerIF.h" @@ -10,13 +10,13 @@ * a packet stored in one of the IPC stores (typically a special TM and * a special TC store). This makes passing commands very simple and * efficient. - * \ingroup message_queue + * @ingroup message_queue */ class TmTcMessage : public MessageQueueMessage { protected: /** * @brief This call always returns the same fixed size of the message. - * @return Returns HEADER_SIZE + \c sizeof(store_address_t). + * @return Returns HEADER_SIZE + @c sizeof(store_address_t). */ size_t getMinimumMessageSize(); public: @@ -29,7 +29,7 @@ public: * into the message. * @param packet_id The packet id to put into the message. */ - TmTcMessage( store_address_t packet_id ); + TmTcMessage( store_address_t packetId ); /** * @brief The class's destructor is empty. */ @@ -42,9 +42,9 @@ public: /** * @brief In some cases it might be useful to have a setter for packet id * as well. - * @param packet_id The packet id to put into the message. + * @param packetId The packet id to put into the message. */ - void setStorageId( store_address_t packet_id ); + void setStorageId( store_address_t packetId ); }; -#endif /* TMTCMESSAGE_H_ */ +#endif /* FSFW_TMTCSERVICES_TMTCMESSAGE_H_ */ diff --git a/tmtcservices/VerificationCodes.h b/tmtcservices/VerificationCodes.h index e3e89b5a0..35ad6819e 100644 --- a/tmtcservices/VerificationCodes.h +++ b/tmtcservices/VerificationCodes.h @@ -1,7 +1,7 @@ #ifndef VERIFICATIONCODES_H_ #define VERIFICATIONCODES_H_ -namespace TC_VERIFY { +namespace tc_verification { enum verification_flags { NONE = 0b0000, From 703d2590ffbf21603e37a2ecad50e3a7d1a767ec Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Tue, 15 Dec 2020 15:20:08 +0100 Subject: [PATCH 2/6] update csb --- CHANGELOG | 4 ++++ tmtcservices/CommandingServiceBase.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 7b07db082..2ddd76736 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -60,3 +60,7 @@ that DHB users adapt their polling sequence tables to perform this step. This st allows setting a unique ID. Event.cpp source file removed, functions now defined in header directly. Namespaces renamed. Functions declared `constexpr` now + +### Commanding Service Base + +- CSB uses the diff --git a/tmtcservices/CommandingServiceBase.h b/tmtcservices/CommandingServiceBase.h index 3611d7c62..e10f2ddd2 100644 --- a/tmtcservices/CommandingServiceBase.h +++ b/tmtcservices/CommandingServiceBase.h @@ -42,7 +42,8 @@ class CommandingServiceBase: public SystemObject, friend void (Factory::setStaticFrameworkObjectIds)(); public: // We could make this configurable via preprocessor and the FSFWConfig file. - static constexpr uint8_t COMMAND_INFO_FIFO_DEPTH = FSFW_CSB_FIFO_DEPTH; + static constexpr uint8_t COMMAND_INFO_FIFO_DEPTH = + fsfwconfig::FSFW_CSB_FIFO_DEPTH; static const uint8_t INTERFACE_ID = CLASS_ID::COMMAND_SERVICE_BASE; From 72c54d59fac16ceaeb3d32458c6de5e28f60c18e Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Tue, 15 Dec 2020 15:32:56 +0100 Subject: [PATCH 3/6] fsfw config --- defaultcfg/fsfwconfig/FSFWConfig.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/defaultcfg/fsfwconfig/FSFWConfig.h b/defaultcfg/fsfwconfig/FSFWConfig.h index 1386bf66f..334f352a1 100644 --- a/defaultcfg/fsfwconfig/FSFWConfig.h +++ b/defaultcfg/fsfwconfig/FSFWConfig.h @@ -15,12 +15,6 @@ //! Can be used to enable additional debugging printouts for developing the FSFW #define FSFW_PRINT_VERBOSITY_LEVEL 0 -//! Defines the FIFO depth of each commanding service base which -//! also determines how many commands a CSB service can handle in one cycle -//! simulataneously. This will increase the required RAM for -//! each CSB service ! -#define FSFW_CSB_FIFO_DEPTH 6 - //! If FSFW_OBJ_EVENT_TRANSLATION is set to one, //! additional output which requires the translation files translateObjects //! and translateEvents (and their compiled source files) @@ -52,6 +46,12 @@ static constexpr uint8_t FSFW_MISSION_TIMESTAMP_SIZE = 8; static constexpr size_t FSFW_EVENTMGMR_MATCHTREE_NODES = 240; static constexpr size_t FSFW_EVENTMGMT_EVENTIDMATCHERS = 120; static constexpr size_t FSFW_EVENTMGMR_RANGEMATCHERS = 120; + +//! Defines the FIFO depth of each commanding service base which +//! also determines how many commands a CSB service can handle in one cycle +//! simulataneously. This will increase the required RAM for +//! each CSB service ! +static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6; } #endif /* CONFIG_FSFWCONFIG_H_ */ From 82a83a50ee01613c4227407b846173555015b4b4 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Tue, 15 Dec 2020 15:39:33 +0100 Subject: [PATCH 4/6] change log update --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 2ddd76736..68b457f49 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -63,4 +63,4 @@ now ### Commanding Service Base -- CSB uses the +- CSB uses the new fsfwconfig::FSFW_CSB_FIFO_DEPTH variable to determine the FIFO depth for each CSB instance. This variable has to be set in the FSFWConfig.h file From 3b391d33801ef998d8748364711c0dbb17231664 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 22 Dec 2020 14:15:21 +0100 Subject: [PATCH 5/6] deleted service types header --- tmtcservices/ServiceTypes.h | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 tmtcservices/ServiceTypes.h diff --git a/tmtcservices/ServiceTypes.h b/tmtcservices/ServiceTypes.h deleted file mode 100644 index 552601f97..000000000 --- a/tmtcservices/ServiceTypes.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef SERVICETYPES_H_ -#define SERVICETYPES_H_ - -// SHOULDDO: This is a duplication of existing configuration structures. Delete it? -namespace SERVICE { -enum ServiceTypes { - TELECOMMAND_VERIFICATION = 1, - DEVICE_COMMAND_DISTRIBUTION = 2, - HOUSEKEEPING_AND_DIAGNOSTIC_DATA_REPORTING = 3, - PARAMETER_STATISTICS_REPORTING = 4, - EVENT_REPORTING = 5, - MEMORY_MANAGEMENT = 6, - FUNCTION_MANAGEMENT = 8, - TIME_MANAGEMENT = 9, - ON_BOARD_OPERATIONS_SCHEDULING = 11, - ON_BOARD_MONITORING = 12, - LARGE_DATA_TRANSFER = 13, - PACKET_FORWARDING_CONTROL = 14, - ON_BOARD_STORAGE_AND_RETRIEVAL = 15, - TEST = 17, - ON_BOARD_OPERATIONS_PROCEDURE = 18, - EVENT_ACTION = 19 -}; -} - -#endif /* SERVICETYPES_H_ */ From d607332f8d20477d47624e4562417f279b9ccd85 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 22 Dec 2020 14:19:13 +0100 Subject: [PATCH 6/6] removed comment --- tmtcservices/AcceptsTelecommandsIF.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmtcservices/AcceptsTelecommandsIF.h b/tmtcservices/AcceptsTelecommandsIF.h index bff0e9550..7c8710498 100644 --- a/tmtcservices/AcceptsTelecommandsIF.h +++ b/tmtcservices/AcceptsTelecommandsIF.h @@ -12,7 +12,7 @@ class AcceptsTelecommandsIF { public: static const uint8_t INTERFACE_ID = CLASS_ID::ACCEPTS_TELECOMMANDS_IF; - static const ReturnValue_t ACTIVITY_STARTED = MAKE_RETURN_CODE(1); // is this used anywhere or can it be removed? + static const ReturnValue_t ACTIVITY_STARTED = MAKE_RETURN_CODE(1); static const ReturnValue_t INVALID_SUBSERVICE = MAKE_RETURN_CODE(2); static const ReturnValue_t ILLEGAL_APPLICATION_DATA = MAKE_RETURN_CODE(3); static const ReturnValue_t SEND_TM_FAILED = MAKE_RETURN_CODE(4);