47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#ifndef FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_
|
|
#define FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_
|
|
|
|
#include <fsfw/timemanager/clockDefinitions.h>
|
|
|
|
#include <optional>
|
|
|
|
#include "fsfw/housekeeping/AcceptsHkPacketsIF.h"
|
|
#include "fsfw/ipc/MessageQueueIF.h"
|
|
#include "fsfw/ipc/messageQueueDefinitions.h"
|
|
#include "fsfw/returnvalues/returnvalue.h"
|
|
#include "localPoolDefinitions.h"
|
|
|
|
namespace subdp {
|
|
|
|
struct ParamsBase {
|
|
ParamsBase(sid_t sid, bool enableReporting, dur_millis_t collectionIntervalMs)
|
|
: sid(sid), enableReporting(enableReporting), collectionIntervalMs(collectionIntervalMs) {}
|
|
|
|
[[nodiscard]] bool isDiagnostics() const { return diagnostics; }
|
|
|
|
sid_t sid;
|
|
bool enableReporting;
|
|
dur_millis_t collectionIntervalMs;
|
|
MessageQueueId_t receiver = MessageQueueIF::NO_QUEUE;
|
|
|
|
protected:
|
|
bool diagnostics;
|
|
};
|
|
|
|
struct RegularHkPeriodicParams : public ParamsBase {
|
|
RegularHkPeriodicParams(sid_t sid, bool enableReporting, dur_millis_t collectionIntervalMs)
|
|
: ParamsBase(sid, enableReporting, collectionIntervalMs) {}
|
|
};
|
|
|
|
struct RegularHkUpdateParams : public ParamsBase {
|
|
RegularHkUpdateParams(sid_t sid, bool enableReporting) : ParamsBase(sid, enableReporting, 0) {}
|
|
};
|
|
|
|
struct DiagnosticsHkUpdateParams : public ParamsBase {
|
|
DiagnosticsHkUpdateParams(sid_t sid, bool enableReporting)
|
|
: ParamsBase(sid, enableReporting, 0) {}
|
|
};
|
|
} // namespace subdp
|
|
|
|
#endif /* FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_ */
|