#include "control.h"

ctrl_struct Control; //FLASH    (rx)

void control_init(void)
{
	Control.dev_type		= DEV_TYPE;
	Control.ble_mode_set 	= ble_raw;
	Control.ble_mode_now 	= ble_off;
	Control.serial_number 	= BASE_SERIAL_NUM;
	Control.password 		= BASE_PASSWORD;
	Control.mesh_netid 		= BASE_MESH_ID;
	Control.mesh_adr 		= BASE_MESH_ADR;
	Control.master_adr 		= BASE_MASTER_ADR;
	Control.ble_ask 		= false;
}

void control_init_var(ctrl_struct * control)
{
	control->dev_type		= DEV_TYPE;
	control->ble_mode_set 	= ble_off;
	control->ble_mode_set 	= ble_off;
	control->serial_number 	= BASE_SERIAL_NUM;
	control->password 		= BASE_PASSWORD;
	control->mesh_netid 	= BASE_MESH_ID;
	control->mesh_adr 		= BASE_MESH_ADR;
	control->master_adr 	= BASE_MASTER_ADR;
	control->ble_ask 		= false;
}


void lets_sleep(void)
{
	HAL_GPIO_WritePin(HV_PWR_EN_GPIO_Port, HV_PWR_EN_Pin, GPIO_PIN_SET);
	//Включили питание АЦП
	HAL_GPIO_WritePin(ADC_PWR_GPIO_Port, ADC_PWR_Pin, RESET);
	//Включили питание потенциометра
	HAL_GPIO_WritePin(SPI1_PWR_GPIO_Port, SPI1_PWR_Pin, GPIO_PIN_RESET);
	HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
	HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, SD_PWR_Pin, RESET);
		//тразисторное отключение
//		HAL_GPIO_WritePin(AFE_PWR_PORT, AFE_PWR_PIN, 	SET);
//		HAL_GPIO_WritePin(SD_PWR_GPIO_Port, SD_PWR_Pin, SET);
//		//Дисплей отключение
//		GC9A01A_DeInit();
//		GC9A01A_SetBL(0);
//		HAL_GPIO_WritePin(DISP_PWR_GPIO_Port, DISP_PWR_Pin, RESET);
//		//отключенеи простой переферии
//		HAL_GPIO_WritePin(ADC_PWR_GPIO_Port, ADC_PWR_Pin, RESET);
//		ble_deinit();
//		I2c_off();//деинициализировали I2C
//		HAL_GPIO_WritePin(I2C1_PWR_GPIO_Port, I2C1_PWR_Pin, RESET);//выключили I2C1
//		HAL_GPIO_WritePin(I2C2_PWR_GPIO_Port, I2C2_PWR_Pin, RESET);//выключили I2C2
//		HAL_GPIO_WritePin(POT_PWR_GPIO_Port, POT_PWR_Pin, RESET);//без этого работает фиг знает почему
//
//		/*GC9A01A_DeInit();
//		HAL_GPIO_WritePin(DISP_PWR_GPIO_Port, DISP_PWR_Pin, RESET);
//		GC9A01A_SetBL(0);*/

		HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);
		HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);
		//Сейчас второй кнопки нет!!
		//HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);//если вторая кнопка тоже подключена PC0
		__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
		HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
		HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2);//если вторая кнопка тоже подключена PC0
		HAL_PWR_EnterSTANDBYMode();
}
