eive-obsw/mission/tmtc/CfdpTmFunnel.h

32 lines
1.1 KiB
C
Raw Normal View History

2022-10-21 11:51:44 +02:00
#ifndef FSFW_EXAMPLE_COMMON_CFDPTMFUNNEL_H
#define FSFW_EXAMPLE_COMMON_CFDPTMFUNNEL_H
#include <mission/tmtc/TmFunnelBase.h>
#include <atomic>
#include <vector>
2022-10-21 11:51:44 +02:00
#include "fsfw/objectmanager/SystemObject.h"
#include "fsfw/storagemanager/StorageManagerIF.h"
#include "fsfw/tmtcservices/AcceptsTelemetryIF.h"
#include "fsfw/tmtcservices/TmTcMessage.h"
class CfdpTmFunnel : public TmFunnelBase {
2022-10-21 11:51:44 +02:00
public:
2023-09-06 13:40:38 +02:00
CfdpTmFunnel(TmFunnelBase::FunnelCfg cfg, std::optional<MessageQueueId_t> fileStoreDest,
StorageManagerIF& ramToFileStore, uint16_t cfdpInCcsdsApid);
2022-10-21 11:51:44 +02:00
[[nodiscard]] const char* getName() const override;
2023-09-11 19:27:39 +02:00
uint32_t addLiveDestination(const char* name, const AcceptsTelemetryIF& downlinkDestination,
uint8_t vcid = 0) override;
2022-10-21 11:51:44 +02:00
ReturnValue_t performOperation(uint8_t opCode);
ReturnValue_t initialize() override;
private:
ReturnValue_t handlePacket(TmTcMessage& msg);
2023-09-06 13:40:38 +02:00
std::optional<MessageQueueId_t> fileStoreDest;
StorageManagerIF& ramToFileStore;
2022-10-21 11:51:44 +02:00
uint16_t cfdpInCcsdsApid;
};
#endif // FSFW_EXAMPLE_COMMON_CFDPTMFUNNEL_H