another small bugfix

This commit is contained in:
Robin Müller 2020-09-28 23:21:21 +02:00
parent 7ff9c29b62
commit 1f70b1159d
5 changed files with 18 additions and 13 deletions

View File

@ -90,6 +90,14 @@ public:
*/
ReturnValue_t initializeAfterTaskCreation(uint8_t nonDiagInvlFactor = 5);
/**
* This should be called in the periodic handler of the owner.
* It performs all the periodic functionalities of the data pool manager,
* for example generating periodic HK packets.
* @return
*/
ReturnValue_t performHkOperation();
/**
* @return
*/
@ -108,12 +116,6 @@ public:
*/
void setNonDiagnosticIntervalFactor(uint8_t nonDiagInvlFactor);
/**
* This should be called in the periodic handler of the owner.
* It performs all the periodic functionalities of the data pool manager.
* @return
*/
ReturnValue_t performHkOperation();
/**
* Generate a housekeeping packet with a given SID.

View File

@ -148,7 +148,7 @@ void HousekeepingMessage::clear(CommandMessage* message) {
case(DIAGNOSTICS_REPORT):
case(HK_DEFINITIONS_REPORT):
case(DIAGNOSTICS_DEFINITION_REPORT):
case(UPDATE_SNAPSHOT):{
case(UPDATE_SNAPSHOT): {
store_address_t storeId;
getHkDataReply(message, &storeId);
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(

View File

@ -10,7 +10,7 @@ void PeriodicHousekeepingHelper::initialize(float collectionInterval,
dur_millis_t minimumPeriodicInterval, bool isDiagnostics,
uint8_t nonDiagIntervalFactor) {
this->minimumPeriodicInterval = minimumPeriodicInterval;
if(isDiagnostics) {
if(not isDiagnostics) {
this->minimumPeriodicInterval = this->minimumPeriodicInterval *
nonDiagIntervalFactor;
}

View File

@ -21,9 +21,12 @@ public:
InternalErrorDataset(sid_t sid):
StaticLocalDataSet(sid) {}
lp_var_t<uint32_t> tmHits = lp_var_t<uint32_t>(TM_HITS, sid.objectId, this);
lp_var_t<uint32_t> queueHits = lp_var_t<uint32_t>(QUEUE_HITS, sid.objectId, this);
lp_var_t<uint32_t> storeHits = lp_var_t<uint32_t>(STORE_HITS, sid.objectId, this);
lp_var_t<uint32_t> tmHits = lp_var_t<uint32_t>(TM_HITS,
hkManager->getOwner(), this);
lp_var_t<uint32_t> queueHits = lp_var_t<uint32_t>(QUEUE_HITS,
hkManager->getOwner(), this);
lp_var_t<uint32_t> storeHits = lp_var_t<uint32_t>(STORE_HITS,
hkManager->getOwner(), this);
};

View File

@ -50,6 +50,8 @@ ReturnValue_t InternalErrorReporter::performOperation(uint8_t opCode) {
internalErrorDataset.commit(INTERNAL_ERROR_MUTEX_TIMEOUT);
poolManager.performHkOperation();
CommandMessage message;
ReturnValue_t result = commandQueue->receiveMessage(&message);
if(result != MessageQueueIF::EMPTY) {
@ -155,8 +157,6 @@ ReturnValue_t InternalErrorReporter::initializeLocalDataPool(
new PoolEntry<uint32_t>());
localDataPoolMap.emplace(errorPoolIds::STORE_HITS,
new PoolEntry<uint32_t>());
// todo: Only send HK if values have changed, will be supported by
// pool manager soon.
poolManager.subscribeForPeriodicPacket(internalErrorSid, false,
getPeriodicOperationFrequency(), true);
return HasReturnvaluesIF::RETURN_OK;