'------------------------------------------------------------------------------------------------------------------------------' ' BVG LAWO LED MATRIX ' '------------------------------------------------------------------------------------------------------------------------------' ' ' ' (c) 17.09.2013 Marcel Kuhnt: KI, Seitenschild, Steckschild ' ' (c) 18.02.2017 Teneberus: Rest ' ' ' ' Script Version: 1.0 ' ' Omsi release: 2.0 ' ' ' ' Needs: ' ' - Cockpit (Batterietrennschalter) ' ' - RBL ' ' ' ' History: ' ' - 18.02.2017: * Version 1.0 ' ' ' '------------------------------------------------------------------------------------------------------------------------------' '------------------------------------------------------------------------------------------------------------------------------' ' Initialisierung ' '------------------------------------------------------------------------------------------------------------------------------' {macro:Matrix_init} 0 (S.L.Matrix_Modul) 0 (S.L.Matrix_Cursor) 0 (S.L.Matrix_Status) -1 (S.L.matrix_steckschild_Termindex) 0 (S.L.matrix_steckschild_vis) {end} '------------------------------------------------------------------------------------------------------------------------------' ' Hauptteil (Frame) ' '------------------------------------------------------------------------------------------------------------------------------' {macro:Matrix_frame} ' Schriften: "8325_LAWO_Liniennr_Front_normal" (M.V.GetFontIndex) (S.L.Font_Nr_Front) "8325_LAWO_Linie_Seite" (M.V.GetFontIndex) (S.L.Font_Nr_Seite) "8325_LAWO_16px_Front_breit" (M.V.GetFontIndex) (S.L.Font_16px_Front_breit) "8325_LAWO_16px_Front" (M.V.GetFontIndex) (S.L.Font_16px_Front) "8325_LAWO_16px_Seite" (M.V.GetFontIndex) (S.L.Font_16px_Seite) "8325_LAWO_8px" (M.V.GetFontIndex) (S.L.Font_8px) "8325_LAWO_8px_breit" (M.V.GetFontIndex) (S.L.Font_8px_breit) "8325_LAWO_8px_schmal" (M.V.GetFontIndex) (S.L.Font_8px_schmal) ' Gorba LED "MXC2_GorbaLED_LinieFront_Ziel16px" (M.V.GetFontIndex) (S.L.Font_Nr_Front_GorbaLED) "MXC2_GorbaLED_Ziel16pxSchmal" (M.V.GetFontIndex) (S.L.Font_16px_Front_GorbaLED) "MXC2_GorbaLED_3" (M.V.GetFontIndex) (S.L.Font_8px_GorbaLED) "MXC2_GorbaLED_2" (M.V.GetFontIndex) (S.L.Font_8px_schmal_GorbaLED) ' Aesys "aesys_16x6_num" (M.V.GetFontIndex) (S.L.Font_Nr_Front_Aesys) "aesys_16_0_F" (M.V.GetFontIndex) (S.L.Font_16px_Front_breit_Aesys) "aesys_16_0" (M.V.GetFontIndex) (S.L.Font_16px_Front_Aesys) "aesys_8_1_F" (M.V.GetFontIndex) (S.L.Font_8px_Aesys) "aesys_8_1" (M.V.GetFontIndex) (S.L.Font_8px_schmal_Aesys) ' Zielcodetabelle: "Linienlisten\" (L.$.yard) "_ANX.jpg" $+ $+ (S.$.Matrix_Linelist) (L.L.Matrix_Status) 4 = {if} ' Schritt 4: Textur entsperren und filtern. 0 (M.V.STUnlock) 1 (M.V.STUnlock) 1 (M.V.STFilter) ' Nochmal sperren, entsperren, filtern... Sonst wird die neue Textur nicht angezeigt. 1 (M.V.STLock) 1 (M.V.STUnlock) 1 (M.V.STFilter) ' Alles zurücksetzen: 0 (S.L.Matrix_Modul) 0 (S.L.Matrix_Cursor) 0 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 3 = {if} ' Schritt 3: Pro Frame eine Anzeige auf die Haupttextur übertragen. (M.L.Matrix_SetCoords) (M.L.Matrix_PrintBitmap) (L.L.Matrix_Modul) 1 + (S.L.Matrix_Modul) (L.L.Matrix_Modul) 3 > {if} 4 (S.L.Matrix_Status) {endif} {endif} (L.L.Matrix_Status) 2 = {if} ' Schritt 2: Texturen für die Bearbeitung sperren. 0 (M.V.STLock) 1 (M.V.STLock) 0 (S.L.Matrix_Modul) 3 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 1 = {if} ' Schritt 1: Speicherbitmap mit neuen Daten beschreiben (oder Bitmap laden). (L.$.Matrix_Bitmapfilename) "" $= {if} ' Auf Symbol prüfen: (M.L.Matrix_CheckSymbol) ' Initialisieren der Bitmap: 0 (M.V.STNewTex) 0 (M.V.STLock) ' Setzen der Farbe: 0 0 255 0 0 (M.V.STSetColor) ' Bitmap beschreiben: ' Vorne (180x26): 0 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) (L.L.Matrix_Variante) 0 = {if} (M.L.Matrix_WriteTerminus_Lawo) {endif} (L.L.Matrix_Variante) 1 = {if} (M.L.Matrix_WriteTerminus_Gorba) {endif} (L.L.Matrix_Variante) 2 = {if} (M.L.Matrix_WriteTerminus_Aesys) {endif} ' Links (48x26): 1 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) ' Heck (144x26): 2 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) (L.L.Matrix_Variante) 0 = {if} (M.L.Matrix_WriteTerminus_Lawo) {endif} (L.L.Matrix_Variante) 1 = {if} (M.L.Matrix_WriteTerminus_Gorba) {endif} (L.L.Matrix_Variante) 2 = {if} (M.L.Matrix_WriteTerminus_Aesys) {endif} ' Rechts (192x26): 3 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) (L.L.Matrix_Variante) 0 = {if} (M.L.Matrix_WriteTerminus_Lawo) {endif} (L.L.Matrix_Variante) 1 = {if} (M.L.Matrix_WriteTerminus_Gorba) {endif} (L.L.Matrix_Variante) 2 = {if} (M.L.Matrix_WriteTerminus_Aesys) {endif} ' Entsperren der Bitmap: 0 (M.V.STUnlock) {else} "..\..\Anzeigen\lcd_matrix_bvg\" (L.$.Matrix_Bitmapfilename) $+ 0 (M.V.STLoadTex) $msg {endif} 2 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 0 = (L.L.elec_busbar_main) && {if} ' Prüfen ob sich die Anzeige ändern soll. Wenn ja: Mit Schritt 1 beginnen. (L.L.RBL_Linie) (L.L.Matrix_Nr_Last) = ! {if} (M.L.Matrix_CreateNr) 1 (S.L.Matrix_Status) {endif} (L.L.RBL_TerminusIndex) (L.L.Matrix_TerminusIndex_Last) = ! {if} (M.L.Matrix_CreateTerminus) (L.$.Matrix_TerminusL2) "" $= {if} (M.L.Matrix_CheckDescender) {else} (M.L.Matrix_CheckDescender_L2) {endif} (M.L.matrix_refreshIntIndex) 1 (S.L.Matrix_Status) {endif} {endif} (L.L.Matrix_Status) -1 = (L.L.elec_busbar_main) && {if} ' Matrix mit aktuellen Daten beschreiben, wenn Versorgung hergestellt wird. ' (Beginn mit Schritt 2 - Übertragung der Speicherbitmap auf die Haupttextur.) 2 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 0 = (L.L.elec_busbar_main) 0 = && {if} ' Versorgung fehlt: Anzeige löschen. 1 (M.V.STNewTex) -1 (S.L.Matrix_Status) {endif} (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} {end} '------------------------------------------------------------------------------------------------------------------------------' ' Trigger: KI, Seitenschild, Steckschild ' '------------------------------------------------------------------------------------------------------------------------------' {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) (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 100000 ist, dann bitte Steckschild verwenden: 1000000 > {if} l1 1000000 - (S.L.matrix_steckschild_index) l0 (S.L.matrix_steckschild_Termindex) ' Matrix auf 0: 0 (S.L.RBL_TerminusIndex) s2 {else} l0 (S.L.RBL_TerminusIndex) s2 -1 (S.L.matrix_steckschild_Termindex) -1 (S.L.Matrix_TerminusIndex_Last) ' 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 1000000 > {if} l1 1000000 - (S.L.matrix_steckschild_index) l0 (S.L.matrix_steckschild_Termindex) {endif} {endif} (M.L.matrix_setsteckschild) l2 (M.V.GetTerminusCode) (S.L.RBL_TerminusCode) 1 (S.L.matrix_refresh_seitenschild) {end} {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: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} '------------------------------------------------------------------------------------------------------------------------------' ' Macros ' '------------------------------------------------------------------------------------------------------------------------------' {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_refreshIntIndex} (L.L.matrix_steckschild_Termindex) s0 0 >= l0 0 (M.V.GetTerminusString) "" $= ! && {if} l0 {else} (L.L.RBL_TerminusIndex) {endif} (S.L.target_index_int) {end} {macro:Matrix_CreateNr} (L.L.RBL_Linie) (S.L.Matrix_Nr_Last) 100 / trunc s0 (L.L.RBL_Linie_Suffix) s1 l0 0 = {if} "" {else} l0 trunc $IntToStr {endif} (S.$.Matrix_Nr) l1 1 = {if} "E" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 2 = {if} "\s{triangle}" {endif} l1 3 = {if} "K" {endif} l1 4 = {if} (L.$.Matrix_Nr) "N" $+ {endif} l1 5 = l1 24 = || {if} "S" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 6 = {if} "A" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 9 = {if} "E" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 10 = {if} (L.$.Matrix_Nr) "E" $+ {endif} l1 11 = {if} "D" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 12 = {if} "C" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 13 = {if} "B" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 14 = {if} "A" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 15 = {if} "N" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 23 = {if} "S" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} ' 24 s.o. bei 5! l1 25 = {if} "U" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 26 = {if} "U" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 27 = {if} "M" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 28 = {if} "M" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 29 = {if} "#" {endif} l1 30 = {if} (L.$.Matrix_Nr) "S" $+ {endif} l1 31 = {if} (L.$.Matrix_Nr) "U" $+ {endif} l1 32 = {if} (L.$.Matrix_Nr) "M" $+ {endif} l1 35 = {if} "N" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 36 = {if} "X" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 37 = {if} "D" {endif} l1 78 = {if} "b" {endif} l1 79 = {if} "F" {endif} l1 80 = {if} "B" {endif} $RemoveSpaces (S.$.Matrix_Nr) {end} {macro:Matrix_CreateTerminus} (L.L.RBL_TerminusIndex) (S.L.Matrix_TerminusIndex_Last) (L.L.RBL_TerminusIndex) 23 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL1) (L.L.RBL_TerminusIndex) 24 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL2) (L.L.RBL_TerminusIndex) 15 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL3) (L.L.RBL_TerminusIndex) 16 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL4) ' (L.L.RBL_TerminusIndex) 7 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_Bitmapfilename) ' Wenn String 23 und 24 in der Hofdatei leer sind, verwende stattdessen String 1 und 2: "" (L.$.Matrix_TerminusL1) $= "" (L.$.Matrix_TerminusL2) $= && {if} (L.L.RBL_TerminusIndex) 1 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL1) (L.L.RBL_TerminusIndex) 2 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL2) {endif} ' Wenn String 15 und 16 in der Hofdatei leer sind, verwende stattdessen String 1 und 2: "" (L.$.Matrix_TerminusL3) $= "" (L.$.Matrix_TerminusL4) $= && {if} (L.$.Matrix_TerminusL1) (S.$.Matrix_TerminusL3) (L.$.Matrix_TerminusL2) (S.$.Matrix_TerminusL4) {endif} ' Wenn nur die untere Zeile beschrieben ist, dann diese nach oben und untere leeren. "" (L.$.Matrix_TerminusL1) $= {if} (L.$.Matrix_TerminusL2) (S.$.Matrix_TerminusL1) "" (S.$.Matrix_TerminusL2) {endif} "" (L.$.Matrix_TerminusL3) $= {if} (L.$.Matrix_TerminusL4) (S.$.Matrix_TerminusL3) "" (S.$.Matrix_TerminusL4) {endif} (L.$.Matrix_TerminusL1) 2 $SetLengthR "*I" 0 $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) 1 (S.L.Matrix_Invertiert) {else} 0 (S.L.Matrix_Invertiert) {endif} (L.$.Matrix_TerminusL2) 2 $SetLengthR "*I" 0 $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) 1 (S.L.Matrix_Invertiert) {else} 0 (S.L.Matrix_Invertiert) {endif} (L.$.Matrix_TerminusL3) 2 $SetLengthR "*I" 0 $= {if} (L.$.Matrix_TerminusL3) 2 $cutEnd (S.$.Matrix_TerminusL3) 1 (S.L.Matrix_Invertiert) {else} 0 (S.L.Matrix_Invertiert) {endif} (L.$.Matrix_TerminusL4) 2 $SetLengthR "*I" 0 $= {if} (L.$.Matrix_TerminusL4) 2 $cutEnd (S.$.Matrix_TerminusL4) 1 (S.L.Matrix_Invertiert) {else} 0 (S.L.Matrix_Invertiert) {endif} (L.$.Matrix_TerminusL1) 2 $SetLengthR "*B" 0 $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) {endif} (L.$.Matrix_TerminusL2) 2 $SetLengthR "*B" 0 $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) {endif} (L.$.Matrix_TerminusL3) 2 $SetLengthR "*B" 0 $= {if} (L.$.Matrix_TerminusL3) 2 $cutEnd (S.$.Matrix_TerminusL3) {endif} (L.$.Matrix_TerminusL4) 2 $SetLengthR "*B" 0 $= {if} (L.$.Matrix_TerminusL4) 2 $cutEnd (S.$.Matrix_TerminusL4) {endif} (L.$.Matrix_TerminusL1) 2 $SetLengthR "*M" 0 $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) {endif} (L.$.Matrix_TerminusL2) 2 $SetLengthR "*M" 0 $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) {endif} (L.$.Matrix_TerminusL3) 2 $SetLengthR "*M" 0 $= {if} (L.$.Matrix_TerminusL3) 2 $cutEnd (S.$.Matrix_TerminusL3) {endif} (L.$.Matrix_TerminusL4) 2 $SetLengthR "*M" 0 $= {if} (L.$.Matrix_TerminusL4) 2 $cutEnd (S.$.Matrix_TerminusL4) {endif} (L.$.Matrix_TerminusL1) 2 $SetLengthR "*K" 0 $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) {endif} (L.$.Matrix_TerminusL2) 2 $SetLengthR "*K" 0 $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) {endif} (L.$.Matrix_TerminusL3) 2 $SetLengthR "*K" 0 $= {if} (L.$.Matrix_TerminusL3) 2 $cutEnd (S.$.Matrix_TerminusL3) {endif} (L.$.Matrix_TerminusL4) 2 $SetLengthR "*K" 0 $= {if} (L.$.Matrix_TerminusL4) 2 $cutEnd (S.$.Matrix_TerminusL4) {endif} (L.$.Matrix_TerminusL1) 1 $SetLengthR "[" 0 $= {if} (L.$.Matrix_TerminusL1) 1 $cutEnd (S.$.Matrix_TerminusL1) {endif} (L.$.Matrix_TerminusL2) 1 $SetLengthR "[" 0 $= {if} (L.$.Matrix_TerminusL2) 1 $cutEnd (S.$.Matrix_TerminusL2) {endif} (L.$.Matrix_TerminusL3) 1 $SetLengthR "[" 0 $= {if} (L.$.Matrix_TerminusL3) 1 $cutEnd (S.$.Matrix_TerminusL3) {endif} (L.$.Matrix_TerminusL4) 1 $SetLengthR "[" 0 $= {if} (L.$.Matrix_TerminusL4) 1 $cutEnd (S.$.Matrix_TerminusL4) {endif} (L.$.Matrix_TerminusL1) 1 $SetLengthR "]" 0 $= {if} (L.$.Matrix_TerminusL1) 1 $cutEnd (S.$.Matrix_TerminusL1) {endif} (L.$.Matrix_TerminusL2) 1 $SetLengthR "]" 0 $= {if} (L.$.Matrix_TerminusL2) 1 $cutEnd (S.$.Matrix_TerminusL2) {endif} (L.$.Matrix_TerminusL3) 1 $SetLengthR "]" 0 $= {if} (L.$.Matrix_TerminusL3) 1 $cutEnd (S.$.Matrix_TerminusL3) {endif} (L.$.Matrix_TerminusL4) 1 $SetLengthR "]" 0 $= {if} (L.$.Matrix_TerminusL4) 1 $cutEnd (S.$.Matrix_TerminusL4) {endif} {end} {macro:Matrix_SetCoords} (L.L.Matrix_Modul) 0 = {if} 1 (S.L.Matrix_Xoffset) 1 (S.L.Matrix_Yoffset) 128 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} (L.L.Matrix_Modul) 1 = {if} 1 (S.L.Matrix_Xoffset) 35 (S.L.Matrix_Yoffset) 28 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} (L.L.Matrix_Modul) 2 = {if} 1 (S.L.Matrix_Xoffset) 52 (S.L.Matrix_Yoffset) 112 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} (L.L.Matrix_Modul) 3 = {if} 1 (S.L.Matrix_Xoffset) 18 (S.L.Matrix_Yoffset) 112 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 0 (S.L.Matrix_Xpos) 0 (S.L.Matrix_Ypos) {end} {macro:Matrix_WriteNr} (L.$.Matrix_Nr) (S.$.Matrix_Nr_write) (L.L.Matrix_Modul) 0 = (L.L.Matrix_gesperrteNummer) 0 = && {if} (L.$.Matrix_Nr) "" $= ! {if} (L.$.Matrix_Symbol) "-" $= {if} (L.$.Matrix_Nr) $length 2 <= {if} 0 s1 (L.L.Matrix_Variante) 0 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Variante) 1 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front_GorbaLED) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Variante) 2 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front_Aesys) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Modul) 1 = {if} 1 s1 (L.L.Matrix_Width) l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) {endif} 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 l1 (L.$.Matrix_Nr_write) (M.V.STTextOut) (L.L.Matrix_Xpos) l2 + 1 + (S.L.Matrix_Xpos) {else} 0 s1 (L.L.Matrix_Variante) 0 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Variante) 1 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front_GorbaLED) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Variante) 2 = {if} (L.$.Matrix_Nr) (L.L.Font_Nr_Front_Aesys) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Modul) 1 = {if} 1 s1 (L.L.Matrix_Width) l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) {endif} 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 l1 (L.$.Matrix_Nr_write) (M.V.STTextOut) (L.L.Matrix_Xpos) l2 + 1 + (S.L.Matrix_Xpos) {endif} {else} (L.L.Font_Symbols26) s0 (L.L.Matrix_Modul) 1 = {if} (L.$.Matrix_Symbol) l0 (M.V.TextLength) s1 (L.L.Matrix_Width) l1 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) {endif} 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 0 (L.$.Matrix_Symbol) (M.V.STTextOut) (L.$.Matrix_Symbol) l0 (M.V.TextLength) (L.L.Matrix_Xpos) + 2 + (S.L.Matrix_Xpos) {endif} {endif} {endif} (L.L.Matrix_Modul) 1 = (L.L.Matrix_Modul) 2 = || (L.L.Matrix_Modul) 3 = || (L.L.Matrix_gesperrteNummer) 0 = && {if} (L.$.Matrix_Nr) "" $= ! {if} (L.$.Matrix_Symbol) "-" $= {if} (L.L.Matrix_Variante) 0 = {if} 0 s1 (L.$.Matrix_Nr) (L.L.Font_Nr_Seite) s0 (M.V.TextLength) 1 + s2 1 (S.L.Matrix_Ypos) {endif} (L.L.Matrix_Variante) 1 = {if} 0 s1 (L.$.Matrix_Nr) (L.L.Font_Nr_Front_GorbaLED) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Variante) 2 = {if} 0 s1 (L.$.Matrix_Nr) (L.L.Font_Nr_Front_Aesys) s0 (M.V.TextLength) 1 + s2 {endif} (L.L.Matrix_Modul) 1 = {if} 0 s1 (L.L.Matrix_Width) l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) {endif} 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 l1 (L.$.Matrix_Nr_write) (M.V.STTextOut) (L.L.Matrix_Xpos) l2 + 1 + (S.L.Matrix_Xpos) {else} (L.L.Font_Symbols26) s0 (L.L.Matrix_Modul) 1 = {if} (L.$.Matrix_Symbol) l0 (M.V.TextLength) s1 (L.L.Matrix_Width) l1 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) {endif} 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 0 (L.$.Matrix_Symbol) (M.V.STTextOut) (L.$.Matrix_Symbol) l0 (M.V.TextLength) (L.L.Matrix_Xpos) + 2 + (S.L.Matrix_Xpos) {endif} {endif} {endif} {end} {macro:Matrix_WriteTerminus_Lawo} (L.L.Matrix_Modul) 1 = (L.L.Matrix_Modul) 2 = || (L.L.Matrix_Modul) 3 = || {if} (L.$.Matrix_TerminusL3) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL4) "" $= {if} ' Schrift waehlen: 3 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_16px_Seite) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 (L.L.Matrix_Ypos) 1 - (S.L.Matrix_Ypos) ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL4) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL4) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL4) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL4) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL4) (M.V.STTextOut) {endif} {endif} {endif} (L.L.Matrix_Modul) 0 = {if} (L.$.Matrix_TerminusL1) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL2) "" $= {if} ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_16px_Front) s1 (M.V.TextLength) s2 l0 > {if} 2 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_16px_Seite) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL1) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) ' Schrift waehlen: (L.$.Matrix_TerminusL2) (L.L.Font_8px) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL2) (L.L.Font_8px_schmal) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL2) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL2) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL2) (M.V.STTextOut) {endif} {endif} {endif} {end} {macro:Matrix_WriteTerminus_Aesys} (L.L.Matrix_Modul) 1 = (L.L.Matrix_Modul) 2 = || (L.L.Matrix_Modul) 3 = || {if} (L.$.Matrix_TerminusL3) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL4) "" $= {if} ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_16px_Front_breit_Aesys) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL3) (L.L.Font_16px_Front_Aesys) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 1 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 (L.L.Matrix_Ypos) 1 - (S.L.Matrix_Ypos) ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL4) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL4) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL4) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL4) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL4) (M.V.STTextOut) {endif} {endif} {endif} (L.L.Matrix_Modul) 0 = {if} (L.$.Matrix_TerminusL1) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL2) "" $= {if} ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_16px_Front_breit_Aesys) s1 (M.V.TextLength) s2 l0 > {if} 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_16px_Front_Aesys) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL1) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) ' Schrift waehlen: (L.$.Matrix_TerminusL2) (L.L.Font_8px_Aesys) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL2) (L.L.Font_8px_schmal_Aesys) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL2) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL2) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL2) (M.V.STTextOut) {endif} {endif} {endif} {end} {macro:Matrix_WriteTerminus_Gorba} (L.L.Matrix_Modul) 1 = (L.L.Matrix_Modul) 2 = || (L.L.Matrix_Modul) 3 = || {if} (L.$.Matrix_TerminusL3) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL4) "" $= {if} ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_16px_Front_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 1 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL3) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL3) $length 1 - l3 * + s2 (L.L.Matrix_Ypos) 1 - (S.L.Matrix_Ypos) ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL3) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL4) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL4) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL4) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL4) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL4) (M.V.STTextOut) {endif} {endif} {endif} (L.L.Matrix_Modul) 0 = {if} (L.$.Matrix_TerminusL1) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.$.Matrix_TerminusL2) "" $= {if} ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_16px_Front_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} 4 (S.L.Matrix_Ypos) 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL3) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 ' Schrift waehlen: 2 (S.L.Matrix_Zeichenabstand) (L.$.Matrix_TerminusL1) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL1) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} ' Sperrung l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) 2 (S.L.Matrix_Zeichenabstand) ' Schrift waehlen: (L.$.Matrix_TerminusL2) (L.L.Font_8px_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} (L.$.Matrix_TerminusL2) (L.L.Font_8px_schmal_GorbaLED) s1 (M.V.TextLength) s2 l0 > {if} {endif} {endif} 8 (S.L.Matrix_Ypos) ' Sperrung l0 l2 - (L.$.Matrix_TerminusL2) $length 1 - / trunc (L.L.Matrix_Zeichenabstand) min s3 ' Textlaenge mit Sperrung l2 (L.$.Matrix_TerminusL2) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: 0 (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL2) (M.V.STTextOut) {endif} {endif} {endif} {end} {macro:Matrix_PrintBitmap} 0 (S.L.Matrix_Cursor) (M.L.Matrix_PrintBitmapPixel10) (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) (L.L.Matrix_Modul) 0 = {if} (M.L.Matrix_PrintBitmapPixel12) (M.L.Matrix_PrintBitmapPixel10) (M.L.Matrix_PrintBitmapPixel5) {endif} (L.L.Matrix_Modul) 2 = (L.L.Matrix_Modul) 3 = || {if} (M.L.Matrix_PrintBitmapPixel12) (M.L.Matrix_PrintBitmapPixel11) (M.L.Matrix_PrintBitmapPixel10) (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel4) {endif} 0 (S.L.Matrix_Cursor) {end} {macro:Matrix_PrintBitmapPixel12} (M.L.Matrix_PrintBitmapPixel11) (M.L.Matrix_PrintBitmapPixel11) {end} {macro:Matrix_PrintBitmapPixel11} (M.L.Matrix_PrintBitmapPixel10) (M.L.Matrix_PrintBitmapPixel10) {end} {macro:Matrix_PrintBitmapPixel10} (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel9) {end} {macro:Matrix_PrintBitmapPixel9} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel8) {end} {macro:Matrix_PrintBitmapPixel8} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel7) {end} {macro:Matrix_PrintBitmapPixel7} (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel6) {end} {macro:Matrix_PrintBitmapPixel6} (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel5) {end} {macro:Matrix_PrintBitmapPixel5} (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel4) {end} {macro:Matrix_PrintBitmapPixel4} (M.L.Matrix_PrintBitmapPixel3) (M.L.Matrix_PrintBitmapPixel3) {end} {macro:Matrix_PrintBitmapPixel3} (M.L.Matrix_PrintBitmapPixel2) (M.L.Matrix_PrintBitmapPixel2) {end} {macro:Matrix_PrintBitmapPixel2} (M.L.Matrix_PrintBitmapPixel1) (M.L.Matrix_PrintBitmapPixel1) {end} {macro:Matrix_PrintBitmapPixel1} (M.L.Matrix_PrintBitmapPixel0) (M.L.Matrix_PrintBitmapPixel0) {end} {macro:Matrix_PrintBitmapPixel0} (L.L.Matrix_Xoffset) s0 (L.L.Matrix_Yoffset) s1 (L.L.Matrix_Cursor) (L.L.Matrix_Width) % s2 (L.L.Matrix_Cursor) (L.L.Matrix_Width) / trunc s3 ' Pixel von Speicherbitmap lesen: 0 l0 l2 + l1 l3 + (M.V.STReadPixel) 0 (M.V.STGetR) s4 (M.L.Matrix_Invert) 1 l4 255 255 255 (M.V.STSetColor) ' Pixel zeichnen: 1 l0 l2 + 4 * s4 l1 l3 + 4 * s5 l4 4 + 1 - l5 4 + 1 - (M.V.STDrawRect) ' Cursor verschieben: (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {end} {macro:Matrix_Invert} (L.L.Matrix_Invertiert) {if} l4 255 = {if} 0 s4 {else} 255 s4 {endif} {endif} {end} {macro:Matrix_CheckDescender} ' Geprüft werden 24 Zeichen. Es ist unwahrscheinlich, dass eine Zeile eines Ziels länger ist. 0 (S.L.Matrix_TerminusL1HasDescender) 0 (S.L.Matrix_TerminusL3HasDescender) 1 (S.L.Matrix_Cursor) (M.L.Matrix_CheckDescender3) (M.L.Matrix_CheckDescender3) (M.L.Matrix_CheckDescender3) 0 (S.L.Matrix_Cursor) {end} {macro:Matrix_CheckDescender_L2} ' Geprüft werden 24 Zeichen. Es ist unwahrscheinlich, dass eine Zeile eines Ziels länger ist. 0 (S.L.Matrix_TerminusL2HasDescender) 0 (S.L.Matrix_TerminusL4HasDescender) 1 (S.L.Matrix_Cursor) (M.L.Matrix_CheckDescender3_L2) (M.L.Matrix_CheckDescender3_L2) (M.L.Matrix_CheckDescender3_L2) 0 (S.L.Matrix_Cursor) {end} {macro:Matrix_CheckDescender3} (M.L.Matrix_CheckDescender2) (M.L.Matrix_CheckDescender2) {end} {macro:Matrix_CheckDescender3_L2} (M.L.Matrix_CheckDescender2_L2) (M.L.Matrix_CheckDescender2_L2) {end} {macro:Matrix_CheckDescender2} (M.L.Matrix_CheckDescender1) (M.L.Matrix_CheckDescender1) {end} {macro:Matrix_CheckDescender2_L2} (M.L.Matrix_CheckDescender1_L2) (M.L.Matrix_CheckDescender1_L2) {end} {macro:Matrix_CheckDescender1} (M.L.Matrix_CheckDescender0) (M.L.Matrix_CheckDescender0) {end} {macro:Matrix_CheckDescender1_L2} (M.L.Matrix_CheckDescender0_L2) (M.L.Matrix_CheckDescender0_L2) {end} {macro:Matrix_CheckDescender1_L2} (M.L.Matrix_CheckDescender0_L2) (M.L.Matrix_CheckDescender0_L2) {end} {macro:Matrix_CheckDescender0} 'in ein extra frame schriben!! (L.$.Matrix_TerminusL1) $length s7 (L.L.Matrix_Cursor) >= {if} l7 (L.L.Matrix_Cursor) - s7 (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "g" $= (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "j" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "p" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "q" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "y" $= || {if} 1 (S.L.Matrix_TerminusL1HasDescender) {endif} (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {endif} {end} {macro:Matrix_CheckDescender0_L2} 'in ein extra frame schriben!! (L.$.Matrix_TerminusL2) $length s7 (L.L.Matrix_Cursor) >= {if} l7 (L.L.Matrix_Cursor) - s7 (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "g" $= (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "j" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "p" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "q" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "y" $= || {if} 1 (S.L.Matrix_TerminusL2HasDescender) {endif} (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {endif} {end} {macro:Matrix_CheckSymbol} "-" (S.$.Matrix_Symbol) (L.$.Matrix_Nr) "\s{flowers}" $= {if} "0" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{bbg}" $= {if} "1" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{runner}" $= {if} "2" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{notes}" $= {if} "3" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{hg}" $= {if} "4" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{planeS}" $= {if} "5" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{ball}" $= {if} "6" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{pr}" $= {if} "7" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{tram}" $= {if} "8" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{s}" $= {if} "9" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{u}" $= {if} "A" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{wrench}" $= {if} "B" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{trunk}" $= {if} "C" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{tree}" $= {if} "D" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{e}" $= {if} "E" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{star}" $= {if} "F" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{loco}" $= {if} "G" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{coffee}" $= {if} "H" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{ice}" $= {if} "I" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{arrow}" $= {if} "J" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{triangle}" $= {if} "K" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{a7}" $= {if} "L" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{db}" $= {if} "M" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{bvg}" $= {if} "N" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{planeL}" $= {if} "O" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) $length 2 - $cutEnd "\s" $= {if} "404" (S.$.Matrix_Nr) {endif} {end}