'########################################
'#                                      #
'#            AI MAIN SCRIPT            #
'#                                      #
'#    			O305		#
'#                                      #
'#                                      #
'########################################

'(c) 12.12.2010 Rüdiger Hülsmann
'(c) 10.01.2013 Marcel Kuhnt

'Script Version: 1.1
'Omsi release: 1.0


'Revision History:
'- Rüdiger Hülsmann	10.12.2010	File created
'- Marcel Kuhnt		27.12.2010	Structure changed, added display and door frame
'- Marcel Kuhnt		07.01.2011	Engine switch off
'- Marcel Kuhnt		28.01.2011	Set elec_busbar_avail true (interior lights)
'- Rüdiger Hülsmann	01.02.2011	Brake pressure values predefined for takeover
'- Marcel Kuhnt		16.11.2012	Scheibenwischer laufen auch an KI-Bussen
'- Marcel Kuhnt		10.01.2013	für O305

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


'######################
'	Hauptteil
'######################


{frame_ai}


(L.L.engine_n)
(S.L.Debug_0)

(L.L.AI_engine_n_soll)
(S.L.Debug_1)

(L.L.antrieb_getr_gang)
(S.L.Debug_2)

(L.L.M_Wheel)
(S.L.Debug_3)

(L.L.AI_clutchtimer)
(S.L.Debug_4)

(L.L.engine_M)
(S.L.Debug_5)



'Strom einschalten

1 (S.L.elec_busbar_main)
(S.L.elec_busbar_avail)

'Bremsdrücke setzen
900000 (S.L.bremse_p_tank01) (S.L.bremse_p_tank02) (S.L.bremse_p_tank03) (S.L.bremse_p_tank04) (S.L.bremse_p_leitung01) (S.L.bremse_p_leitung02)
400000 (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_R) (S.L.bremse_p_balg_1_L) 


'########################################################################################
'AI-Antrieb
'########################################################################################


'Einspritzpumpe vereinfacht an Gaspedalstellung koppeln:
(L.L.Throttle) (S.L.engine_throttle_injection)

'---------------------------------------------------
'Antriebsmoment anhand der Übersetzung bestimmen:


(L.L.engine_n) (F.L.engine_M_maxThrottle) (L.L.Throttle) * (S.L.engine_M) (L.L.antrieb_getr_ratio_act) * (L.L.antrieb_i_achse) * s0



'---------------------------------------------------
'Reduktion bzw. Zuschlag je nach Gang
(L.L.antrieb_getr_gang) 1 >
{if}
	l0 -300 1 (L.L.Throttle) - * (L.L.antrieb_getr_ratio_act) * (L.L.antrieb_i_achse) * + s0
{else}
	l0 70 1 (L.L.Throttle) - * (L.L.antrieb_getr_ratio_act) * (L.L.antrieb_i_achse) * + s0
{endif}

l0 (S.L.M_Wheel)




'---------------------------------------------------
'Einfach-Getriebe:


(L.L.engine_n) 500 <
{if}
	0 (S.L.antrieb_getr_gang) (S.L.antrieb_shifter_posy_target)
{else}
	(L.L.antrieb_getr_gang) 0 = (L.L.Velocity) 15 < && {if} 1 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 1 = (L.L.Velocity) 15 > && {if} 2 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 2 = (L.L.Velocity) 25 > && {if} 3 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 3 = (L.L.Velocity) 40 > && {if} 4 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 2 = (L.L.Velocity)  3 < && {if} 1 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 3 = (L.L.Velocity) 17 < && {if} 2 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
	(L.L.antrieb_getr_gang) 4 = (L.L.Velocity) 28 < && {if} 3 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_getr_ratio_act) (S.L.AI_clutchtimer) {endif}
{endif}






'---------------------------------------------------
'Einfach-Getriebe:

(L.L.Wheel_RotationSpeed_1_R) (L.L.antrieb_i_achse) * (S.L.antrieb_n_kardanwelle) s0

'---------------------------------------------------
'Motor-Solldrehzahl


'Wenn der Motor aus sein soll, dann nimm 0 als Sollwert:

(L.L.AI_Engine) -0.5 <
{if}
	0 (S.L.AI_engine_n_soll)

'Sonst isser an:

{else}
	(L.L.antrieb_getr_gang) 1 >
	{if}
		l0 (L.L.antrieb_getr_ratio_act) * (S.L.AI_engine_n_soll)
	{else}
		(L.L.velocity) (F.L.AI_wandler_leer) (L.L.velocity) (F.L.AI_wandler_last) (L.L.velocity) (F.L.AI_wandler_leer) - (L.L.Throttle) * + (S.L.AI_engine_n_soll)
	{endif}
{endif}





(L.L.AI_clutchtimer) (L.S.Timegap) + (S.L.AI_clutchtimer)

2 <
{if}
	0 (S.L.antrieb_getr_ratio_act)	
	800 (S.L.AI_engine_n_soll)
	0 (S.L.engine_M)
{else}
	(L.L.antrieb_getr_gang) (F.L.antrieb_getr_ratio) (S.L.antrieb_getr_ratio_act)
{endif}




(L.L.AI_engine_n_soll) s0
(L.L.engine_n) s1
1.5 s2
2 s3
(M.L.traegheit)	
l1 (S.L.engine_n)


'########################################################################################
'AI-Bremse
'########################################################################################

(L.L.Brake) (C.L.max_bremskraft) * (S.L.Brakeforce)



'########################################################################################
'Türsteuerung
'########################################################################################

900000 (S.L.bremse_p_tank04)

(M.L.Door_Frame)

'########################################################################################
'Lichtsteuerung
'########################################################################################

(M.L.lights_frame)

(M.L.wimpel_frame)
(M.L.spray_frame)

'########################################################################################
'Wischersteuerung
'########################################################################################

(M.L.wiper_frame)


{end}



