#include "main.h"
#include "gpio.h"
#include "lampa.h"
#include "struc.h"
#include "message.h"
#include "package.h"

void ReadEnteres(void)
{
  WORDE input, alarm, error;

	input.all=0;
	
	input.bit.bit0 = !IN_06;	//	Контроль ИП1 (питание управляющего контроллера)
	input.bit.bit1 = !IN_05;	//	Контроль ИП2 (питание периферийных устройств)
	input.bit.bit2 = !IN_04;	//	Контроль ИП3 (питание эл. замков, ламп освещения, УКСИ)
	input.bit.bit3 = !IN_03;	//	Контроль ИП4 (питание датчиков тока и напряжения +)
	input.bit.bit4 = !IN_02;	//	Контроль ИП5 (питание датчиков тока и напряжения –)
	input.bit.bit5 = !IN_01;	//	Контроль ИП6 (питание драйверов)

	input.bit.bit6 = !IN_07;	//	Контроль 3х фазного 380 В
	input.bit.bit7 = !IN_08;	//	Заряд накопителя
	input.bit.bit8 = !IN_09;	//	Разряд накопителя
	input.bit.bit9 =  IN_10;	//	Авария в сети 24 В, единственный нормально замкнутый сигнал
	
	input.bit.bitA = !IN_11;	//	Контроль питания ЛСУ
	input.bit.bitB = !IN_12;	//	резерв
	input.bit.bitC = !IN_13;	//	резерв
	input.bit.bitD = !IN_14;	//	Контроль питания СКК

//	Обычно неисправность это отсутствие сигнала, который есть в маске неисправностей	
	alarm.all = ~input.all & Alarm_mask.all;	
	alarm.bit.bit7 = 0;					//	Заряд накопителя никогда не неисправность
	alarm.bit.bit8 = input.bit.bit8;	//	Разряд накопителя всегда неисправность
	alarm.bit.bit9 = input.bit.bit9;	//	Авария в сети 24 В всегда неисправность
	
//	Обычно авария это отсутствие сигнала, который есть в маске аварий
	error.all = ~input.all & Error_mask.all;
	error.bit.bit7 = 0;					//	Заряд накопителя никогда не авария
	error.bit.bit8 = input.bit.bit8 & Error_mask.bit.bit8;
										//	Разряд накопителя 
	error.bit.bit9 = input.bit.bit9;	//	Авария в сети 24 В всегда авария

	Inputs = input;
	Alarms = alarm;
	Errors = error;
}

uint16_t ReadJumpers(void)
{
  WORDE input;
	
	input.all = 0;

	input.bit.bit0 = !J0;	
	input.bit.bit1 = !J1;
	input.bit.bit2 = !J2;
	input.bit.bit3 = !J3;
	input.bit.bit4 = !Jselect;
	
	return input.all;
}

uint16_t TestJumper(void)
{	
	return !Jselect;
}



