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_ */
|