fixed PCDU memory leak

This commit is contained in:
Jakob Meier 2021-02-08 14:12:36 +01:00
parent 41ebbdd15c
commit db04a06bdb
6 changed files with 20 additions and 17 deletions

2
fsfw

@ -1 +1 @@
Subproject commit 7d0916a44e18c87b00998448333023186b3d85b1
Subproject commit e994d81e1862fade52b090311b3978fb59061966

View File

@ -15,7 +15,7 @@
#define TE0720 0
#define PDU2_DEBUG 0
#define PDU1_DEBUG 1
#define PDU1_DEBUG 0
#include "OBSWVersion.h"

View File

@ -14,7 +14,6 @@ ReturnValue_t pst::pollingSequenceInitDefault(FixedTimeslotTaskIF *thisSequence)
DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0,
DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::HEATER_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::SEND_WRITE);
@ -42,6 +41,9 @@ ReturnValue_t pst::gomspacePstInit(FixedTimeslotTaskIF *thisSequence){
uint32_t length = thisSequence->getPeriodMs();
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::P60DOCK_HANDLER,
length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::PDU1_HANDLER,

View File

@ -49,7 +49,8 @@ void ObjectFactory::produceGenericObjects() {
{
PoolManager::LocalPoolConfig poolCfg = {
{100, 16}, {50, 32}, {25, 64}, {15, 128}, {5, 1024}
{ 100, 16 }, { 100, 32 }, { 100, 64 },
{ 100, 128 }, { 50, 256 }, { 50, 512 }, { 50, 1024 }, { 10, 2048 }
};
new PoolManager(objects::IPC_STORE, poolCfg);
}

View File

@ -4,7 +4,7 @@
GomspaceDeviceHandler::GomspaceDeviceHandler(object_id_t objectId, object_id_t comIF,
CookieIF * comCookie, uint16_t maxConfigTableAddress, uint16_t maxHkTableAddress,
uint16_t hkTableReplySize, LocalPoolDataSetBase* hkTableDataset) :
DeviceHandlerBase(objectId, comIF, comCookie, nullptr, 60), maxConfigTableAddress(maxConfigTableAddress),
DeviceHandlerBase(objectId, comIF, comCookie), maxConfigTableAddress(maxConfigTableAddress),
maxHkTableAddress(maxHkTableAddress), hkTableReplySize(hkTableReplySize), hkTableDataset(hkTableDataset) {
mode = MODE_NORMAL;
if (comCookie == NULL) {

View File

@ -55,18 +55,18 @@ ReturnValue_t PCDUHandler::initialize() {
}
/* Subscribing for housekeeping table update messages of the PDU1 */
// HasLocalDataPoolIF* pdu1Handler = objectManager->get<HasLocalDataPoolIF>(objects::PDU1_HANDLER);
// if(pdu1Handler == nullptr) {
// sif::error << "PCDUHandler::initialize: Invalid pdu1Handler" << std::endl;
// return RETURN_FAILED;
// }
// result = pdu1Handler->getSubscriptionInterface()->subscribeForSetUpdateMessages(
// PDU1::HK_TABLE_DATA_SET_ID, this->getObjectId(), commandQueue->getId(), true);
// if (result != RETURN_OK) {
// sif::error << "PCDUHandler::initialize: Failed to subscribe for set update messages from "
// << "PDU1Handler" << std::endl;
// return result;
// }
HasLocalDataPoolIF* pdu1Handler = objectManager->get<HasLocalDataPoolIF>(objects::PDU1_HANDLER);
if(pdu1Handler == nullptr) {
sif::error << "PCDUHandler::initialize: Invalid pdu1Handler" << std::endl;
return RETURN_FAILED;
}
result = pdu1Handler->getSubscriptionInterface()->subscribeForSetUpdateMessages(
PDU1::HK_TABLE_DATA_SET_ID, this->getObjectId(), commandQueue->getId(), true);
if (result != RETURN_OK) {
sif::error << "PCDUHandler::initialize: Failed to subscribe for set update messages from "
<< "PDU1Handler" << std::endl;
return result;
}
return RETURN_OK;
}