Programm zur Koordinateneingabe

  • Hallo sokobana,


    nehmen wir mal den einfachsten Fall:

    Ein
    WinCE-Programm (=exe-Datei) erzeugt ein Fenster.
    Jedes Fenster hat drei "Namen" mit denen man sie identifizieren kann:

    • den Fensternamen
    • den Klassennamen
    • das eindeutige Fensterhandle

    Der Fenstername steht z.B. in der Taskleiste oder in der Fenstertitel-Zeile, falls vorhanden.
    Den Klassennamen kann man nur mit spezieller Software anzeigen
    Intern arbeitet WinCE nur mit dem Fensterhandle, einer Hex-Zahl (DWORD), diese wird aber erst bei der Erzeugung des Fensters zugewiesen und ist nur so lange gültig, wie das Fenster existiert.


    Im Bild unten sieht man alle Fenster, die bei mir gerade existieren.
    GoPal hat hier das Fensterhandle 7C019200 und den Fensternamen "GoPal Navigator" sowie den Klassennamen "SkinFrame".
    Es gibt aber auch Fenster, die keinen Fensternamen haben, diese sind i.d.R. unsichtbar. Den Fenster- und Klassennamen kann jedes Programm für sich selbst definieren.


    Will man nun etwas an ein bestimmtes Fenster senden, so benötigt man dazu das Fensterhandle. Um dieses zu ermitteln gibt es in WinCE Funktionen mit denen man anhand des Fenster- und/oder Klassennamens ein bestimmtes Fenster suchen kann. Bei Erfolg bekommt man das Handle zurück. An diese Handle kann man nun z.B. einen Klick oder eine andere Windows-Message senden.
    Was das Zielprogramm dann damit macht, entscheidet es selbst.


    So nun zum Fenster selbst:
    Wie man sieht, besteht GoPal (aus Sicht von außen, d.h. von WinCE) auch nur aus einem Fenster.
    Die verschiedenen Ansichten in GoPal (Map, Menü, Kompass, ...) können von außen nicht unterschieden werden! Koord kann also per se nicht feststellen, welche Ansicht GoPal gerade darstellt, da diese alle in dem selben Fenster angezeigt werden (Ein Bildbetrachtungsprogramm ändert auch nicht seinen Namen nur deshalb, weil man ein anderes Foto ansieht). Um die einzelnen Ansichten dennoch unterscheiden zu können, arbeiten wir ja mit diesen Farbpixel an bestimmten Stellen.


    Also kurz zusammengefasst:
    Du kannst mit Koord Klicks nur global an "GoPal Navigator" senden. Welche Ansicht gerade aktiv ist, muss af anderem Wege festgestellt werden.



    Noch eine Anmerkung zum KoordServer:
    mit dem Parameter ClassName= setzt man genau den o.g. Klassennamen. Nur KoordServer mit unterschiedlichen Klassennamen können parallel laufen. Bei gleichem Klassennamen wird der Server beendet!


    Gruß,
    Stefan

  • Boah! Das ist ja ein umfangreiches Thema. :rolleyes:


    Danke, dass Du Dir mit der Erklärung soviel Mühe gegeben hast, Stefan! :tup


    Gruß sokobana

  • Hallo Stefan,


    wie kann ich es denn bei abgeschaltetem Display erreichen (man
    sieht beim P4440 die Anwendungen trotzdem noch leicht
    durchschimmern), daß das mit nachfolgender Zeile aufgerufene
    Textfenster bei Berührung den Wert "window=0 Backlight=3" sendet
    und sich danach schließt


    #run(koordexe,"Window=0 KoordServ=3 wndrefresh=-1 rb=32 gb=32 bb=32 |ServWnd=text,70,80,340,80,-5038,255,0,0,-1,0{... Back to the Light ...}|")


    Möglichst alles in einer Zeile, wenn nicht dann mit textfile ...



  • Hi Panik,


    ich hab sowas ähnliches in meinen Menüs für Vario4 eingebaut, das Prinzip bei mir ist eine durchsichtige "Klicksperre" die doch klicks annimmt.


    Ich hab da zwei Varianten, einmal reagiert es sofort, beim anderen nur nach links und dann rechts Klick.
    Schau Dir das ruhig mal an, vielleicht hilft es.


    Es sind natürlich mehrere Dateien, optimiert auf eine hab ich es noch nicht.


    Link ist in meiner Signatur.

  • Danke athos,


    ich warte erst mal, ob Stefan was schreibt, bevor ich es mir antue,
    den Vario nur wegen des Sichtens von paar Codezeilen zu installieren...

  • den Vario nur wegen des Sichtens von paar Codezeilen zu installieren...


    Ich denk mal das mußt Du nicht, ich schick Dir mal die relevanten Scripte.


    Ausgehend von flagbutton.mscr (die geht auf die Hotkey-Sachen von Dir zurück), schalte ich mir die verschiedenen "Klicksperren" ein.

  • Hallo athos,


    ich weiß nicht, ob mir das mit dem Hotkeybutton was nützt.
    Das P4440 hat leider keinen weiteren Hardwarebutton, außer dem EIN/AUS-Schalter :(


  • #run(koordexe,"Window=0 KoordServ=3 wndrefresh=-1 rb=32 gb=32 bb=32 |ServWnd=text,70,80,340,80,-5038,255,0,0,-1,0{... Back to the Light ...}|")


    Möglichst alles in einer Zeile, wenn nicht dann mit textfile ...



    Lass mal das - vor der 1 weg:


    Window=0 KoordServ=3 wndrefresh=-1 rb=32 gb=32 bb=32 |ServWnd=text,70,80,340,80,-5038,255,0,0,1,0{... Back to the Light ...}|")[/color]



    Edit 13.08.2010: vergiß es, da hatte ich wohl was anderes im Kopf.... :rolleyes:

    Einmal editiert, zuletzt von ssnweb ()

  • ich weiß nicht, ob mir das mit dem Hotkeybutton was nützt.
    Das P4440 hat leider keinen weiteren Hardwarebutton, außer dem EIN/AUS-Schalter


    Daran hatte ich so nicht gedacht, dann kan Dir mein Spaß ja nur als Anregung dienen.



    Ich bin aber leider überhaupt noch nicht fit in der Koord-Programmierung, ich weiß da jetzt keinen direkten Rat. Viellleicht komm ich mal noch dazu mich reinzudenken, aber im Moment sieht's da schlecht aus.

  • Gibt es eine Möglichkeit im Navimenü für Gopal 5.0 einen Button zu erstellen, wo man nur draufklicken muss, damit Koord erscheint. Ich bin leider überhaupt nicht fit im Coding


    Danke

  • Logisch, den haben viele Skins mit Menue schon drin. Oder Du spickst hier: http://www.gopal-navigator.de/…den_man_einbinden_kann.3F

  • Könnte mir mal einer auf die Sprünge helfen?


    Ich hab' noch GoPal 2 und da gibt's die Geschwindigkeit nur im Kompass-View.
    Darum wollte ich jetzt mit dem koord im Servermodus ein kleines Fenster mit der aktuellen Speed in der Mapview einblenden.
    Nach "Studium" der Parameterliste und suchen/lesen von "Server" und "Geschwindigkeit" in diesem Thread muss ich gestehen, Ihr habt mich sauber abgehängt.
    Darum bitte jetzt mal von vorne....


    koord-server Start aus GoPal heraus oder schon vorher aus dem Menü?
    Mit welchen Parametern? (Window=0 KoordServ=1 x=0 y=40 w=60 h=40 t=0 wndrefresh=5 ServWnd=\speed,0,0,60,40,-30 | GPSPort=com4: war nicht zielführend...)
    Hört der koord-server nur mit und wertet die GPS-Daten aus (d.h. muss, damit der Server was bekommt, GoPal das GPS nach Daten fragen) oder kann der kkord-Server selbst mit dem GPS kommunizieren?


    "zu Hülf!"
    ruft der
    Klaus

  • Hallo Klaus



    Aus meinen
    anfänglichen Versuchen habe ich bei mir immer noch eine Taste im



    >MenuViewView<
    die nenn sich bei mir „Koord-Plus“.
    Sie zeigt bei mir die Geschwindigkeit,Höhe und Uhrzeit in der Kartenansicht an.



    In der Koord-Text-Datei steht bei mir folgendes.:lesen

    Code
    params: Window=0 LKlick1=10 x1=20 y1=240 KoordServ=1 ClassName=KoordPlus| t=1 rb=214 gb=214 bb=231  wndrefresh=1000
     ServWnd=height,365,249,,64,18,-18,0,0,0,-1,-1,{%.1f m}\\/
    speed,50,212,75,16,-18,0,0,0,-1,-1,{ %.1f km/h}\\/
    time,360,212,70,18,-18,0,0,0,-1,-1{%02i:%02i:%02i}\\/
    
    
    
    
     | GPSPort=com3:





    Vielleicht hilft dir das erst mal weiter.
    Grüße Manni

  • Sorry für noch nicht beantwortete PN und Beiträge!
    Ich bin jetzt erst mal im Urlaub!


    Gruß,
    Stefan