/* USER CODE BEGIN 1 */
/*
 * HAL_layer_io.c
 *
 *  Created on: 10. 3. 2018
 *      Author: Dušan Benda
 */

#include "HAL_layer_io.h"

void HAL_MCU_fault(uint8_t state)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_5,state);
}

uint8_t HAL_Switch_0(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));
}

uint8_t HAL_Switch_1(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_9));
}

uint8_t HAL_Switch_2(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_11));
}

uint8_t HAL_Switch_3(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13));
}

uint8_t HAL_Switch_4(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_14));
}

uint8_t HAL_Switch_5(void)
{
	return (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15));
}

uint8_t HAL_Switches(void)
{
	return (HAL_Switch_0() |
		   (HAL_Switch_1() << 1) |
		   (HAL_Switch_2() << 2) |
		   (HAL_Switch_3() << 3) |
		   (HAL_Switch_4() << 4) |
		   (HAL_Switch_5() << 5));
}
uint16_t HAL_fault_io_check(void)
{
	return( ((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_0)) << 0) | 		// fault_over_cur
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)) << 1) | 		// fault_under_volt
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)) << 2) | 		// fault_over_volt
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3)) << 3) | 		// fault_over_temp
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_4)) << 4) | 		// fault_start
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)) << 5) | 		// fault_over_temp1
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_10)) << 6) | 	// fault_over_temp2
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_11)) << 7) | 	// fault_over_temp3
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_12)) << 8) | 	// LT3992_CMPO1
			((!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)) << 9) |		// LT3992_CMPO2
			((HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15)) << 10 )); 	// fault switch
}

void HAL_LT3992_power_12V_SHDN_on(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,0);
}

void HAL_LT3992_power_12V_SHDN_off(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,1);
}

void HAL_LT3992_power_12V_SHDN(uint8_t state)
{
	if ((state == 0) || (state == 1))
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,(state == 1) ? 0 : 1);
}

/* USER CODE END 1 */
