#ifndef LINUX_OBC_PDECCONFIG_H_ #define LINUX_OBC_PDECCONFIG_H_ #include #include "fsfw/returnvalues/returnvalue.h" /** * @brief This class generates the configuration words for the configuration memory of the PDEC * IP Cores. * * @details Fields are initialized according to pecification in PDEC datasheet section 6.11.3.1 * PROM usage. * * @author J. Meier */ class PdecConfig { public: PdecConfig(); virtual ~PdecConfig(); /** * @brief Returns the configuration word by specifying the position. */ uint32_t getConfigWord(uint8_t wordNo); private: // TC transfer frame configuration parameters static const uint8_t VERSION_ID = 0; // BD Frames static const uint8_t BYPASS_FLAG = 1; static const uint8_t CONTROL_COMMAND_FLAG = 0; static const uint8_t VIRTUAL_CHANNEL = 0; static const uint8_t RESERVED_FIELD_A = 0; static const uint16_t SPACECRAFT_ID = 0x274; static const uint16_t DUMMY_BITS = 0; // Parameters to control the FARM for AD frames // Set here for future use static const uint8_t POSITIVE_WINDOW = 10; static const uint8_t NEGATIVE_WINDOW = 151; static const uint8_t HIGH_AU_MAP_ID = 0xF; static const uint8_t ENABLE_DERANDOMIZER = 1; static const uint8_t CONFIG_WORDS_NUM = 2; uint32_t configWords[CONFIG_WORDS_NUM]; void initialize(); }; #endif /* LINUX_OBC_PDECCONFIG_H_ */