Programm zur Koordinateneingabe

  • Hallo,


    also

    Code
    <action path="\My Flash Disk\Sokobana\Koord\koord465.exe" param="window=0 SendKey=\l\Storage Card\Panik\MortScript\MortScript.exe:\Storage Card\Panik\MortScript\message.mscr|" />

    funktioniert nicht?


    Welche Koord-Version ist denn die \My Flash Disk\Sokobana\Koord\koord465.exe? Das mit der Parameterübergabe geht erst ab V1.08.5.


    Ob die MS-Syntax stimmt, weiß ich nicht, aber kann man denn nicht auch ein MS-Skript direkt starten, wenn die Dateiendung registriert ist?


    Vielleicht gibt es auch eine Beschränkung der Zeilenlänge in der MENU.XML?


    Falls das so ist, könntest Du es mit einer Koord-include-Datei probieren, also z.B. so (Pfade anpassen!):

    Code
    <action path="\Storage Card\Programme\koord\koord465.exe" param="include=\Storage Card\Programme\koord\MyTest.txt"/>

    in die MyTest.txt schreibst Du dann den eigentlichen Koord-Parameter, also

    Code
    window=0 SendKey=\l\Storage Card\Panik\MortScript\MortScript.exe:\Storage Card\Panik\MortScript\message.mscr|


    Das hat auch den Vorteil, dass Du nicht bei jedem Test einen SR machen musst!


    Gruß,
    Stefan

  • Hallo Stefan,


    Die Version vom sokobana-Skin her ist die 1.0.9. Rev.2


    Eine eventl. Zeilenbeschränkung der menu.xml wäre eine Idee, aber ich habe sie durch Kürzung sogut wie ausgeschlossen(siehe Beispiel).
    Der Umweg über die Datei MyTest.txt würde nicht gehen, da die Unterscheidung, was im Endeffekt passieren soll, schon bei der menu.xml beginnt. Deswegen die (unterschiedliche) Parameterübergabe schon von da aus.
    Bsp:


    In dem Beispiel klappt aber selbst die Zeile
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\MortScript.exe:\Storage Card\message.mscr|" />
    als auch - obwohl registriert - diese
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\message.mscr|" />
    nicht! ?(


    Ich stelle mir halt vor alle drei im oberen Beispiel vorkommenden "action path"-Ausdrücke
    durch sowas zu ersetzen:
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\MortScript.exe:\Storage Card\message.mscr:var=1|" />
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\MortScript.exe:\Storage Card\message.mscr:var=2|" />
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\MortScript.exe:\Storage Card\message.mscr:var=3|" />


    In der message.mscr erfolgt dann durch if-Abfragen des Wertes der Variable "var"
    die Auswertung und das Anstossen von Aktionen.
    Das hat eben auch den Vorteil des unnötigen Resets bei Tests.
    Zudem kann eine Menükonfiguration mit Tool schon am PC stattfinden(eine Projektidee ;))


    Deine Idee mit der Textdatei könnte u.U. gehen, wenn es möglich wäre eine bestimmte Zeile oder besser Zeilenbereich anzuspringen:
    <action path="\Storage Card\Programme\koord\koord465.exe" param="include=\Storage Card\Programme\koord\MyTest.txt:1-3"/>
    <action path="\Storage Card\Programme\koord\koord465.exe" param="include=\Storage Card\Programme\koord\MyTest.txt:4-4"/>
    oder
    <action path="\Storage Card\Programme\koord\koord465.exe" param="include=\Storage Card\Programme\koord\MyTest.txt:5"/>


    Panik

  • Versuche doch mal, die korrespondierende message.exe zu übergeben, nicht die message.mscr.

  • Hallo Ralf25,


    da drehen wir uns leider im Kreis - ich würde nicht hier schreiben, wenn ich das nicht probiert hätte.
    Das klappt sehr wohl, NUR ...
    Es ist nicht möglich, dieser korrespondierenden message.exe Parameter mit auf den Weg zu geben.
    Das geht eben nur über so ein Konstrukt (hier im Bsp. von einer anderen Mortscriptdatei übergeben):
    Run( "\Storage Card\MortScript.exe", """\Storage Card\message.mscr"" var=1")
    Dieses Konstrukt läßt sich aber wegen der vielen Gänsefüßchen in keine xml einsetzen - die streiken da!
    Daher dachte ich es mit Koord465 zu lösen, da dort die Parameterangabe einer anderen Syntax folgt.
    Der Ausdruck müßte eben für Koord465 übersetzt werden.


    Auswertung in der message.mscr:

    Code
    If (var=1)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=1 ^NL^ Programm1 wird gestartet")
    ElseIf (var=2)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=2 ^NL^ Programm2 wird gestartet")
    ElseIf (var=3)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=3 ^NL^ Programm3 wird gestartet")
    Else
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var ^NL^ kann nicht ausgewertet werden")	
    EndIf


    Panik

    Einmal editiert, zuletzt von Panik ()

  • Hallo,

    Zitat

    Original von Panik
    Run( "\Storage Card\MortScript.exe", """\Storage Card\message.mscr"" var=1")


    so schön langsam glaube ich das Problem zu erkennen:
    Run( "\Storage Card\MortScript.exe", """\Storage Card\message.mscr"" var=1")
    müsste mit Koord so aufgerufen werden:
    \Storage Card\MortScript.exe:"\Storage Card\message.mscr" var=1|

    Nun kommt das Problem:

    Die "eingebetteten" Gänsefüßchen benötigt ja Mort um die Leerzeichen im Pfad zu akzeptieren und die dürfen nicht weggelassen werden und müssen daher via Koord übergeben werden.
    Koord benutzt den Doppelpunkt als Beginn des/der Parameter(s) und den senkrechten Strich als Endezeichen und kommt somit ohne Gänsefüßchen aus.
    Der Aufruf müsste demnach so aussehen:
    <action path="\Storage Card\koord465.exe" param="window=0 SendKey=\l\Storage Card\MortScript.exe:"\Storage Card\message.mscr" var=1|" />
    In der MENU.XML darf es aber keine zusätzlichen Gänsefüßchen (die blauen) geben!


    Wenn das alles so stimmt, dann sehe ich nur die Möglichkeit -wie bereits vorgeschlagen- mit einer bzw. mehreren include-Datei(en):
    <action path="\Storage Card\koord465.exe" param="include=\Storage Card\MyTest01.txt"/>
    und in die Datei \Storage Card\MyTest01.txt schreibst Du dann wiederum den Parameter inclusive Gänsefüßchen, da sie ja hier erlaubt sind:
    window=0 SendKey=\l\Storage Card\MortScript.exe:"\Storage Card\message.mscr" var=1|
    Du musst dann eben mehrere include-Dateien anlegen, um die verschiedenen Parameter zu übergeben.



    Anm.: Du könntest auch testen, das Ganze in einem Verzeichnis laufen zu lassen, dessen Pfad keine Leerzeichen beinhaltet. Dann könntest Du auf die eingebetteten Gänsefüßchen verzichten.


    Gruß,
    Stefan

  • Hallo Stefan,


    schön, daß es jetzt Bingo gemacht hat ;)


    Leider ist der Vorschlag mit den mehreren Textdateien für koord465 nicht mein Wunsch.Da könnte ich auch mehrere Mortscripte nehmen und spare den "Vermittler" koord.


    Der Witz ist ja gerade, daß ich nur EIN einziges Mortscript haben möchte. Das soll dann je nach Wert der Variable unterschiedliche Aktionen auslösen.
    ODER - wie dein Vorschlag - aber EINE Textdatei , bei der zu einer bestimmten Zeile gesprungen werden kann, die abgearbeitet wird.


    Deine Idee mit dem Ordner ohne Leerzeichen wäre noch probierenswert, jedoch auch ungern als Abschlusslösung ...


    Panik


    jetzt kam mir noch die Idee, Steuercodes für Gänsefüßchen zu senden.
    Da muss ich recherchieren, ob xml das kann.
    Kann es koord465 ???

    Einmal editiert, zuletzt von Panik ()

  • Zitat

    Original von Panik
    jetzt kam mir noch die Idee, Steuercodes für Gänsefüßchen zu senden.
    Da muss ich recherchieren, ob xml das kann.
    Kann es koord465 ???


    Koord sendet alles zwischen Doppelpunkt und senkrechtem Strich 1:1 als Parameter an die angegebene exe. Ob da Steuercodes oder sonst was dabei sind, ist Koord egal. Koord interessiert sich auch nicht für den Aufbau des Parameterstrings, denn der ist ja abhängig von der Applikation.


    Wenn alle Stricke reißen und Du es unbedingt so lösen willst, dann könnte ich ja eine Koord-Exe machen, die irgendein Steuerzeichen im Parameterstring in ein Gänsefüßchen wandelt.


    Hast du schon mal probiert, ob der XML-Parser &quote; nicht schon automatisch in " wandelt?


    Gruß,
    Stefan

  • Jippieeee !!! :D


    folgender Ausdruck in der xml führt zum Erfolg (sorry Stefan : ohne koord465 ;) :(
    <action path="\Storage Card\MortScript.exe" param=""Storage Card\message.mscr" "var=1"" />


    <action path="\Storage Card\MortScript.exe" param=""Storage Card\message.mscr" "var=2"" />


    führt in der message.mscr zu jeweils anderer Aktion:

    Code
    If (var=1)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=1 ^NL^ Programm1 wird gestartet")
    ElseIf (var=2)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=2 ^NL^ Programm2 wird gestartet")
    ElseIf (var=3)
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var=3 ^NL^ Programm3 wird gestartet")
    Else
    	message("Message.mscr wurde aufgerufen ^NL^ Variable var ^NL^ kann nicht ausgewertet werden")	
    EndIf


    Witzig, um euch den Code hier zu zeigen, bedurfte es auch einiger Tricks, denn der Editor übersetzt mir die Zeichen auch!!! ;)


    Danke Stefan für die Hilfsbereitschaft und Tips!


    Panik

  • Hallo Stefan,
    ohne Deine Hilfe werde ich auch diesmal nix vernünftiges auf die Beine stellen. ;D


    Zunächst möchte ich mal ein "Erfolgserlebnis" loswerden. Es geht um diesen kleinen Kompass mit Sonnenstand, den ich mit einem Button in die Gopal-Kompass-Seite eingebunden habe (Include).


    Window=0
    KoordServ=1
    wndrefresh=2000 t=3
    ServWnd=height,60,120,100,18,-18,255,170,51,-1\orthodrome,63,135,100,18,-18,0,0,255,-1,-1{%.3fkm}\sun,40,28,130,0,1012,255,255,0,-1,-1\compass,40,40,130,130,14,0,127,0,-1,0|
    GPSPort=com5:


    [Blockierte Grafik: http://www.senior-sos.de/Fotos/vario3-koordsun01.gif]


    Er wird in allen Bildschirmen, also auch in der Map eingeblendet. Ich bin also mit dem Auto zu einen schönen Waldparkplatz gefahren. Der Parkplatz war von mir als Ziel in die Routenplanung eingetragen worden (Gopal). Dort habe ich Static Navigation abgeschaltet, obigen Kompass gestartet und zum mp3-Player gewechselt. In dieser Konstellation sollte mich mein Navi auf einem Sparziergang im Wald begleiten. Damit ich die Natur so richtig genießen könnte, habe ich auf eine Kartendarstellung während der Wanderung verzichtet, weil ich keinen Bock auf "Technik", sondern mehr auf Ruhe und Vogelgezwitscher Wert gelegt habe. ;)


    Warum habe ich das Navi nun überhaupt mitgenommen? Ich habe eine verdammt schlechte Orientierung und verlaufe mich gern mal in fremder Umgebung. Die Aufgabe Deines genialen Koord465-Programms, sollte also sein, mir bei einer Waldwanderung anzuzeigen in welcher Richtung denn mein Auto geparkt ist. Dazu die Entfernung (Luftlinie). Das hat fantastisch gut funktioniert! Ich habe auf dem Rückweg alle paar Minuten das Navi eingeschaltet und geschaut, ob die Richtung noch stimmt. Insbesondere an Weggabelungen habe ich mich so orientiert! Danke Stefan! Auf diese einfache Lösung möchte ich in Zukunft nicht mehr verzichten!


    Das zu meinem "Erfolgserlebnis".
    Nun zu einem Problem mit einem weiteren Koord-Button, den ich unter Settings eingebunden habe:


    Window=0 KoordServ=3 wndrefresh=1000 t=1 rb=220 gb=220 bb=220
    PixWnd=-2,0,1,80,80,80,0,0,220,220,220|
    ServWnd=sun,0,0,260,12,1012,0,0,0,-1,-3\/
    \compass,0,12,260,260,14,0,127,0,-1,-3\/
    \target_m,260,0,220,20,1016,0,0,0,-1,-3{Ziel: %02i° %07.4f' %c %03i° %07.4f' %c}\/
    \wgs84_m,260,20,220,40,1020,200,100,0,-1,-3{akt.: %02i° %07.4f' %c\n%03i° %07.4f' %c}\/
    \orthodrome,260,60,220,40,1040,0,0,155,-1,-3{%.3fkm}\/
    \speed,260,100,220,50,1040,0,100,0,-1,-3\/
    \height,260,150,220,20,1020,0,0,0,-1,-3\/
    \sat,260,170,220,20,1020,0,0,0,-1,-3{Satelliten: %i}\/
    \hdop,260,190,220,20,1020,0,0,0,-1,-3\/
    \target_t,260,210,220,20,1020,0,0,0,-1,-3\/
    \text,260,230,178,42,5020,0,0,0,-1,-1{Koordinateneingabe}\/
    \text,438,230,42,42,-5040,0,0,0,-1,0{x}|
    GoPal=0|
    GPSPort=com5:


    [Blockierte Grafik: http://www.senior-sos.de/Fotos/vario3-koordsun02gif]


    Die Zeiger scheinen zu funktionieren. Auch die Anzeige für Sats und HDOP.
    Er übernimmt aber anscheinenend nicht die Gopal-Zielkoordinaten. Denn es wird immer eine Luftlinie von über 14.000 km angezeigt. :-D) Dabei spielt es keine Rolle, ob beim Starten des Kompasses Gopal läuft oder nicht.


    Was soll eigentlich unten der Text Koordinateneingabe? Ein Button scheint es nicht zu sein. Gibt keine Reaktion beim Klick.


    Es wäre toll, wenn Du mir dabei hilfst, einen funktionierenden Code für diesen Kompass bereitzustellen.


    Gruß sokobana

  • Hallo sokobana


    Ohne die Zeile ServKeyFile=\My Flash Disk\Programme\KOORD\Steuerung.txt|
    Geht der KoordButton bei mir auch nicht, hat die Zeile doch ihr gutes.


    Vielleicht auch mal GoPal=3| angeben , ich weis nicht mehr genau ob GoPal=0| für GP2 oder GP3 vordefiniert ist.


    Gruß Manni

  • Sorry, hatte vergessen zu erwähnen, dass ich Gopal 3 habe.
    Gruß sokobana


    PS: Was muß dann in der Datei Steuerung stehen?

    Einmal editiert, zuletzt von sokobana ()

  • Hi sokobana


    In beiden Dateien



    Die Steuerung.txt


    window=5 GoPal=3|
    *include=\My Flash Disk\Programme\KOORD\KOORD.txt|
    window=0





    Die koord.txt


    Window=0 KoordServ=3 wndrefresh=1000 t=1 rb=220 gb=220 bb=220
    PixWnd=-2,0,1,80,80,80,0,0,220,220,220|
    ServWnd=sun,0,0,260,12,1012,0,0,0,-1,-3\/
    \compass,0,12,260,260,14,0,127,0,-1,-3\/
    \target_m,260,0,220,20,1016,0,0,0,-1,-3{Ziel: %02i° %07.4f' %c %03i° %07.4f' %c}\/
    \wgs84_m,260,20,220,40,1020,200,100,0,-1,-3{akt.: %02i° %07.4f' %c\n%03i° %07.4f' %c}\/
    \orthodrome,260,60,220,40,1040,0,0,155,-1,-3{%.3fkm}\/
    \speed,260,100,220,50,1040,0,100,0,-1,-3\/
    \height,260,150,220,20,1020,0,0,0,-1,-3\/
    \sat,260,170,220,20,1020,0,0,0,-1,-3{Satelliten: %i}\/
    \hdop,260,190,220,20,1020,0,0,0,-1,-3\/
    \target_t,260,210,220,20,1020,0,0,0,-1,-3\/
    \text,260,230,178,42,5020,0,0,0,-1,-1{Koordinateneingabe}\/
    \text,438,230,42,42,-5040,0,0,0,-1,0{x}|
    ServKeyFile=\My Flash Disk\Programme\KOORD\Steuerung.txt|
    GoPal=3|
    GPSPort=com5:|




    Gruß Manni

  • Wow, Manni!
    Wie von "Geisterhand" öffnet sich jetzt tatsächlich die Koordinateneingabe. :)


    Danke! Sokobana

  • Mit Gopal=3 übernimmt jetzt auch der große Kompass die Koordinaten aus Gopal! :)


    Nochmals, vielen Dank, Manni! :tup
    Gruß sokobana