Merge remote-tracking branch 'origin/develop' into mueller/pus-15-tm-storage
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
@ -13,13 +13,25 @@ class TmFunnelBase : public TmStoreFrontendSimpleIF,
|
||||
public AcceptsTelemetryIF,
|
||||
public SystemObject {
|
||||
public:
|
||||
TmFunnelBase(object_id_t objectId, StorageManagerIF& tmStore, uint32_t tmMsgDepth,
|
||||
uint32_t tcMsgDepth, StorageManagerIF& ipcStore);
|
||||
void addDestination(const AcceptsTelemetryIF& downlinkDestination, uint8_t vcid = 0);
|
||||
struct FunnelCfg {
|
||||
FunnelCfg(object_id_t objId, StorageManagerIF& tmStore, StorageManagerIF& ipcStore,
|
||||
uint32_t tmMsgDepth, uint32_t tcMsgDepth)
|
||||
: objectId(objId),
|
||||
tmStore(tmStore),
|
||||
ipcStore(ipcStore),
|
||||
tmMsgDepth(tmMsgDepth),
|
||||
tcMsgDepth(tcMsgDepth) {}
|
||||
object_id_t objectId;
|
||||
StorageManagerIF& tmStore;
|
||||
StorageManagerIF& ipcStore;
|
||||
uint32_t tmMsgDepth;
|
||||
uint32_t tcMsgDepth;
|
||||
};
|
||||
TmFunnelBase(FunnelCfg cfg);
|
||||
void addDestination(const char* name, const AcceptsTelemetryIF& downlinkDestination,
|
||||
uint8_t vcid = 0);
|
||||
ReturnValue_t sendPacketToDestinations(store_address_t origStoreId, TmTcMessage& message,
|
||||
const uint8_t* packetData, size_t size);
|
||||
|
||||
[[nodiscard]] MessageQueueId_t getCommandQueue() const override;
|
||||
[[nodiscard]] MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel) const override;
|
||||
|
||||
virtual ~TmFunnelBase();
|
||||
@ -27,9 +39,22 @@ class TmFunnelBase : public TmStoreFrontendSimpleIF,
|
||||
protected:
|
||||
StorageManagerIF& tmStore;
|
||||
StorageManagerIF& ipcStore;
|
||||
std::vector<std::pair<MessageQueueId_t, uint8_t>> destinations;
|
||||
MessageQueueIF* tcQueue = nullptr;
|
||||
|
||||
struct Destination {
|
||||
Destination(const char* name, MessageQueueId_t queueId, uint8_t virtualChannel)
|
||||
: name(name), queueId(queueId), virtualChannel(virtualChannel) {}
|
||||
|
||||
const char* name;
|
||||
MessageQueueId_t queueId;
|
||||
uint8_t virtualChannel = 0;
|
||||
};
|
||||
|
||||
std::vector<Destination> destinations;
|
||||
|
||||
MessageQueueIF* tmQueue = nullptr;
|
||||
MessageQueueIF* tcQueue = nullptr;
|
||||
|
||||
MessageQueueId_t getCommandQueue() const override;
|
||||
};
|
||||
|
||||
#endif /* MISSION_TMTC_TMFUNNELBASE_H_ */
|
||||
|
Reference in New Issue
Block a user