1
0
forked from fsfw/fsfw

New reporting mode

This commit is contained in:
2020-08-23 21:00:25 +02:00
parent 2f53a3fb1b
commit 2b63f1b3f3
4 changed files with 17 additions and 28 deletions

View File

@ -15,8 +15,13 @@
#include <map>
namespace Factory {
void setStaticFrameworkObjectIds();
}
class LocalDataSetBase;
/**
* @brief This class is the managing instance for local data pool.
* @details
@ -40,6 +45,7 @@ class LocalDataPoolManager {
template<typename T, uint16_t vecSize>
friend class LocalPoolVector;
friend class LocalPoolDataSetBase;
friend void (Factory::setStaticFrameworkObjectIds)();
public:
static constexpr uint8_t INTERFACE_ID = CLASS_ID::HOUSEKEEPING_MANAGER;
@ -71,7 +77,7 @@ public:
* @return
*/
ReturnValue_t initialize(MessageQueueIF* queueToUse,
object_id_t hkDestination, uint8_t nonDiagInvlFactor = 5);
uint8_t nonDiagInvlFactor = 5);
/**
* Non-Diagnostics packets usually have a lower minimum sampling frequency
@ -136,9 +142,10 @@ public:
enum class ReportingType: uint8_t {
// Periodic generation of HK packets.
PERIODIC,
UPDATE_NOTIFICATION,
// Notification will be sent out as message.
// Data is accessed via shared data set or multiple local data sets.
ON_UPDATE,
UPDATE_SNAPSHOT,
};
/* Copying forbidden */
@ -157,6 +164,9 @@ private:
dur_millis_t regularMinimumInterval = 0;
dur_millis_t diagnosticMinimumInterval = 0;
/** Default receiver for periodic HK packets */
static object_id_t defaultHkDestination;
/** The data pool manager will keep an internal map of HK receivers. */
struct HkReceiver {
/** Different member of this union will be used depending on the