'##############
'Matrix Script
'##############

'Simulates 80s style Matrix Line and Terminus Display (Type Annax)

'(c) 10.01.2013 Marcel Kuhnt

'Script Version: 1.1
'Omsi release: 1.0

'Needs:
'- Cockpit (Batterietrennschalter)
'- IBIS


'Revision History:
'- Marcel Kuhnt		10.08.2009	Added Revision History
'- Marcel Kuhnt		13.04.2010	Added Line List Script
'- Marcel Kuhnt		23.04.2010	Line right formatted
'- Marcel Kuhnt		05.07.2011	Fehler bereinigt, dass bei KI-Bussen immer am Anfang eine Zeile "verrutscht"
'- Marcel Kuhnt		09.07.2012	Neue Busbar-Logik
'- Marcel Kuhnt		16.11.2012	Liniencode-115-Problem
'- Marcel Kuhnt		04.12.2012	Steckschilder für ausgewählte Ziele
'- Marcel Kuhnt		05.12.2012	Auto center
'- Marcel Kuhnt		18.12.2012	Seitenschild
'- Marcel Kuhnt		13.10.2013	Neuer Seitenschildpfad
'- Marcel Kuhnt		20.12.2013	Bugfix: Steckschild-Init
'- Marcos Elias		29.07.2016	Letreiro piscante com varias funcionalidades
'------------------------------------------------------------------------------------------


{macro:Matrix_init}
	0 (S.L.Matrix_TerminusIndex_Last)
	0 (S.L.Matrix_Nr_Last)
	"                @                @                " (S.$.Matrix_Terminus) (S.$.Matrix_NewTerminus)
	"   " (S.$.Matrix_Nr) (S.$.Matrix_NewNr)
	"BOA VIAGEM" $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPMsgSaudacoes)

'Matrix spinnt, wenn Bus schlecht gewartet:

	1000 random (L.L.wearlifespan) * 50 < (S.L.Matrix_spinnt)

	-1 (S.L.matrix_steckschild_Termindex)
	0 (S.L.matrix_steckschild_vis)

	1 (S.L.MEP_LetreiroLigado)
	0 (S.L.MEP_LetreiroPersonalizado)
	0 (S.L.Matrix_MEPMostrarSaudacoes)
	1 (S.L.MEP_QualStatusEditar)
{end}


{trigger:ai_scheduled_settarget}

'Stromversorgung herstellen:
	1 (S.L.elec_busbar_main_sw)	
	1.0 (S.L.elec_V_battery)

'Hier wird die Nummer eingestellt:
	(L.$.SetLineTo) 7 $SetLengthC (S.$.Matrix_Nr)

'Hier wird das Ziel eingestellt:
	1 (S.L.elec_busbar_main_sw)


	(L.L.AI_target_index) s0 (M.V.GetTerminusCode) s1
'Wenn der Terminus-Code größer als 1000 ist, dann bitte Steckschild verwenden:
	1000 >
	{if}
		l1 1000 - (S.L.matrix_steckschild_index)
		l0 (S.L.matrix_steckschild_Termindex)
'Matrix auf 0:
		0 (S.L.IBIS_TerminusIndex) s2
	{else}
		l0 (S.L.IBIS_TerminusIndex) s2
		-1 (S.L.matrix_steckschild_Termindex)

'Wenn der Bitmap-String in Verwendung ist, dann den als Integer interpretieren und Steckschild zusätzlich setzen:
		l0 6 (M.V.GetTerminusString) $StrToFloat s1
		l1 1000 >
		{if}
			l1 1000 - (S.L.matrix_steckschild_index)
			l0 (S.L.matrix_steckschild_Termindex)			
		{endif}

	{endif}
	(M.L.matrix_setsteckschild)

	l2 (M.V.GetTerminusCode) (S.L.IBIS_TerminusCode)

	1 (S.L.matrix_refresh_seitenschild)

{end}





'*******************************************
' Trigger für Seitenschild

{trigger:matrix_seitenschildklemme_drag}
	(L.S.mouse_y) -300 / (L.L.matrix_seitenschildklemme) + (S.L.matrix_seitenschildklemme) s0
	l0 0 <
	{if}
		0 (S.L.matrix_seitenschildklemme)
	{endif}
	l0 0.7 >
	{if}
		(L.L.matrix_seitenschild_refresh) 0 =
		{if}
			1 (S.L.matrix_seitenschild_refresh)
			(T.L.ev_fahrertuer_auf)
			(L.$.Matrix_Seitenschild) "" $=
			{if}
				1 (S.L.matrix_refresh_seitenschild)
			{else}
				"" (S.$.Matrix_Seitenschild)
			{endif}
		{endif}
	{endif}
	l0 1 >
	{if}
		1 (S.L.matrix_seitenschildklemme)
	{endif}
{end}

{trigger:matrix_seitenschildklemme_off}
	(L.L.matrix_seitenschildklemme)
	0.3 >
	{if}
		(T.L.ev_fahrertuer_zu)
	{endif}
	0 (S.L.matrix_seitenschildklemme)
	(S.L.matrix_seitenschild_refresh)
{end}

'*******************************************
' Trigger für Steckschild

{trigger:bus_matrix_change_steckschild}
	(L.L.matrix_steckschild_index) 1 + (S.L.matrix_steckschild_index)
	1000 + (M.V.GetTerminusIndex) (S.L.matrix_steckschild_Termindex)

	(M.L.matrix_setsteckschild)
	(M.L.matrix_refreshIntIndex)
{end}

{macro:matrix_setsteckschild}
	(L.L.matrix_steckschild_Termindex) s0
	0 >= 
	{if}
		l0 6 (M.V.GetTerminusString) (S.$.Matrix_SchildFrnt)
		1 $SetLengthL $StrToFloat 1 max (S.L.matrix_steckschild_vis)
		"..\..\Anzeigen\SteckSchilder\" (L.$.Matrix_SchildFrnt) $+ (S.$.Matrix_SchildFrnt)
	{else}
		0 (S.L.matrix_steckschild_index) (S.L.matrix_steckschild_vis)
		""  (S.$.Matrix_SchildFrnt)
	{endif}
{end}





{macro:Matrix_frame}



'******************************+
'    Altera o valor das piscadas
'******************************+

	(L.L.elec_busbar_main) (L.L.MEP_LetreiroLigado) && !
	{if}
		0 (S.L.Matrix_MEPQualStatusMostrar)
	{else}
		(L.L.Matrix_MEPblinktimer) 2 <
		{if}					
			(L.S.Timegap) (L.L.Matrix_MEPblinktimer) + (S.L.Matrix_MEPblinktimer)							
		{else}
			0 (S.L.Matrix_MEPblinktimer)

			(L.L.Matrix_MEPQualStatusMostrar) 0 =
			{if}
				1 (S.L.Matrix_MEPQualStatusMostrar)
			{else}
				(L.L.Matrix_MEPQualStatusMostrar) 1 =
				{if}
					2 (S.L.Matrix_MEPQualStatusMostrar)	
				{else}

					(L.L.Matrix_MEPQualStatusMostrar) 2 =
					{if}
						3 (S.L.Matrix_MEPQualStatusMostrar)	
					{else}

						(L.L.Matrix_MEPQualStatusMostrar) 3 =
						{if}
							(L.L.Matrix_MEPMostrarSaudacoes) 1 =
							{if}
								(L.S.Time) 3600 / trunc	4 <
								{if}
								"BOA NOITE"
								{else}
									(L.S.Time) 3600 / trunc	12 <
									{if}
									"BOM DIA"
									{else}
										(L.S.Time) 3600 / trunc	18 <
										{if}
										"BOA TARDE"
										{else}
										"BOA NOITE"
										{endif}
									{endif}
								{endif}
								
								$RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPMsgSaudacoes)
								4 (S.L.Matrix_MEPQualStatusMostrar)
							{else}
							(L.L.Matrix_MEPNaoMostrarLinha) 1 =
							{if}
								2 (S.L.Matrix_MEPQualStatusMostrar)
							{else}
								1 (S.L.Matrix_MEPQualStatusMostrar)
							{endif}
							{endif}
						{else}
						(L.L.Matrix_MEPQualStatusMostrar) 4 >=
						{if}
							(L.L.Matrix_MEPNaoMostrarLinha) 1 =
							{if}
								2 (S.L.Matrix_MEPQualStatusMostrar)
							{else}
								1 (S.L.Matrix_MEPQualStatusMostrar)
							{endif}
						{endif}
						{endif}

					{endif}
				{endif}
			{endif}
			
		{endif}			
	{endif}



'******************************+
'    Matrix-Fehler
'******************************+

'Wenn Strom aus ist, dann ist Matrix wieder heil:

	(L.L.elec_busbar_main) 0.4 > ! (L.L.Matrix_lifetime) 0 <= &&
	{if}
		6 random (S.L.Matrix_lifetime)
	{endif}

'******************************+
'    Nr-Matrix
'******************************+

' Time difference:
	(L.S.GetTime) (L.L.Matrix_NrActTimer) - s2

	l2 0 <
	{if}
		(L.S.GetTime) (S.L.Matrix_NrActTimer) 0 s2
		1 (S.L.Matrix_NrCreateString)
	{endif}

' If the new line is different from the old one, switch:
	(L.L.IBIS_Linie_Complex) s0 (L.L.Matrix_Nr_Last) = ! 
	(L.L.elec_busbar_main) 0.4 > &&
	{if}
		l2 (C.L.Matrix_Waittime) (C.L.Matrix_Changetime_Nr) 1.5 * + <
		{if}
			l2 (C.L.Matrix_Waittime) >
			{if}
' Nur beim ersten Mal:
				(L.L.Matrix_NrCreateString)
				{if}
					l0 100 / trunc s1
					(L.L.IBIS_Linie_Suffix) s4
' l0: Originalzahl; l1: erste drei Ziffern; l4: letzte zwei Ziffern

' Falls gleich 0, dann gar nix:
					l1 0 =
					{if}
						""
					{else}
' Sonst die normale Nummer:
						l1 trunc $IntToStr
					{endif}

					(S.$.Matrix_NewNr)

'D or SD? That is the question...:
					7 $SetLengthL

					(S.$.Matrix_Nr)
					0 (S.L.Matrix_NrCreateString)
					(T.L.ev_Matrix_Line_change)
					l0 (S.L.Matrix_NrAct)
					
				{endif}

'Zahl von aktualisierten Zeichen:

'				l2 (C.L.Matrix_Waittime) - 0 max 3 * (C.L.Matrix_Changetime_Nr) / trunc 3 min s3
'				l3 1 >=
'				{if}
'					(L.$.Matrix_NewNr) l3 $SetLengthL
'					(L.$.Matrix_Nr) 7 l3 - $SetLengthR $+
'					(S.$.Matrix_Nr)
'				{endif}
			{endif}
		{else}
			(L.L.Matrix_NrAct) (S.L.Matrix_Nr_Last)
			(L.$.Matrix_NewNr) (S.$.Matrix_Nr)
			1 (S.L.Matrix_NrCreateString)
			(L.S.GetTime) (S.L.Matrix_NrActTimer)
		{endif}		
'Omsi sagen, dass die Strings-Ausgaben aktualisiert werden sollen:
		1 (S.L.Refresh_Strings)
	{else}
		(L.S.GetTime) (S.L.Matrix_NrActTimer)
		1 (S.L.Matrix_NrCreateString)
	{endif}

'Aktualisierung der Code-Tafel:

	"Linienlisten\" (L.$.yard) "_ANX.jpg" $+ $+ (S.$.Matrix_Linelist)

	(L.L.matrix_refresh_seitenschild)
	{if}
		"..\..\Anzeigen\Seitenschilder\" 2 (M.V.GetDepotStringGlobal) $+ "\" $+ (L.$.Matrix_Nr) $RemoveSpaces $+ ".bmp" $+ (S.$.Matrix_Seitenschild)
		0 (S.L.matrix_refresh_seitenschild)
	{endif}



'******************************+
'    Terminus-Matrix
'******************************+

' Zeitdifferenz:
	(L.S.GetTime) (L.L.Matrix_TerminusActTimer) - s2

	l2 0 <
	{if}
		(L.S.GetTime) (S.L.Matrix_TerminusActTimer) 0 s2
		1 (S.L.Matrix_TerminusCreateString)
	{endif}

' Ob der Suffix >= 94 ist, speichere in s4:
	(L.L.IBIS_Linie_Suffix) 94 >= s4

'Changecounter zurücksetzen: (wenn kein Wechselziel angezeigt wird)
	(L.L.IBIS_Linie_Suffix) 97 <=
	(L.L.IBIS_Linie_Suffix) 96 = ! &&
	(L.L.IBIS_Linie_Suffix) 95 = ! &&
	{if}
		0 (S.L.Matrix_ChangeCounter)
	{endif}

' Wenn sich das neue Ziel vom alten unterscheidet, dann wechsele:

	l4 ! (L.L.IBIS_TerminusIndex) s0 (L.L.Matrix_TerminusIndex_Last) = !  &&

' ODER wenn die Nummer eine "zielbeeinflussende" ist und ungleich dem negativen Matrix_terminusIndex_Last:

	l4 (L.L.IBIS_Linie_Suffix) s1 /-/ (L.L.Matrix_TerminusIndex_Last) = ! && ||

	(L.L.elec_busbar_main) 0.4 > &&
	{if}
		l2 (C.L.Matrix_Waittime) (C.L.Matrix_Changetime_Terminus) 3.5 * + <
		{if}
			l2 (C.L.Matrix_Waittime) >
			{if}
' Nur beim ersten Mal:
				(L.L.Matrix_TerminusCreateString)
				{if}

'Wenn Matrix spinnt, dann zähle runter:
					(L.L.Matrix_spinnt) {if} (L.L.Matrix_lifetime) 1 - (S.L.Matrix_lifetime) {endif}

' Fehlfunktion: Schreibe irgendwas!
					0 < (L.L.AI) ! && {if}
						2 random 1 >=
						{if}
							"xxx" 30 random 1 (M.V.GetTerminusString) 10 $SetLengthL $+ "xxx" $+ "@" $+
							"xxx" 30 random 2 (M.V.GetTerminusString) 10 $SetLengthL $+ "xxx" $+ "@" $+ $+
							"xxx" 30 random 3 (M.V.GetTerminusString) 10 $SetLengthL $+ "xxx" $+ $+ (S.$.Matrix_NewTerminus)						
						{else}
							"yxyxyxyxyxyxyxyx@xyxyxyxyx       @zzzzzzzzzzzzzzzz" (S.$.Matrix_NewTerminus)
						{endif}
					{else}
					l1 94 =
					{if}
						" 'FIX, SCHWYZ!' @ QUÄKTE JÜRGEN  @ BLÖD VOM PASS. " (S.$.Matrix_NewTerminus)
					{else}
					l1 95 = (L.L.Matrix_ChangeCounter) ! &&
					{if}
						" FRANZ JAGT IM  @ KOMPLETT VER-  @WAHRLOSTEN TAXI " (S.$.Matrix_NewTerminus)
					{else}
					l1 95 =
					{if}
						"   QUER DURCH   @    BAYERN.     @1234567890,;(*')" (S.$.Matrix_NewTerminus)
					{else}
					l1 96 = (L.L.Matrix_ChangeCounter) ! &&
					{if}
						" 01234567890ABCD@EFGHIJKLMNOPQRST@UVWXYZÄÖÜ-.'+/xy" (S.$.Matrix_NewTerminus)
					{else}
					l1 96 =
					{if}
						"()*;,%&zyx/+'.-A@ÖÜABCDEFGHIJKLMN@OPQRSTUVWXYZ0123" (S.$.Matrix_NewTerminus)
					{else}
					l1 97 =
					{if}
						"SOFTWAREVERSION @  JULI   2009   @VERS. JULI  2009" (S.$.Matrix_NewTerminus)
					{else}
					l1 98 = (L.L.Matrix_ChangeCounter) &&
					{if}
						"yxyxyxyxyxyxyxyx@xyxyxyxyxyxyxyxy@yxyxyxyxyxyxyxyx" (S.$.Matrix_NewTerminus)
					{else}
					l1 98 =
					{if}
						"xyxyxyxyxyxyxyxy@yxyxyxyxyxyxyxyx@xyxyxyxyxyxyxyxy" (S.$.Matrix_NewTerminus)
					{else}
					l1 99 = (L.L.Matrix_ChangeCounter) &&
					{if}
						"                @                @                " (S.$.Matrix_NewTerminus)
					{else}
					l1 99 =
					{if}
						"zzzzzzzzzzzzzzzz@zzzzzzzzzzzzzzzz@zzzzzzzzzzzzzzzz" (S.$.Matrix_NewTerminus)
					{else}
						


(L.L.MEP_LetreiroPersonalizado) !
{if}
	l0 3 (M.V.GetTerminusString) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_NewTerminus)
	(L.$.Matrix_Nr) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus1)
	l0 1 (M.V.GetTerminusString) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus2)
	l0 2 (M.V.GetTerminusString) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus3)

'FALTA TIRAR O TXT LINHA.. SE FOR GRANDE
'	(L.$.Matrix_Nr) $RemoveSpaces $length 4 >=
'	{if}
'		(L.$.Matrix_Nr) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus1)
'	{endif}
{endif}

(T.L.ev_IBIS_piep)

					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					{endif}
					0 (S.L.Matrix_TerminusCreateString)
					(T.L.ev_Matrix_Terminus_change)
'Das soeben in den temporären Speicher geschriebene Ziel:
					l4
					{if}
						l1 /-/ 
					{else}
						l0 
					{endif}
					(S.L.Matrix_TerminusAct)
				{endif}

'Zahl von aktualisierten Zeichen:

				l2 (C.L.Matrix_Waittime) - 0 max 16 * (C.L.Matrix_Changetime_Terminus) / trunc 50 min s3
				l3 1 >=
				{if}
					(L.$.Matrix_NewTerminus) l3 $SetLengthL
					(L.$.Matrix_Terminus) 50 l3 - $SetLengthR $+
					(S.$.Matrix_Terminus)
				{endif}
			{endif}
		{else}
			l1 98 >=
			l1 96 = ||
			l1 95 = ||
			{if}
				(L.L.Matrix_ChangeCounter) ! (S.L.Matrix_ChangeCounter)
'Hierdurch wird der Wechsel der Nummern-Matrix initiiert:
				-1 (S.L.Matrix_Nr_Last)
			{else}
				(L.L.Matrix_TerminusAct) (S.L.Matrix_TerminusIndex_Last)

				(M.L.matrix_refreshIntIndex)
			{endif}
			1 (S.L.Matrix_TerminusCreateString)
			(L.S.GetTime) (S.L.Matrix_TerminusActTimer)
			(L.$.Matrix_NewTerminus) (S.$.Matrix_Terminus)
		{endif}

'Omsi sagen, dass die Strings-Ausgaben aktualisiert werden sollen:
		1 (S.L.Refresh_Strings)
	
	{else}
		(L.S.GetTime) (S.L.Matrix_TerminusActTimer)
		1 (S.L.Matrix_TerminusCreateString)
	{endif}

{end}

{macro:matrix_refreshIntIndex}
	(L.L.matrix_steckschild_Termindex) s0 0 >=
	l0 0 (M.V.GetTerminusString) "" $= ! &&
	{if}
		l0
	{else}
		(L.L.Matrix_TerminusAct)
	{endif}
	(S.L.target_index_int)
{end}



'MEP NOVOS BOTOES



{trigger:MEPTablet_LigaDesliga}
	(L.L.MEP_LetreiroLigado) ! (S.L.MEP_LetreiroLigado) s1

	(M.L.kippschaltersound)
{end}


{trigger:MEPTablet_AtivaLetreiroPersonalizado}
	(L.L.MEP_LetreiroPersonalizado) ! (S.L.MEP_LetreiroPersonalizado)
	(L.S.GetTime) (S.L.Matrix_TerminusActTimer)
	(L.S.GetTime) (S.L.Matrix_NrActTimer)
	1 (S.L.Matrix_TerminusCreateString)
	1 (S.L.Matrix_NrCreateString)

	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_Fase1}
	"" (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.MEP_QualStatusEditar)
	1 (S.L.Refresh_Strings)

	(T.L.ev_IBIS_piep)
{end}


{trigger:MEPTablet_Fase2}
	"" (S.$.Matrix_MEPStatusTemporario)
	2 (S.L.MEP_QualStatusEditar)
	1 (S.L.Refresh_Strings)

	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_Fase3}
	"" (S.$.Matrix_MEPStatusTemporario)
	3 (S.L.MEP_QualStatusEditar)
	1 (S.L.Refresh_Strings)

	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_Enter}

	(L.L.MEP_QualStatusEditar) 1 =
	{if}
	   (L.$.Matrix_MEPStatusTemporario) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus1)
	{else}
		(L.L.MEP_QualStatusEditar) 2 =
		{if}
			 (L.$.Matrix_MEPStatusTemporario) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus2)
		{else}
			 (L.$.Matrix_MEPStatusTemporario) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_MEPStatus3)
		{endif}
	{endif}

	(L.$.Matrix_MEPStatusTemporario) $RemoveSpaces 16 $SetLengthC (S.$.Matrix_NewTerminus)

	(L.S.GetTime) (S.L.Matrix_TerminusActTimer)
	(L.S.GetTime) (S.L.Matrix_NrActTimer)
	1 (S.L.Matrix_TerminusCreateString)
	1 (S.L.Matrix_NrCreateString)


	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_Backspace}
	"" (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)

	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_SemLinha}
	(L.L.Matrix_MEPNaoMostrarLinha) ! (S.L.Matrix_MEPNaoMostrarLinha)

	(T.L.ev_IBIS_piep)
{end}

{trigger:MEPTablet_MsgsSaudacoes}
	(L.L.Matrix_MEPMostrarSaudacoes) ! (S.L.Matrix_MEPMostrarSaudacoes)
	1 (S.L.Refresh_Strings)

	(T.L.ev_IBIS_piep)
{end}





'################### DEFINICOES DOS BOTOES DAS LETRAS



{trigger:MEPTablet_A}
	(L.$.Matrix_MEPStatusTemporario) "A" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_B}
	(L.$.Matrix_MEPStatusTemporario) "B" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_C}
	(L.$.Matrix_MEPStatusTemporario) "C" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_D}
	(L.$.Matrix_MEPStatusTemporario) "D" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_E}
	(L.$.Matrix_MEPStatusTemporario) "E" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_F}
	(L.$.Matrix_MEPStatusTemporario) "F" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_G}
	(L.$.Matrix_MEPStatusTemporario) "G" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_H}
	(L.$.Matrix_MEPStatusTemporario) "H" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_I}
	(L.$.Matrix_MEPStatusTemporario) "I" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_J}
	(L.$.Matrix_MEPStatusTemporario) "J" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_K}
	(L.$.Matrix_MEPStatusTemporario) "K" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_L}
	(L.$.Matrix_MEPStatusTemporario) "L" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}


{trigger:MEPTablet_M}
	(L.$.Matrix_MEPStatusTemporario) "M" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_N}
	(L.$.Matrix_MEPStatusTemporario) "N" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_O}
	(L.$.Matrix_MEPStatusTemporario) "O" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_P}
	(L.$.Matrix_MEPStatusTemporario) "P" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Q}
	(L.$.Matrix_MEPStatusTemporario) "Q" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_R}
	(L.$.Matrix_MEPStatusTemporario) "R" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_S}
	(L.$.Matrix_MEPStatusTemporario) "S" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_T}
	(L.$.Matrix_MEPStatusTemporario) "T" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_U}
	(L.$.Matrix_MEPStatusTemporario) "U" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_V}
	(L.$.Matrix_MEPStatusTemporario) "V" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_W}
	(L.$.Matrix_MEPStatusTemporario) "W" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_X}
	(L.$.Matrix_MEPStatusTemporario) "X" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Y}
	(L.$.Matrix_MEPStatusTemporario) "Y" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Z}
	(L.$.Matrix_MEPStatusTemporario) "Z" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_0}
	(L.$.Matrix_MEPStatusTemporario) "0" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_1}
	(L.$.Matrix_MEPStatusTemporario) "1" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_2}
	(L.$.Matrix_MEPStatusTemporario) "2" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_3}
	(L.$.Matrix_MEPStatusTemporario) "3" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_4}
	(L.$.Matrix_MEPStatusTemporario) "4" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_5}
	(L.$.Matrix_MEPStatusTemporario) "5" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_6}
	(L.$.Matrix_MEPStatusTemporario) "6" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_7}
	(L.$.Matrix_MEPStatusTemporario) "7" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_8}
	(L.$.Matrix_MEPStatusTemporario) "8" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_9}
	(L.$.Matrix_MEPStatusTemporario) "9" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Virgula}
	(L.$.Matrix_MEPStatusTemporario) "," $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Ponto}
	(L.$.Matrix_MEPStatusTemporario) "." $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Tracinho}
	(L.$.Matrix_MEPStatusTemporario) "-" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Espaco}
	(L.$.Matrix_MEPStatusTemporario) " " $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}

{trigger:MEPTablet_Barra}
	(L.$.Matrix_MEPStatusTemporario) "/" $+ (S.$.Matrix_MEPStatusTemporario)
	1 (S.L.Refresh_Strings)
{end}



{macro:kippschaltersound}
	l1
	{if}
		(T.L.ev_kippschalter_ein)
	{else}
		(T.L.ev_kippschalter_aus)
	{endif}	
{end}
