#ifndef LINUX_OBC_PTMERATESETTER_H_ #define LINUX_OBC_PTMERATESETTER_H_ #include "TxRateSetterIF.h" #include "fsfw/returnvalues/HasReturnvaluesIF.h" #include "linux/obc/PtmeAxiConfig.h" #include "linux/obc/PtmeConfig.h" #include "fsfw/objectmanager/SystemObject.h" /** * @brief Class to set the downlink bit rate by writing to the AXI configuration interface of the * PTME IP core. * * @details This is the bitrate of the CADU clock and not the downlink which has twice the bitrate * of the CADU clock due to the convolutional code added by the s-Band transceiver. * * @author J. Meier */ class PtmeRateSetter: public TxRateSetterIF, public SystemObject { public: /** * @brief Constructor * * objectId Object id of system object * ptmeAxiConfig Pointer to object providing access to PTME configuration registers. */ PtmeRateSetter(object_id_t objectId, PtmeAxiConfig* ptmeAxiConfig); virtual ~PtmeRateSetter(); virtual ReturnValue_t initialize() override; virtual ReturnValue_t setRate(BitRates rate); private: PtmeAxiConfig* ptmeAxiConfig = nullptr; }; #endif /* LINUX_OBC_PTMERATESETTER_H_ */