'##############
'SCRIPT AVL
'##############

'AVL SPTrans (Advanced Vehicle Location)

'(CC BY-NC-SA) 2024-2025 Redjoker Software

'Script Version: 1.1b
'Omsi release: 1.0

'Needs:
'- ELEC (elec_busbar_main)
'- Matrix (Matrix_Nr)
'- Cockpit (cockpit_uhr_sek)

'Revision History:
'- Redjoker Software		Main Functions Added				28.04.2024
'- Redjoker Software		SCANIA, ELETRA AND NOXXON Functions Added	28.04.2024

{trigger:botaosemaforo}
	1 (S.L.AVLMODO)
	0 (S.L.menutimer)
{end}
{trigger:botaoviainterditada}
	2 (S.L.AVLMODO)
	0 (S.L.menutimer)
{end}
{trigger:botaoacidente}
	(L.L.AVLMODO) 3 =
		{if}
	4 (S.L.AVLMODO)
	{else}
	3 (S.L.AVLMODO)
	{endif}
	0 (S.L.menutimer)
{end}

{trigger:botaodefeito}

	(L.L.AVLMODO) 5 =
		{if}
	11 (S.L.AVLMODO)
	{else}
	5 (S.L.AVLMODO)
	{endif}
	0 (S.L.menutimer)
{end}


{trigger:botaomensagem}
	(L.L.AVLMODO) 6 <
	{if}
	6 (S.L.AVLMODO)
	{else}
		(L.L.AVLMODO) 10 =
		{if}
		6 (S.L.AVLMODO)
		{endif}
		(L.L.AVLMODO) 9 =
		{if}
		10 (S.L.AVLMODO)
		{endif}
		(L.L.AVLMODO) 8 =
		{if}
		9 (S.L.AVLMODO)
		{endif}
		(L.L.AVLMODO) 7 =
		{if}
		8 (S.L.AVLMODO)
		{endif}
		(L.L.AVLMODO) 6 =
		{if}
		7 (S.L.AVLMODO)
		{endif}
	{endif}
	


{end}

{trigger:botaovoltar}
	" " (S.$.AVL3)
	" " (S.$.AVL4)
	0 (S.L.AVLMODO)
	100 (S.L.menutimer)
{end}

{trigger:botaoenter}
	" " (S.$.AVL3)
	" " (S.$.AVL4)
	0 (S.L.AVLMODO)
	100 (S.L.menutimer)
{end}

{macro:AVL_init}
	"00/00/0000 00:00:00" (S.$.AVL1)
	"Linha: 0000 TP/TS" (S.$.AVL2)
	" " (S.$.AVL3)
	" " (S.$.AVL4)
	0 (S.L.AVLMODO)
	100 (S.L.menutimer)
	0 (S.L.timernoxxon)
	0 (S.L.timereletra)
	0 (S.L.timerscania)
	"00" (S.$.vela)
	"000" (S.$.veltaco)
	"00" (S.$.velb)
	(L.L.cockpit_tankuhr) 250 / $IntToStr (S.$.bateria)
	(L.L.kmcounter_km) (S.$.odome)
	0 (S.L.nivelbat)
	0 (S.L.asrampa)


{end}

{macro:AVL_frame}

0 (S.L.luzportaaberta)
'energy current from battery

2.5 (L.L.Velocity) * 200 - (L.L.throttle) * (S.L.evbatterycurrent)
(L.L.evbatterycurrent) -1 * (S.L.evbatterycurrent)
(L.L.evbatterycurrent) 4.9 (L.L.Velocity) * (L.L.Brake) * - (S.L.evbatterycurrent)
(L.L.evbatterycurrent) -1 * (S.L.evbatterycurrent)
(L.L.evbatterycurrent) 10 - (S.L.evbatterycurrent)
(L.L.evbatterycurrent) 2.5 * $IntToStr (S.$.strbatterycurrent)


(L.L.Velocity) 33.5 * $IntToStr (S.$.rpmeletrab)

0 (S.L.bcon)
0 (S.L.trhabil)
'cor barra bateria
	0 (S.L.nivelbat)

 13 (L.L.eletratela) =
{if}
10 (L.L.cockpit_tankuhr) 25 / trunc - (S.L.nivelbat)

(L.L.engine_on) 1 =
{if}
	1 (S.L.trhabil)
{endif}



'cor barra consumo


-100 (L.L.evbatterycurrent) <
	{if}
		4 (S.L.bcon)
	{else}

	-160 (L.L.evbatterycurrent) <
	{if}
	1 (S.L.bcon)
	{else}
	2 (S.L.bcon)
	{endif}	
{endif}


(L.L.Velocity) 1 >  (L.L.Velocity) -1 < ||  
	{if}
	0 (S.L.asrampa)
{endif}



(L.L.bremse_feststell_sw) (S.L.handbrakelighteletra) ||
(L.L.cockpit_light_batterie) (S.L.batterylighteletra)
0 (S.L.luzporta1eletra)
0 (S.L.luzporta2eletra)

(L.L.cockpit_tuertaster1) (L.L.cockpit_tuertaster4) ||
{if}
1 (S.L.luzporta1eletra)
1 (S.L.luzportaaberta)
{endif}

(L.L.cockpit_tuertaster2) (L.L.cockpit_tuertaster5) ||
{if}
1 (S.L.luzporta2eletra)
1 (S.L.luzportaaberta)
{endif}

(L.L.cockpit_tuertaster3) (S.L.luzporta3eletra)




{else}
0 (S.L.handbrakelighteletra)
0 (S.L.batterylighteletra)
0 (S.L.luzporta1eletra)
0 (S.L.luzporta2eletra)
0 (S.L.luzporta3eletra)
0 (S.L.asrampa)
{endif}




(L.L.Velocity) $IntToStr (S.$.vela)
(L.L.Velocity) "03" $IntToStrEnh (S.$.veltaco)
(L.L.cabinair_target_temp) $IntToStr (S.$.cockpit_tgttemperatur)

(L.L.cp_ASR_off) (S.L.cp_ASR_offb)
'timer de atualização de medidor de velocidade

(L.L.Timer) (L.S.Timegap) + (S.L.Timer)
s0 1 >
{if}
	(L.L.Velocity) "02" $IntToStrEnh (S.$.velb)
	(L.L.cockpit_tankuhr) 2.5 / $IntToStr (S.$.bateria)
	(L.L.cockpit_tankuhr) $IntToStr (S.$.autonomia)
	(L.L.engine_temperature) 0.5 * 15 + $IntToStr (S.$.tempmotor)
	1 (L.L.Velocity) >  13 (L.L.eletratela) = &&
		{if}
		1 (S.L.asrampa)

	{endif}
	

		(L.S.Time) 3600 / s0 trunc s1 "02" $IntToStrEnh  ":" $+ 
			l0 l1 - 60 * s0 trunc s1 "02" $IntToStrEnh $+ l0 l1 - 10 * trunc $IntToStr $+ "  " $+ 5 $SetLengthL (S.$.horaeletra)

'		ano:
			(L.S.Year) $IntToStr 4 $SetLengthR "-" $+
'		mês:
			(L.S.Month) "02" $IntToStrEnh $+ "-" $+
'		dia:
			(L.S.Day) "02" $IntToStrEnh $+ (S.$.dataeletra)


	(L.L.kmcounter_km) trunc " 6" $IntToStrEnh  "." $+
	(L.L.kmcounter_m) 100 / trunc " 1" $IntToStrEnh $+
        (S.$.odome)

'	(S.L.cp_odometer_01) $IntToStr (S.$.odome)

    0 (S.L.Timer)
{endif}

'tempo encerramento do menu scania

 300 (L.L.timerscania) >
{if}
	(L.L.timerscania) 1 + (S.L.timerscania)
{else}
	(L.L.elec_busbar_main) 1 =
	{if}
	2 (S.L.scaniatelaatual)
	{endif}
{endif}

'tempo boot noxxon

 130 (L.L.timernoxxon) >
{if}
	(L.L.timernoxxon) 1 + (S.L.timernoxxon)
	11 (S.L.noxxontela)
{else}
	12 (S.L.noxxontela)
{endif}


'tempo boot eletra

 65 (L.L.timereletra) >
{if}
	(L.L.timereletra) 1 + (S.L.timereletra)
	11 (S.L.eletratela)
{else}
 	250 (L.L.timereletra) >
	{if}
		(L.L.timereletra) 1 + (S.L.timereletra)
		12 (S.L.eletratela)
	{else}

		13 (S.L.eletratela)
	{endif}
{endif}


(L.L.elec_busbar_main) 0 =
	{if}
		0 (S.L.timernoxxon)
		0 (S.L.timereletra)
		0 (S.L.noxxontela)
		0 (S.L.eletratela)
		0 (S.L.cp_ASR_offb)
	{endif}




 (L.L.menutimer) 250 <
{if}
	(L.L.menutimer) 1 + (S.L.menutimer)

{else}
0 (S.L.AVLMODO)
	" " (S.$.AVL3)
	" " (S.$.AVL4)
{endif}

 (L.S.Time) 
        3600 / d trunc 
        - 60 * d trunc 
        - 60 * (S.L.time_second)

'----------------
'Texto AVL SPTrans
(L.L.elec_busbar_main) 1
	{if}
	"" (S.$.AVL1)
'linha 1

'			"01:21:21 13/11/1984"
		
'		dia:
			(L.S.Day) "02" $IntToStrEnh $+ "/" $+
'		mês:
			(L.S.Month) "02" $IntToStrEnh $+ "/" $+
'		ano:
			(L.S.Year) $IntToStr 4 $SetLengthR $+ " " $+
'		hora:
			(L.S.Time) 3600 / s0 trunc s1 "02" $IntToStrEnh $+ ":" $+
'		Minuto:
			l0 l1 - 60 * trunc "02" $IntToStrEnh $+ ":" $+
'		segundo
			(L.L.time_second) "02" $IntToStrEnh $+ (S.$.AVL1)
'linha 2 ok
'			"Linha: 5109 TP/TS"
"Linha:" (L.$.Matrix_Nr) $+ "TP/TS" $+ (S.$.AVL2)

'linha 3 e 4
(L.L.AVLMODO) 0 =
		{if}
'nada ativado
			" " (S.$.AVL3)	
		{endif}
(L.L.AVLMODO) 1 =
		{if}
'semaforo inoperante
			"Semaforo Inoperante" 19 $SetLengthL (S.$.AVL3)
			" " (S.$.AVL4)
		{endif}

(L.L.AVLMODO) 2 =
		{if}
'via interditada
			"Via Interditada" 19 $SetLengthL (S.$.AVL3)
			" " (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 3 =
		{if}
'botao acidente 1
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Acidente na Via" 19 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 4 =
		{if}
'botao acidente 2
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Acidente com o Veiculo" 24 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 5 =
		{if}
'botao defeito
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Defeito no Veiculo - SOS" 31 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 6 =
		{if}
'botao mensagens 1
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Veiculo Assaltado" 19 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 7 =
		{if}
'botao mensagens 2
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Atendimento a Mal Subito" 26 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 8 =
		{if}
'botao mensagens 3
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Atende - Embarque" 19 $SetLengthL (S.$.AVL4)
		{endif}

(L.L.AVLMODO) 9 =
		{if}
'botao mensagens 4
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Queda de Usuario" 19 $SetLengthL (S.$.AVL4)
		{endif}
(L.L.AVLMODO) 10 =
		{if}
'botao mensagens 5
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Veiculo Reservado" 19 $SetLengthL (S.$.AVL4)
		{endif}

(L.L.AVLMODO) 11 =
		{if}
'botao defeito
			"Selecione a opcao:" 19 $SetLengthL (S.$.AVL3)
			"Defeito no Veiculo - Recolhendo" 31 $SetLengthL (S.$.AVL4)
		{endif}



{endif}

{end}

'triggers scania







'0 desl 1 menu 2 menu inativo

{trigger:paddown}

0 (S.L.timerscania)
0 (L.L.elec_busbar_main) =
{if}
	0 (S.L.scaniatelaatual)
{else}

	2 (L.L.scaniatelaatual) =
	{if}
		1 (S.L.scaniatelaatual)
	{else}
		12 (L.L.scaniatelaatual) =
		{if}
			13 (S.L.scaniatelaatual)
		{endif}
		11 (L.L.scaniatelaatual) =
		{if}
			12 (S.L.scaniatelaatual)
		{endif}

		25 (L.L.scaniatelaatual) =
		{if}
			26 (S.L.scaniatelaatual)
		{endif}
		24 (L.L.scaniatelaatual) =
		{if}
			25 (S.L.scaniatelaatual)
		{endif}
		23 (L.L.scaniatelaatual) =
		{if}
			24 (S.L.scaniatelaatual)
		{endif}
		22 (L.L.scaniatelaatual) =
		{if}
			23 (S.L.scaniatelaatual)
		{endif}
		21 (L.L.scaniatelaatual) =
		{if}
			22 (S.L.scaniatelaatual)
		{endif}
		34 (L.L.scaniatelaatual) =
		{if}
			35 (S.L.scaniatelaatual)
		{endif}
		33 (L.L.scaniatelaatual) =
		{if}
			34 (S.L.scaniatelaatual)
		{endif}
		32 (L.L.scaniatelaatual) =
		{if}
			33 (S.L.scaniatelaatual)
		{endif}
		31 (L.L.scaniatelaatual) =
		{if}
			32 (S.L.scaniatelaatual)
		{endif}	
		1 (L.L.scaniatelaatual) =
		{if}
			31 (S.L.scaniatelaatual)
		{endif}	
 	{endif}
 {endif}

{end}

{trigger:padup}
0 (S.L.timerscania)
0 (L.L.elec_busbar_main) =
{if}
	0 (S.L.scaniatelaatual)
{else}

	2 (L.L.scaniatelaatual) =
	{if}
		1 (S.L.scaniatelaatual)
	{else}
		12 (L.L.scaniatelaatual) =
		{if}
			11 (S.L.scaniatelaatual)
		{endif}
		13 (L.L.scaniatelaatual) =
		{if}
			12 (S.L.scaniatelaatual)
		{endif}
		22 (L.L.scaniatelaatual) =
		{if}
			21 (S.L.scaniatelaatual)
		{endif}
		23 (L.L.scaniatelaatual) =
		{if}
			22 (S.L.scaniatelaatual)
		{endif}
		24 (L.L.scaniatelaatual) =
		{if}
			23 (S.L.scaniatelaatual)
		{endif}
		25 (L.L.scaniatelaatual) =
		{if}
			24 (S.L.scaniatelaatual)
		{endif}
		26 (L.L.scaniatelaatual) =
		{if}
			25 (S.L.scaniatelaatual)
		{endif}

		32 (L.L.scaniatelaatual) =
		{if}
			31 (S.L.scaniatelaatual)
		{endif}

		33 (L.L.scaniatelaatual) =
		{if}
			32 (S.L.scaniatelaatual)
		{endif}
		34 (L.L.scaniatelaatual) =
		{if}
			33 (S.L.scaniatelaatual)
		{endif}
		35 (L.L.scaniatelaatual) =
		{if}
			34 (S.L.scaniatelaatual)
		{endif}
		1 (L.L.scaniatelaatual) =
		{if}
			11 (S.L.scaniatelaatual)
		{endif}
		
 	{endif}
 {endif}
{end}



{trigger:padright}
0 (S.L.timerscania)
0 (L.L.elec_busbar_main) =
{if}
	0 (S.L.scaniatelaatual)
{else}
	2 (L.L.scaniatelaatual) =
	{if}
		1 (S.L.scaniatelaatual)
	{else}
		1 (L.L.scaniatelaatual) =
		{if}
			21 (S.L.scaniatelaatual)
		{endif}
 	{endif}
 {endif}
{end}

{trigger:padleft}
0 (S.L.timerscania)
0 (L.L.elec_busbar_main) =
{if}
	0 (S.L.scaniatelaatual)
{else}

	2 (L.L.scaniatelaatual) =
	{if}
		1 (S.L.scaniatelaatual)
	{else}
		1 (L.L.scaniatelaatual) =
		{if}
			41 (S.L.scaniatelaatual)
		{else}
			1 (S.L.scaniatelaatual)
 		{endif}
 	{endif}
 {endif}
{end}













