allow deferred init
This commit is contained in:
parent
770463e618
commit
11a4b27642
@ -116,6 +116,10 @@ ReturnValue_t cfdp::DestHandler::initialize() {
|
|||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fp.msgQueue == nullptr) {
|
||||||
|
return FAILED;
|
||||||
|
}
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,7 +425,7 @@ ReturnValue_t cfdp::DestHandler::sendFinishedPdu() {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
TmTcMessage msg(storeId);
|
TmTcMessage msg(storeId);
|
||||||
result = fp.msgQueue.sendMessage(fp.packetDest.getReportReceptionQueue(), &msg);
|
result = fp.msgQueue->sendMessage(fp.packetDest.getReportReceptionQueue(), &msg);
|
||||||
if (result != OK) {
|
if (result != OK) {
|
||||||
// TODO: Error handling and event, this is a non CFDP specific error (most likely store is full)
|
// TODO: Error handling and event, this is a non CFDP specific error (most likely store is full)
|
||||||
return result;
|
return result;
|
||||||
@ -451,3 +455,9 @@ void cfdp::DestHandler::checkAndHandleError(ReturnValue_t result, uint8_t& error
|
|||||||
errorIdx++;
|
errorIdx++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cfdp::DestHandler::setMsgQueue(MessageQueueIF& queue) { fp.msgQueue = &queue; }
|
||||||
|
|
||||||
|
void cfdp::DestHandler::setEventReporter(EventReportingProxyIF& reporter) {
|
||||||
|
fp.eventReporter = &reporter;
|
||||||
|
}
|
||||||
|
@ -62,12 +62,12 @@ struct DestHandlerParams {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct FsfwParams {
|
struct FsfwParams {
|
||||||
FsfwParams(AcceptsTelemetryIF& packetDest, MessageQueueIF& msgQueue,
|
FsfwParams(AcceptsTelemetryIF& packetDest, MessageQueueIF* msgQueue,
|
||||||
EventReportingProxyIF& eventReporter)
|
EventReportingProxyIF* eventReporter)
|
||||||
: packetDest(packetDest), msgQueue(msgQueue), eventReporter(eventReporter) {}
|
: packetDest(packetDest), msgQueue(msgQueue), eventReporter(eventReporter) {}
|
||||||
AcceptsTelemetryIF& packetDest;
|
AcceptsTelemetryIF& packetDest;
|
||||||
MessageQueueIF& msgQueue;
|
MessageQueueIF* msgQueue;
|
||||||
EventReportingProxyIF& eventReporter;
|
EventReportingProxyIF* eventReporter = nullptr;
|
||||||
StorageManagerIF* tcStore = nullptr;
|
StorageManagerIF* tcStore = nullptr;
|
||||||
StorageManagerIF* tmStore = nullptr;
|
StorageManagerIF* tmStore = nullptr;
|
||||||
};
|
};
|
||||||
@ -116,6 +116,8 @@ class DestHandler {
|
|||||||
* - @c CALL_FSM_AGAIN State machine should be called again.
|
* - @c CALL_FSM_AGAIN State machine should be called again.
|
||||||
*/
|
*/
|
||||||
const FsmResult& performStateMachine();
|
const FsmResult& performStateMachine();
|
||||||
|
void setMsgQueue(MessageQueueIF& queue);
|
||||||
|
void setEventReporter(EventReportingProxyIF& reporter);
|
||||||
|
|
||||||
ReturnValue_t passPacket(PacketInfo packet);
|
ReturnValue_t passPacket(PacketInfo packet);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ TEST_CASE("CFDP Dest Handler", "[cfdp]") {
|
|||||||
LocalPool::LocalPoolConfig storeCfg = {{10, 32}, {10, 64}, {10, 128}, {10, 1024}};
|
LocalPool::LocalPoolConfig storeCfg = {{10, 32}, {10, 64}, {10, 128}, {10, 1024}};
|
||||||
StorageManagerMock tcStore(2, storeCfg);
|
StorageManagerMock tcStore(2, storeCfg);
|
||||||
StorageManagerMock tmStore(3, storeCfg);
|
StorageManagerMock tmStore(3, storeCfg);
|
||||||
FsfwParams fp(tmReceiver, mqMock, eventReporterMock);
|
FsfwParams fp(tmReceiver, &mqMock, &eventReporterMock);
|
||||||
RemoteEntityCfg cfg;
|
RemoteEntityCfg cfg;
|
||||||
cfg.remoteId = remoteId;
|
cfg.remoteId = remoteId;
|
||||||
remoteCfgTableMock.addRemoteConfig(cfg);
|
remoteCfgTableMock.addRemoteConfig(cfg);
|
||||||
|
Loading…
Reference in New Issue
Block a user