add helper methods to disable crc calculation
fsfw/fsfw/pipeline/pr-development There was a failure building this commit Details

This commit is contained in:
Robin Müller 2022-07-27 11:41:06 +02:00
parent 86692e202d
commit 059fb10558
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
4 changed files with 16 additions and 1 deletions

View File

@ -100,6 +100,10 @@ ReturnValue_t CommandingServiceBase::initialize() {
}
tmStoreHelper.setTmStore(*tmStore);
}
// Generally, all TM packets will pass through a layer where the sequence count is set.
// This avoids duplicate calculation of the CRC16
tmStoreHelper.disableCrcCalculation();
if (errReporter == nullptr) {
errReporter =
ObjectManager::instance()->get<InternalErrorReporterIF>(objects::INTERNAL_ERROR_REPORTER);

View File

@ -25,12 +25,16 @@ void setStaticFrameworkObjectIds();
* relay Telecommands to software bus.
*
* It manages Telecommand reception and the generation of Verification Reports
* similar to PusServiceBase. This class is used if a telecommand can't be
* similar to @PusServiceBase. This class is used if a telecommand can't be
* handled immediately and must be relayed to the internal software bus.
* - isValidSubservice
* - getMessageQueueAndObject
* - prepareCommand
* - handleReply
*
* Please note that the TM packets generated by this class will not have a valid CRC. It is
* generally assumed that all packets will pass through a layer where the sequence count is set
* and the CRC16 needs to be re-calculated anyway.
* @author gaisser
* @ingroup pus_services
*/

View File

@ -74,3 +74,7 @@ uint16_t TmStoreHelper::getApid() const { return creator.getApid(); }
void TmStoreHelper::setService(uint8_t service) { creator.setService(service); }
void TmStoreHelper::setSubservice(uint8_t subservice) { creator.setSubservice(subservice); }
void TmStoreHelper::disableCrcCalculation() { creator.disableCrcCalculation(); }
bool TmStoreHelper::crcCalculationEnabled() const { return creator.crcCalculationEnabled(); }

View File

@ -13,6 +13,9 @@ class TmStoreHelper {
TmStoreHelper(uint16_t defaultApid, StorageManagerIF& tmStore);
TmStoreHelper(uint16_t defaultApid, StorageManagerIF& tmStore, TimeStamperIF& timeStamper);
void disableCrcCalculation();
[[nodiscard]] bool crcCalculationEnabled() const;
ReturnValue_t preparePacket(uint8_t service, uint8_t subservice, uint16_t counter);
PusTmCreator& getCreatorRef();