/* USER CODE BEGIN Header */
/**
 ******************************************************************************
 * @file           : main.h
 * @brief          : Header for main.c file.
 *                   This file contains the common defines of the application.
 ******************************************************************************
 * @attention
 *
 * Copyright (c) 2024 STMicroelectronics.
 * All rights reserved.
 *
 * This software is licensed under terms that can be found in the LICENSE file
 * in the root directory of this software component.
 * If no LICENSE file comes with this software, it is provided AS-IS.
 *
 ******************************************************************************
 */
/* USER CODE END Header */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */

/* USER CODE END ET */

/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */

/* USER CODE END EC */

/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */

/*
 * Board configuration macrow
 */
#define IO_BRD    1
#define ES_BRD    2
#define PS_BRD    3
#define SSD_BRD   4
#define PWR_BRD   5
#define BP_BRD    6

/*
 * Test case id macrow
 */
#define TEST_CASE_0    0
#define TEST_CASE_1    1
#define TEST_CASE_2    2
#define TEST_CASE_3    3
#define TEST_CASE_4    4
#define TEST_CASE_5    5
#define TEST_CASE_6    6
#define TEST_CASE_7    7
#define TEST_CASE_8    8
#define TEST_CASE_9    9

/* USER CODE END EM */

/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);

/* USER CODE BEGIN EFP */
typedef enum _ahw_inst_id
{
    INVLD_AH_INST_ID ,                  ///< invalid AH instance ID
    MCU_ID,
    IMU_BMX160_OBC_1,
    IMU_BMX160_OBC_2,
    IMU_BMX160_XXX,
    DIGITAL_THERMOSTAT_DS620_EDGE,
    DIGITAL_THERMOSTAT_DS620_PS,
    HSC_ADM1176_EDGE,
    HSC_ADM1176_PS_2,
    HSC_ADM1176_PS_1,
    TEMP_SENSOR_MCP9843_OBC,
    TEMP_SENSOR_MCP9843_PS,
    TEMP_SENSOR_MCP9843_EDGE,
    TEMP_SENSOR_MCP9843_GPS,
    DIGITAL_THERMOSTAT_DS620_SPE01,
    DIGITAL_THERMOSTAT_DS620_SPE02,
    DIGITAL_THERMOSTAT_DS620_SPW01,
    DIGITAL_THERMOSTAT_DS620_SPW02,
    DIGITAL_THERMOSTAT_DS620_SPB01,
    PSM_INA230_OBC,
    PSM_INA230_PS,
    GPIO_EXPANDER_PCAL6408A_PS,
    GPIO_EXPANDER_MCP23008_EDGE_1,
    GPIO_EXPANDER_MCP23008_EDGE_2,
    GPIO_EXPANDER_MCP23008_OBC_1,
    GPIO_EXPANDER_MCP23008_OBC_2,
    GPIO_EXPANDER_MCP23008_GPS,
    GPIO_EXPANDER_PCA9673,
    THRUSTER_MORPHEUS_OBC,
    VOLTAGE_SEQUENCER_UCD9801_OBC,
    DATA_LOGGER_ADS7828_PS,
    EXT_MEM_MX25L512_QSPI,
    EXT_MEM_MT25QL512_QSPI,
    EXT_MEM_S25HL512T_QSPI,
    EXT_MEM_MT28EW128_FMC,
    GPIO_EXP_MCP23008_U4,
    GPIO_EXP_MCP23008_U5,
    GPIO_EXP_MCP23008_U2,
    TEMP_SENSOR_MCP9843_IO_U26,
    TEMP_SENSOR_MCP9843_EDGE_U13,
    TEMP_SENSOR_MCP9843_EDGE_U34,
    GPIO_EXP_MCP23008_U16,
    GPIO_EXP_MCP23008_U37,
    GPIO_EXP_MCP23008_U38,
    GPIO_EXP_MCP23008_U40,
    GPIO_EXP_MCP23008_SSD_U16,
    GPIO_EXP_MCP23008_SSD_U18,
    TEMP_SENSOR_MCP9843_SSD_U23,
    TEMP_SENSOR_MCP9843_SSD_U24,
    TEMP_SENSOR_MCP9843_SSD_U26,
    TEMP_SENSOR_MCP9843_SSD_U27,
    GPIO_EXP_MCP23008_BP_U28,
    GPIO_EXP_PCAL6408A_PS_GEN2_U13,
    GPIO_EXP_MCP23008_PWR_BRD_1,
    GPIO_EXP_MCP23008_PWR_BRD_2,
    GPIO_EXP_MCP23008_PWR_BRD_3,    //< U20 GPIO Expander
    HSC_ADM1176_PS_1_IN_SUPPLY,
    HSC_ADM1176_PS_2_IN_SUPPLY,
    HSC_ADM1176_EDGE_1_IN_SUPPLY,
    HSC_ADM1176_EDGE_1_HEAT_COIL,
    HSC_ADM1176_EDGE_2_IN_SUPPLY,
    HSC_ADM1176_EDGE_2_HEAT_COIL,
    HSC_ADM1176_IO_BRD_IN_SUPPLY,
    HSC_ADM1176_IO_BRD_HEAT_COIL_TOP_1,
    HSC_ADM1176_IO_BRD_HEAT_COIL_TOP_2,
    HSC_ADM1176_IO_BRD_HEAT_COIL_BOTTOM_1,
    HSC_ADM1176_IO_BRD_HEAT_COIL_BOTTOM_2,
    PSM_INA230_CORE_BRD_A,
    PSM_INA230_CORE_BRD_B,
    PSM_INA230_PS_1,
    PSM_INA230_PS_2,
    PSM_INA230_EDGE_1,
    PSM_INA230_EDGE_2_IN_SUPPLY,
    PSM_INA230_IO_BRD_IN_SUPPLY,
    ADC_AD7291_PS_1,
    ADC_AD7291_PS_2,
    ADC_AD7291_ORING_CIRCUIT,
    EXT_MEM_M24C16_EEPROM_1,
    EXT_MEM_M24C16_EEPROM_2,
    UART_EXPANDER_MAX14830_OBC,
    MAX_AH_INST_ID
}ahw_inst_id_t;
/* USER CODE END EFP */

/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN Private defines */

/* USER CODE END Private defines */

#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */
