#ifndef BSP_Q7S_BOARDCONFIG_Q7S_CONFIG_H_
#define BSP_Q7S_BOARDCONFIG_Q7S_CONFIG_H_

#include <cstdint>

/*******************************************************************/
/** All of the following flags should be enabled for mission code  */
/*******************************************************************/

//! Timers can mess up the code when debugging
//! All of this should be enabled for mission code!

/*******************************************************************/
/** Other flags                                                    */
/*******************************************************************/

#define Q7S_SD_NONE                                 0
#define Q7S_SD_COLD_REDUNDANT                       1
#define Q7S_SD_HOT_REDUNDANT                        2
// The OBSW will perform different actions to set up the SD cards depending on the flag set here
// Set to Q7S_SD_NONE: Don't do anything
// Set to Q7S_COLD_REDUNDANT: On startup, get the prefered SD card, turn it on and mount it, and 
//     turn off the second SD card if it is on
// Set to Q7S_HOT_REDUNDANT: On startup, turn on both SD cards and mount them  
#define Q7S_SD_CARD_CONFIG                          Q7S_SD_COLD_REDUNDANT

// Probably better if this is disabled for mission code. Convenient for development
#define Q7S_CHECK_FOR_ALREADY_RUNNING_IMG           1

#define Q7S_SIMPLE_ADD_FILE_SYSTEM_TEST             0

#ifndef Q7S_SIMPLE_MODE
#define Q7S_SIMPLE_MODE 0
#endif

namespace config {

static const uint32_t SD_CARD_ACCESS_MUTEX_TIMEOUT = 50;

}

#endif /* BSP_Q7S_BOARDCONFIG_Q7S_CONFIG_H_ */