tc distribution improvements

This commit is contained in:
2020-10-01 13:23:06 +02:00
parent 7c3f99ed2d
commit 89c4370d91
10 changed files with 331 additions and 267 deletions

View File

@ -1,34 +1,38 @@
#ifndef CCSDSDISTRIBUTORIF_H_
#define CCSDSDISTRIBUTORIF_H_
#ifndef FSFW_TCDISTRIBUTION_CCSDSDISTRIBUTORIF_H_
#define FSFW_TCDISTRIBUTION_CCSDSDISTRIBUTORIF_H_
#include "../tmtcservices/AcceptsTelecommandsIF.h"
#include "../ipc/MessageQueueSenderIF.h"
/**
* This is the Interface to a CCSDS Distributor.
* On a CCSDS Distributor, Applications (in terms of CCSDS) may register themselves,
* either by passing a pointer to themselves (and implementing the CCSDSApplicationIF,
* or by explicitly passing an APID and a MessageQueueId to route the TC's to.
* \ingroup tc_distribution
* On a CCSDS Distributor, Applications (in terms of CCSDS) may register
* themselves, either by passing a pointer to themselves (and implementing the
* CCSDSApplicationIF), or by explicitly passing an APID and a MessageQueueId
* to route the TC's to.
* @ingroup tc_distribution
*/
class CCSDSDistributorIF {
public:
/**
* With this call, a class implementing the CCSDSApplicationIF can register at the
* distributor.
* With this call, a class implementing the CCSDSApplicationIF can register
* at the distributor.
* @param application A pointer to the Application to register.
* @return - \c RETURN_OK on success,
* - \c RETURN_FAILED on failure.
* @return - @c RETURN_OK on success,
* - @c RETURN_FAILED on failure.
*/
virtual ReturnValue_t registerApplication( AcceptsTelecommandsIF* application ) = 0;
virtual ReturnValue_t registerApplication(
AcceptsTelecommandsIF* application) = 0;
/**
* With this call, other Applications can register to the CCSDS distributor.
* This is done by passing an APID and a MessageQueueId to the method.
* @param apid The APID to register.
* @param id The MessageQueueId of the message queue to send the TC Packets to.
* @return - \c RETURN_OK on success,
* - \c RETURN_FAILED on failure.
* @param id The MessageQueueId of the message queue to send the
* TC Packets to.
* @return - @c RETURN_OK on success,
* - @c RETURN_FAILED on failure.
*/
virtual ReturnValue_t registerApplication( uint16_t apid, MessageQueueId_t id ) = 0;
virtual ReturnValue_t registerApplication( uint16_t apid,
MessageQueueId_t id) = 0;
/**
* The empty virtual destructor.
*/
@ -37,4 +41,4 @@ public:
};
#endif /* CCSDSDISTRIBUTORIF_H_ */
#endif /* FSFW_TCDISTRIBUTION_CCSDSDISTRIBUTORIF_H_ */