add modes
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
#ifndef CCSDSHANDLER_H_
|
||||
#define CCSDSHANDLER_H_
|
||||
|
||||
#include <fsfw/modes/HasModesIF.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <unordered_map>
|
||||
|
||||
@ -21,6 +23,8 @@
|
||||
#include "fsfw_hal/common/gpio/gpioDefinitions.h"
|
||||
#include "linux/ipcore/PtmeConfig.h"
|
||||
|
||||
enum class Submode : uint8_t { UNSET = 0, DATARATE_LOW = 1, DATARATE_HIGH = 2 };
|
||||
|
||||
/**
|
||||
* @brief This class handles the data exchange with the CCSDS IP cores implemented in the
|
||||
* programmable logic of the Q7S.
|
||||
@ -32,6 +36,7 @@
|
||||
*/
|
||||
class CcsdsIpCoreHandler : public SystemObject,
|
||||
public ExecutableObjectIF,
|
||||
public HasModesIF,
|
||||
public AcceptsTelemetryIF,
|
||||
public AcceptsTelecommandsIF,
|
||||
public ReceivesParameterMessagesIF,
|
||||
@ -59,7 +64,14 @@ class CcsdsIpCoreHandler : public SystemObject,
|
||||
|
||||
ReturnValue_t performOperation(uint8_t operationCode = 0) override;
|
||||
ReturnValue_t initialize();
|
||||
MessageQueueId_t getCommandQueue() const;
|
||||
MessageQueueId_t getCommandQueue() const override;
|
||||
|
||||
// ModesIF
|
||||
void getMode(Mode_t* mode, Submode_t* submode) override;
|
||||
ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
|
||||
uint32_t* msToReachTheMode) override;
|
||||
void startTransition(Mode_t mode, Submode_t submode) override;
|
||||
void announceMode(bool recursive) override;
|
||||
|
||||
/**
|
||||
* @brief Function to add a virtual channel
|
||||
@ -126,6 +138,9 @@ class CcsdsIpCoreHandler : public SystemObject,
|
||||
ParameterHelper parameterHelper;
|
||||
|
||||
ActionHelper actionHelper;
|
||||
Mode_t mode;
|
||||
Submode_t submode = static_cast<Submode_t>(Submode::UNSET);
|
||||
ModeHelper modeHelper;
|
||||
|
||||
MessageQueueId_t tcDistributorQueueId = MessageQueueIF::NO_QUEUE;
|
||||
|
||||
|
Reference in New Issue
Block a user