'##############
'Electricity Script
'Скрипт электросистемы
'##############

'Controls Bus Electicity and tells the systems
'if the busbar is active or not

'(c) 13.06.2009 Marcel Kuhnt

'Script Version: 1.0
'Omsi release: 1.0

'Needs:
'- engine

'Revision History:
'- Marcel Kuhnt		13.06.2009	File Created
'- Rьdiger Hьlsmann	23.12.2010	L.L.elec_busbar_avail = 1 by init
'- Яковлев Вячеслав 04.10.2011  Добавлена кнопка выключателя аккумуляторных батарей
'- Яковлев Вячеслав 04.10.2011  Добавлен замок ключа зажигания и макрос priborka_voltage отвечающий за подачу 
'					напряжения на приборы приборной панели


'Attention:
'============
'All voltages are measured without units. Все измерения не имеют метрических единиц.
'1.0 means 100% of the normal voltage, 0.0 means no voltage. 1.0 составляет 100% заряда, 0.0 составляет 0% заряда.

'-------------------------------------------
'Кнопка выключателя аккумуляторных батарей
'-------------------------------------------

{trigger:knp_massa}
	(L.L.elec_busbar_main_sw) 1 <
	{if}
		(T.L.ev_kippschalter_aus)
		1 (S.L.bremse_ABS_selftest)
		(C.L.automatic_battery_switch)
			{if}
				1 (S.L.elec_busbar_main_sw)
			{endif}
		
	{else}
		(T.L.ev_kippschalter_aus)
		0 (S.L.elec_busbar_main_sw)
	{endif}
	1 (S.L.knopka_massa)
{end}

{trigger:knp_massa_off}
 	0 (S.L.knopka_massa)
{end}

'-------------------------------------------
'Замок ключа зажигания и противоугоннное устройство
'-------------------------------------------

{trigger:cp_kluch_mov_drag}
	
	
		(L.S.mouse_x) -30 / (L.L.cp_kluch_rot) + 0 max 1 min (S.L.cp_kluch_rot) s1

'		Положения:
'		3: Включено противоугонное устройство
'		0: Выключено противоугонное устройство, выключение двигателя
'		1: Включено питание приборки
'		2: Стартер двигателя

		l1 0.1 <
		{if}
			0 (S.L.cp_kluch_rot_mode)
			(L.S.mouse_y) 10 / (L.L.cp_kluch_trans) + 0 max 1 min (S.L.cp_kluch_trans) s0
		
'		Положение:
'		0: Извлечение ключа зажигания
'		1: Ключ вставлен
		
			l0 0.5 <
			{if}
				0 (S.L.cp_kluch_trans_mode)
			{else} 
				1 (S.L.cp_kluch_trans_mode)
			{endif}
			
		{else} 
			l1 0.6 <
			{if}
				2 (S.L.cp_kluch_rot_mode)
				1 (S.L.cp_kluch_trans_mode)
				
'				Блок скрипта останова двигателя через ключ (перевод в 0-е положение)	
				
				(L.L.elec_busbar_main)
				{if}
					0 (S.L.engine_injection_on)
				{endif}
							
			{else}
				4 (S.L.cp_kluch_rot_mode)
				1 (S.L.cp_kluch_trans_mode)

			{endif}
			l1 1 =
			{if}
				1 (S.L.cp_kluch_trans_mode)
				
'				Блок скрипта запуска двигателя через ключ (2-е нефиксированное положение)	
			
				(L.L.engine_on) ! 
				(L.L.antrieb_getr_gangwahl) 1 = &&
				(L.L.elec_busbar_main) &&
				{if}
					1 (S.L.engine_on) (S.L.engine_injection_on)
					(T.L.ev_enginestart)
					300 (S.L.engine_n)
				{endif}
				
				4 (S.L.cp_kluch_rot_mode)
			{endif}
		{endif}
{end}




{trigger:cp_kluch_mov_off}

'	Привязка ключа к фиксированным положениям
	(L.L.cp_kluch_trans_mode) (S.L.cp_kluch_trans)
	(L.L.cp_kluch_rot_mode) 5 / (S.L.cp_kluch_rot)

{end}

'-------------------------------------------




{macro:Elec_Init}
'At the beginning, battery has enough voltage: Изначальное напряжение на батерее:
	1.0 (S.L.elec_V_battery) (L.L.elec_busbar_avail)
{end}

{macro:Elec_Frame}

'If engine's RPM is high enough, generator will become active: Когда обороты дизеля становятся достаточными чтобы работал
'генератор:

	(L.L.engine_n) (C.L.elec_generator_minRPM) > (S.L.elec_V_generator)

'Battery's voltage decrease while main busbar switch is on (but only to zero ;-) ): Напряжение убывает, когда включен
'главный выключатель (шозауихта?!)
	(L.L.elec_busbar_main_sw)
	{if}
		(L.L.elec_V_battery)
		(L.S.Timegap) (C.L.elec_battery_duration) / 
		- 0 max (S.L.elec_V_battery)
	{endif}

'But battery's voltage instantly grows up to the level of the generator voltage; value will be stored for further steps.
'Иначе напряжение возрастает до уровня генераторного напряжения для дальнейших действий

	(L.L.elec_V_battery) (L.L.elec_V_generator) max (S.L.elec_V_battery)

'If the battery voltage is above minimum and there is no electricity failure, the busbar becomes available
'Если напряжение в батареи нормальное, то автобус доступен к запуску и управлению

	(C.L.elec_busbar_Vmin) >= (L.L.elec_failure_general) ! &&
	{if}
		1 (S.L.elec_busbar_avail)
	{else}
		0 (S.L.elec_busbar_avail)
	{endif}

'If the battery or generator has voltage and if the switch is on and if there is no electricity failure,
'the main busbar will become active:
'То же самое что и выше, но уже отвечает за возможность включения массы

	(L.L.elec_busbar_avail)
	(L.L.elec_busbar_main_sw) &&
	(L.L.elec_failure_general) ! &&
	(S.L.elec_busbar_main)
	
	(M.L.Priborka_voltage)

{end}

{macro:Priborka_voltage}
'		Подается напряжение на приборку
				
		(L.L.cp_kluch_rot_mode) 3 >
		(L.L.cp_kluch_rot) 0.4 > ||
		{if}
			(L.L.elec_busbar_main) 1 =
			{if}
				1 (S.L.elec_priborka_voltage)
			{else}
				0 (S.L.elec_priborka_voltage)
			{endif}
		{else}
			0 (S.L.elec_priborka_voltage)
		{endif}
{end}	



