continue TM handling refactoring
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit
This commit is contained in:
45
mission/tmtc/VirtualChannelWithQueue.h
Normal file
45
mission/tmtc/VirtualChannelWithQueue.h
Normal file
@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include <fsfw/ipc/MessageQueueIF.h>
|
||||
#include <fsfw/objectmanager/SystemObject.h>
|
||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||
#include <linux/ipcore/PtmeIF.h>
|
||||
#include <mission/tmtc/VirtualChannel.h>
|
||||
|
||||
#include <atomic>
|
||||
|
||||
#include "OBSWConfig.h"
|
||||
#include "fsfw/returnvalues/returnvalue.h"
|
||||
#include "fsfw/tmtcservices/AcceptsTelemetryIF.h"
|
||||
|
||||
class StorageManagerIF;
|
||||
|
||||
/**
|
||||
* @brief This class represents a virtual channel. Sending a tm message to an object of this class
|
||||
* will forward the tm packet to the respective virtual channel of the PTME IP Core.
|
||||
*
|
||||
* @author J. Meier
|
||||
*/
|
||||
class VirtualChannelWithQueue : public AcceptsTelemetryIF {
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor
|
||||
*
|
||||
* @param vcId The virtual channel id assigned to this object
|
||||
* @param tmQueueDepth Queue depth of queue receiving telemetry from other objects
|
||||
*/
|
||||
VirtualChannelWithQueue(VirtualChannel& channel, StorageManagerIF& tmStore, uint32_t tmQueueDepth,
|
||||
const std::atomic_bool& linkStateProvider);
|
||||
|
||||
MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel = 0) const override;
|
||||
ReturnValue_t sendNextTm();
|
||||
|
||||
VirtualChannel& vc();
|
||||
|
||||
const char* getName() const override;
|
||||
|
||||
private:
|
||||
VirtualChannel& channel;
|
||||
MessageQueueIF* tmQueue = nullptr;
|
||||
StorageManagerIF* tmStore = nullptr;
|
||||
};
|
Reference in New Issue
Block a user