#ifndef COMMON_CONFIG_COMMONCONFIG_H_
#define COMMON_CONFIG_COMMONCONFIG_H_

#include <cstdint>
#include "fsfw/version.h"

#cmakedefine RELEASE_BUILD

#cmakedefine RASPBERRY_PI
#cmakedefine XIPHOS_Q7S
#cmakedefine BEAGLEBONEBLACK
#cmakedefine EGSE
#cmakedefine TE0720_1CFA

/* These defines should be disabled for mission code but are useful for
debugging. */
#define OBSW_VERBOSE_LEVEL                  1

#define OBSW_ADD_LWGPS_TEST                 0   

// Disable this for mission code. It allows exchanging TMTC packets via the Ethernet port
#define OBSW_ADD_TCPIP_SERVERS              1

#define OBSW_ADD_CFDP_COMPONENTS            1

namespace common {

static constexpr uint8_t OBSW_VERSION_MAJOR = @OBSW_VERSION_MAJOR@;
static constexpr uint8_t OBSW_VERSION_MINOR = @OBSW_VERSION_MINOR@;
static constexpr uint8_t OBSW_VERSION_REVISION = @OBSW_VERSION_REVISION@;
// CST: Commits since tag
static const char OBSW_VERSION_CST_GIT_SHA1[] = "@OBSW_VERSION_CST_GIT_SHA1@";


static constexpr uint32_t OBSW_MAX_SCHEDULED_TCS = @OBSW_MAX_SCHEDULED_TCS@;

extern const fsfw::Version OBSW_VERSION;

extern const uint16_t PUS_PACKET_ID;
extern const uint16_t CFDP_PACKET_ID;
}

#endif /* COMMON_CONFIG_COMMONCONFIG_H_ */