e8cadd069e
85 lines
2.7 KiB
C
85 lines
2.7 KiB
C
#ifndef FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_
|
|||
#define FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_
|
|||
|
|||
#include <fsfw/datapoollocal/localPoolDefinitions.h>
|
|||
#include <fsfw/ipc/messageQueueDefinitions.h>
|
|||
#include <fsfw/returnvalues/HasReturnvaluesIF.h>
|
|||
|
|||
|
|||
|
|||
class ProvidesDataPoolSubscriptionIF {
|
|||
public:
|
|||
virtual ~ProvidesDataPoolSubscriptionIF(){};
|
|||
|
|||
/**
|
|||
* @brief Subscribe for the generation of periodic packets.
|
|||
* @details
|
|||
* This subscription mechanism will generally be used by the data creator
|
|||
* to generate housekeeping packets which are downlinked directly.
|
|||
* @return
|
|||
*/
|
|||
virtual ReturnValue_t subscribeForPeriodicPacket(sid_t sid,
|
|||
bool enableReporting,
|
|||
float collectionInterval, bool isDiagnostics,
|
|||
object_id_t packetDestination) = 0;
|
|||
|
|||
|
|||
/**
|
|||
* @brief Subscribe for the generation of packets if the dataset
|
|||
* is marked as changed.
|
|||
* @details
|
|||
* This subscription mechanism will generally be used by the data creator.
|
|||
* @param sid
|
|||
* @param isDiagnostics
|
|||
* @param packetDestination
|
|||
* @return
|
|||
*/
|
|||
virtual ReturnValue_t subscribeForUpdatePackets(sid_t sid,
|
|||
bool reportingEnabled,
|
|||
bool isDiagnostics,
|
|||
object_id_t packetDestination) = 0;
|
|||
|
|||
|
|||
/**
|
|||
* @brief Subscribe for a notification message which will be sent
|
|||
* if a dataset has changed.
|
|||
* @details
|
|||
* This subscription mechanism will generally be used internally by
|
|||
* other software components.
|
|||
* @param setId Set ID of the set to receive update messages from.
|
|||
* @param destinationObject
|
|||
* @param targetQueueId
|
|||
* @param generateSnapshot If this is set to true, a copy of the current
|
|||
* data with a timestamp will be generated and sent via message.
|
|||
* Otherwise, only an notification message is sent.
|
|||
* @return
|
|||
*/
|
|||
virtual ReturnValue_t subscribeForSetUpdateMessages(const uint32_t setId,
|
|||
object_id_t destinationObject,
|
|||
MessageQueueId_t targetQueueId,
|
|||
bool generateSnapshot) = 0;
|
|||
|
|||
/**
|
|||
* @brief Subscribe for an notification message which will be sent if a
|
|||
* pool variable has changed.
|
|||
* @details
|
|||
* This subscription mechanism will generally be used internally by
|
|||
* other software components.
|
|||
* @param localPoolId Pool ID of the pool variable
|
|||
* @param destinationObject
|
|||
* @param targetQueueId
|
|||
* @param generateSnapshot If this is set to true, a copy of the current
|
|||
* data with a timestamp will be generated and sent via message.
|
|||
* Otherwise, only an notification message is sent.
|
|||
* @return
|
|||
*/
|
|||
virtual ReturnValue_t subscribeForVariableUpdateMessages(
|
|||
const lp_id_t localPoolId,
|
|||
object_id_t destinationObject,
|
|||
MessageQueueId_t targetQueueId,
|
|||
bool generateSnapshot) = 0;
|
|||
|
|||
};
|
|||
|
|||
#endif /* FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_ */
|