#ifndef OBC_BRINGUP_TEST_H
#define OBC_BRINGUP_TEST_H

#include "exo_ahw_al_temp_sensor_common.h"


uint8_t obc_test_sensor( uint8_t *id);
uint8_t  obc_test_gpio_exp( uint8_t *id);
uint8_t obc_test_spi_uart_conv();

uint8_t coreboard_sensor_init();

uint8_t bringup_temp_sensors_init(ahw_al_temp_sensor_hdl* tmp_hdl, uint32_t ahw_id);
uint8_t bringup_sensors_init();

void core_board_test();
void io_board_test();
void bringup_force_test_run();
void ssd_brd_test();
void edge_brd_test();
void backplane_brd_test();
void power_brd_bringup_test();
void ps_brd_test();
uint64_t obc_auto_sensor_test();

typedef struct
{
	uint8_t temp_sts;
	uint8_t gpx_sts;

}core_brd_brgup_sts;

typedef struct
{
	uint8_t temp_sts;
	uint8_t gpx_sts;

}bp_brd_brgup_sts;


typedef struct
{
	uint8_t io_temp_sts;
	uint8_t gpx_nic1_sts;
	uint8_t gpx_nic2_sts;
	uint8_t gpx_nic3_sts;
}nic_brd_brgup_sts;

typedef struct
{
	uint8_t gpx_bp_1_sts;
	uint8_t gpx_bp_2_sts;
	uint8_t gpx_bp_3_sts;
	uint8_t hsc_ps2_sts;
	uint8_t hsc_ps1_sts;
	uint8_t hsc_edge1_sup_sts;
	uint8_t hsc_edge1_hc_sts;
	uint8_t hsc_edge2_sup_sts;
	uint8_t hsc_edge2_hc_sts;
	uint8_t hsc_io_sup_sts;
	uint8_t hsc_io_top1_sts;
	uint8_t hsc_io_top2_sts;
	uint8_t hsc_bot1_sts;
	uint8_t hsc_bot2_sts;
	uint8_t pwr_core_a_sts;
	uint8_t pwr_core_b_sts;
	uint8_t pwr_ps1_sts;
	uint8_t pwr_ps2_sts;
	uint8_t pwr_edge1_sts;
	uint8_t pwr_edge2_sup_sts;
	uint8_t pwr_io_sup_sts;
	uint8_t adc_sts;
	uint8_t adc_ps1_sts;
	uint8_t adc_ps2_sts;
    uint8_t adc_oring_sts;
}pwr_brd_brgup_sts;

typedef struct
{
	uint8_t temp_edge1_sts;
	uint8_t temp_edge2_sts;
	uint8_t gpx_edge1_sts;
	uint8_t gpx_edge2_sts;
	uint8_t gpx_edge3_sts;
	uint8_t gpx_edge4_sts;
}edge_brd_brgup_sts;

typedef struct
{
	uint8_t gpx_ssd1_sts;
	uint8_t gpx_ssd2_sts;
	uint8_t temp_ssd1_sts;
	uint8_t temp_ssd2_sts;
	uint8_t temp_ssd3_sts;
	uint8_t temp_ssd4_sts;
}ssd_brd_brgup_sts;

typedef struct
{
	uint8_t temp_ps_sts;
	uint8_t gpx_ps_sts;
	uint8_t hsc_ps_sts;
	uint8_t pwr_ps_sts;
}payload_brd_brgup_sts;


//uint8_t bringup_adc_sensor_init(ahw_al_ad7291_hdl* hadc_arg, ahw_inst_id_t ahw_id);

typedef struct
{
    uint8_t channel_id;
    uint8_t test_mode;
    uint8_t status;
    char data[15];
}__attribute__((__packed__)) s_test_spi_uart_conv;



#endif

