/**
 * @brief	This file can be used to add preprocessor define for conditional
 * 			code inclusion exclusion or various other project constants and
 * 			properties in one place.
 */
#ifndef FSFWCONFIG_OBSWCONFIG_H_
#define FSFWCONFIG_OBSWCONFIG_H_

#ifdef RASPBERRY_PI
#include "rpiConfig.h"
#elif defined(XIPHOS_Q7S)
#include "q7sConfig.h"
#endif
#include "commonConfig.h"
#include "OBSWVersion.h"

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

#define TEST_LIBGPIOD                   0
#define TEST_RADIATION_SENSOR_HANDLER   1
#define TEST_SUS_HANDLER                1
#define TEST_PLOC_HANDLER               0

#define TE0720                          0
#define TE0720_HEATER_TEST              0

#define P60DOCK_DEBUG                   0
#define PDU1_DEBUG                      0
#define PDU2_DEBUG                      0
#define ACU_DEBUG                       0
#define SYRLINKS_DEBUG                  0
#define IMQT_DEBUG  				    0
#define ADIS16507_DEBUG                 1
#define L3GD20_GYRO_DEBUG               0
#define DEBUG_RAD_SENSOR                1
#define DEBUG_SUS                       1

// Leave at one as the BSP is linux. Used by the ADIS16507 device handler
#define OBSW_ADIS16507_LINUX_COM_IF     1

#include "OBSWVersion.h"

/* Can be used to switch device to NORMAL mode immediately */
#define OBSW_SWITCH_TO_NORMAL_MODE_AFTER_STARTUP    1

#ifdef __cplusplus

#include "objects/systemObjectList.h"
#include "events/subsystemIdRanges.h"
#include "returnvalues/classIds.h"

namespace config {
#endif

/* Add mission configuration flags here */

#ifdef __cplusplus
}
#endif

#endif /* FSFWCONFIG_OBSWCONFIG_H_ */