******************************************************************************** * Ingenieurbuero B.Poepping Huebscherstrasse 3 3074 Muri * * Uebername von [WILD______] - Daten via RSP - Compiler * * Format : [ROHKOORDINATEN____________________________________] * * Ersteller: [J. BUERGI_____] * * Datum: [03].[05].[1991] File [WILDKO.RSP___] * ******************************************************************************** **************BEGINN MAKRODEFINITION******************************************** * Dieses Makro liest Additionskonstanen fuer X und Y und Punkt-Nummer ein! * Aufruf [ MACRO ADD ] defmacro ADD echo $ Die Additionskonstanten muessen bei der Uebertragung von WILD nach $ echo $ CPLAN ein POSITIVES Vorzeichen haben, da das WILD-Format kleiner ist $ echo $ als das CPLAN-Format! (Keine Konstante = 0 ) $ echo $ --> Nur noetig, wenn die Formate nicht uebereinstimmen!! $ echo $ $ input $ Additionskontante Punkt-Nummer (9-stellig) : $ , %PNR% put %PNR% - 300 input $ Additionskontante Y-Koordinate (6-stellig) [m] : $ , %ADDY% put %ADDY% - 100 input $ Additionskontante X-Koordinate (6-stellig) [m] : $ , %ADDX% put %ADDX% - 200 endmacro * Dieses Macro schreibt die Stationsnummer auf den Bildschirm * Aufruf [ MACRO INFO (PUNKT NUMMER : [_.._] ] defmacro INFO post #1 -1 poso 8,15 - 18 *Nummer auf Position 18 echo $ $ echo $recout$ endmacro * Dieses Macro liest die Versicherungsart und die Bestimmungsklasse ueber die * Tastatur ein. Die eingegebenen Werte gelten fuer die ganze Uebernahme! * Aufruf [ MACRO VA_C ] defmacro VA_C input $ Geben Sie die Versicherungsart ein (max. 3 Stellen): ? $ , %VA% input $ Geben Sie die Bestimmungsklasse ein (max 1 Stelle): ? $, %C% endmacro * Dieses Macro schreibt die Tabulatoren an die bestimmten Positionen. * Aufruf [ MACRO TAB ] defmacro TAB post $ K ! ! ! ! !$ -1 post $! ! ! !$ -42 endmacro * Dieses Macro schreibt die Punktnummer, VA und die Bestimmungsklasse in den * neuen Record. * Aufruf [ MACRO NR ] defmacro NR post $:$ - 14 *Tab *------------------------------------------------* if 300,300 / $0$ *Additionskonstante Punkt-Nr. vorhanden ? add 8,15 + 300,315 = 3008 pos 3015,3023 - 15 else *------------------------------------------------* poso 8,15 - 16 *Punkt Nummer (ohne Additionskonstante) cont post $:$ - 24 *Tab postr %VA% - 27 *VA post %C% - 29 *Bestimmungsklasse endmacro * Dieses Macro schreibt die Y-Koodinate in den neuen Record. Fuehrende Nullen * werden weggelassen, zudem werden mm in m umgewandelt (rechtsbuendig) * Aufruf [ MACRO Y_KOORD ] defmacro Y_KOORD if 33,34 = $81$ *Test auf Kennung blank 1031,1041 post $:$ - 30 *Tab *---------------------------* if 40,40 / $0$ *10 km replace 40,44 - 1033 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1032 cont goto $Y$ else *---------------------------* if 41,41 / $0$ *1 km replace 41,44 - 1034 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1033 cont goto $Y$ else *---------------------------* if 42,42 / $0$ *100 m replace 42,44 - 1035 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1034 cont goto $Y$ else *---------------------------* if 43,43 / $0$ *10 m replace 43,44 - 1036 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1035 cont goto $Y$ else *---------------------------* if 44,44 / $0$ *1 m replace 44,44 - 1037 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1036 cont goto $Y$ else *---------------------------* if 44,44 = $0$ *0 m replace 44,44 - 1037 if 39,39 = $-$ * Vorzeichen replace 39,39 - 1036 cont goto $Y$ cont *---------------------------* cont cont cont cont cont *---------------------------* label $Y$ if 19,19 / $.$ *Dezimalpunkt vorhanden ? echo $ Auf Position 19,19 muss ein Dezimalpunkt stehen!! $ post $ @Auf Position 19,19 muss ein Dezimalpunkt stehen!! $ - 1 goend cont replace 19,19 - 1038 *Dezimalpunkt replace 45,47 - 1039 *mm *------------------------------------------------* if 100,100 / $0$ *Additionskonstante Y vorhanden ? add 1031,1041 + 100,115 = 1122 pos 1131,1141 - 31 *------------------------------------------------* else pos 1031,1041 - 31 *Keine Additionskonstante cont *---------------------------* cont if 33,34 / $81$ *Test auf Kennung echo $ Unbekannte Y-Kennung auf Position 33,34 im INROH-FILE! $ post $@ Unbekannte Y-Kennung auf Position 33,34 im INROH-FILE! $ - 1 cont endmacro * Dieses Macro schreibt die X-Koodinate in den neuen Record. Fuehrende Nullen * werden weggelassen, zudem werden mm in m umgewandelt (rechtsbuendig). * Aufruf [ MACRO X_KOORD ] defmacro X_KOORD if 49,50 = $82$ *Test auf Kennung post $:$ - 42 *Tab blank 2043,2053 *---------------------------* if 56,56 / $0$ *10 km if 55,55 = $-$ * Vorzeichen replace 55,55 - 2044 cont replace 56,60 - 2045 goto $X$ else *---------------------------* if 57,57 / $0$ *1 km if 55,55 = $-$ * Vorzeichen replace 55,55 -2045 cont replace 57,60 - 2046 goto $X$ else *---------------------------* if 58,58 / $0$ *100 m if 55,55 = $-$ * Vorzeichen replace 55,55 - 2046 cont replace 58,60 - 2047 goto $X$ else *---------------------------* if 59,59 / $0$ *10 m if 55,55 = $-$ * Vorzeichen replace 55,55 - 2047 cont replace 59,60 - 2048 goto $X$ else *---------------------------* if 60,60 / $0$ *1 m if 55,55 = $-$ * Vorzeichen replace 55,55 - 2048 cont replace 60,60 - 2049 goto $X$ else *---------------------------* if 60,60 = $0$ *0 m if 55,55 = $-$ * Vorzeichen replace 55,55 - 2048 cont replace 60,60 - 2049 goto $X$ cont *---------------------------* cont cont cont cont cont *---------------------------* label $X$ if 20,20 / $.$ *Dezimalpunkt vorhanden ? echo $ Auf Position 20,20 muss ein Dezimalpunkt stehen!! $ post $ @Auf Position 20,20 muss ein Dezimalpunkt stehen!! $ - 1 goend cont replace 20,20 - 2050 *Dezimalpunkt replace 61,63 - 2051 *mm *------------------------------------------------* if 200,200 / $0$ *Additionskonstante X vorhanden ? add 2043,2053 + 200,215 = 2134 pos 2143,2153 - 43 *------------------------------------------------* else pos 2043,2053 - 43 *Keine Additionskonstante cont cont *---------------------------* if 49,50 / $82$ *Test auf Kennung echo $ Unbekannte X-Kennung auf Position 49,50 im INROH-FILE! $ post $@ Unbekannte X-Kennung auf Position 49,50 im INROH-FILE! $ - 1 cont endmacro * Dieses Macro schreibt die Z-Koodinate in den neuen Record. Fuehrende Nullen * werden weggelassen, zudem werden mm in m umgewandelt (rechtsbuendig). * Maximale Z-Koordinate 9999.99, was groesser ist, wird abgeschnitten!! * Aufruf [ MACRO Z_KOORD ] defmacro Z_KOORD if 72,79 / $00000000$ *Hoehe vorhanden if 65,66 = $83$ *Test auf Kennung post $:$ - 63 *Tab *---------------------------* if 73,73 / $0$ *1 km if 71,71 = $-$ * Vorzeichen post $-$ - 63 cont pos 73,76 - 64 else *---------------------------* if 74,74 / $0$ *100 m if 71,71 = $-$ * Vorzeichen post $-$ - 64 cont pos 74,76 - 65 else *---------------------------* if 75,75 / $0$ *10 m if 71,71 = $-$ * Vorzeichen post $-$ - 65 cont pos 75,76 - 66 else *---------------------------* if 76,76 / $0$ *1 m if 71,71 = $-$ * Vorzeichen post $-$ - 66 cont pos 76,76 - 67 else *---------------------------* if 76,76 = $0$ *0 m if 71,71 = $-$ * Vorzeichen post $-$ - 66 cont pos 76,76 - 67 cont *---------------------------* cont cont cont cont *---------------------------* post $.$ - 68 pos 77,79 - 69 *---------------------------* cont if 65,66 / $83$ *Test auf Kennung echo $ Unbekannte Z-Kennung auf Position 65,66 im INROH-FILE! $ post $@ Unbekannte Z-Kennung auf Position 65,66 im INROH-FILE! $ - 1 cont cont endmacro * Dieses Macro liest einen neuen Record aus dem INROH-File. * Aufruf [ MACRO LESEN ] defmacro LESEN read endmacro **************ENDE MAKRODEFINITION********************************************** **************TITELZEILE******************************************************** echo $ $ echo $ ********************************************** $ echo $ * RSP Konvertierung von [WILD______] - Daten * $ echo $ ********************************************** $ echo $ * WILD -> CPLAN-KOORDINATEN * $ echo $ ********************************************** $ echo $ $ echo $ Start der Uebertragung ! $ echo $ $ ******************************************************************************** **************START LOOP******************************************************** macro ADD *Additionskonstanten einlesen macro VA_C *VA und C einlesen titkor *Koordinatentitel schreiben format = 3 begin macro LESEN **************START CODEABFRAGE************************************************* if 1,10 = $! ----+ $ *Endebedingung 1 goend cont if 1,3 = $END$ *Endebedingung 2 goend cont if 1,1 = $*$ *Kommentar goto $KOMMENTAR$ cont if 2,2 = $K$ *Koordinaten schon im C-Plan Format goto $C_PLAN$ cont if 1,2 = $01$ *Wortweiser Text goto $TEXT1$ cont if 1,2 = $@T$ *Freies Textformat goto $TEXT2$ cont if 1,6 = $ $ *Leere Zeile goto $LEERE_ZEILE$ cont if 1,2 = $11$ *Messblock goto $KOORDN$ cont if 1,2 = $41$ *Codeblock goto $CODEBLOCK$ cont goto $UNBEKANNTER_CODE$ *Unbekannter Code *------------------------------------------------------------------------------* * An diese Stelle sollte das Programm nie gelangen!!! echo $ FEHLER IM PROGRAMM!!!! $ echo $ FEHLER IM PROGRAMM!!!! $ **************ENDE CODEABFRAGE************************************************** **************START LABELDEFINITION********************************************* * Gibt eine Meldung aus, wenn die Koordinate schon im C-Plan Format ist. label $C_PLAN$ echo $ Die Koordiante ist schon im C-Plan Format !! $ return * In diesem Label werden ganzeilige Kommentare uebernommen. label $KOMMENTAR$ pos 1,80 - 1 write return *------------------------------------------------------------------------------* * In diesem Label wird bei einem unbekannen Code eine Fehlermeldung aus- * gegeben und ins File geschrieben. label $UNBEKANNTER_CODE$ echo $ Unbekannter Code auf Position 1,2 im INROH-FILE! $ post $@ Unbekannter Code auf Position 1,2 im INROH-File! $ - 1 write return *------------------------------------------------------------------------------* * In dieses Label gelangt das Programm, wenn ein Codeblock existiert. label $CODEBLOCK$ echo $ Es werden keine Codebloecke abgearbeitet !! $ return *------------------------------------------------------------------------------* * In diesem Label werden leere Zeilen ueberlesen. label $LEERE_ZEILE$ return *------------------------------------------------------------------------------* * In diesem Label werden Texte wortweise (positionsweise) eigelesen und * geschrieben. label $TEXT1$ post $*$ -1 pos 8,15 - 2 *Wort 1 pos 24,31 - 10 *Wort 2 pos 40,47 - 18 *Wort 3 pos 56,63 - 26 *Wort 4 pos 71,78 - 34 *Wort 5 write return *------------------------------------------------------------------------------* * In diesem Label wird ein Zeilentext uebernommen und geschrieben. label $TEXT2$ post $*$ - 1 pos 3,80 -2 write return *------------------------------------------------------------------------------* * In diesem Label werden die Macros zum Werte-Schreiben aufgerufen. label $KOORDN$ macro INFO $ Punkt Nummer : [________] $ macro TAB macro NR macro Y_KOORD macro X_KOORD macro Z_KOORD write return **************ENDE LABELDEFINITION********************************************** **************ENDE LOOP********************************************************* **************ENDEZEILE********************************************************* end **************************ENDEZEILE********************************************* echo $ $ echo $ ********************************************** $ echo $ * Ende der Uebertragung ! * $ echo $ ********************************************** $ echo $ $ echo $ $ ******************************************************************************** post $99$ - 1 write stop