Mit TT5 "reden", aber ohne SDK

  • Hi bill_gehts?
    also sind die Zahlen frei wählbar?


    Der Trick mit dem Kartenwechsel ist sehr gut. Wenn man noch die Syntax korrekt hat, steht einer PPC-Variante des POI-Edit nichts mehr im Weg. Die eingebauten Möglichkeiten zum Verwalten der POI's finde ich sehr umständlich und unzureichend.
    Neben einer komfortablen Verwaltung könnte man auch POI's zu einem Archiv zusammenfassen. Das Format eines solchen Archivs kann dem der POI.DAT täuschend ähnlich sein ;D
    Gäbe es nicht das Copyright auf die POI.DAT, wäre auch das editieren direkt möglich. So muß ein Trick her. Zum Beispiel könnte man das Archiv POI.PAT nennen und darauf hinweisen, daß die originale TomTom POI.DAT nicht verändert werden darf, also auch nicht umbenannt werden darf. Dann ist man als Programmanbieter aus dem Schneider, denke ich. Wenn der Endkunde an seiner POI.DAT rumschraubt, ist es dann ein Vergehen des Anwenders.


    Man kann OV2 Dateien optimieren. Das Tool MakeOV2 macht dies standardmäßig, POI-Edit nicht. Besonders sinnvoll ist das bei großen OV2-Dateien. Dadurch wird TomTom in der Ausführung beschleunigt. Außerdem kann man OV2 Dateien komprimieren. Ein mit POI-Edit erzeugtes POI hat mindestens eine Länge von 13 Byte (bei nicht vorhandener Bezeichnung). Ein komprimiertes POI kann ohne Beschreibung 7 Byte groß sein. Auch mit Beschreibung ist eine Kompression von etwa 50 - 70 Prozent durchaus realistisch. Ein solches POI wird auch korrekt von TomTom angezeigt und kann wie jedes andere POI verwendet werden mit einer Außnahme. Durch einen Bug in TomTom wird es nicht korrekt gelöscht. Das hat den Effekt, daß alle nachfolgenden POI's der Kategorie nicht mehr angezeigt werden.


    Man könnte ja mal ein paar Ideen zusammentragen, was mit einer solchen POI-Verwaltung noch alles gemacht werden könnte.


    @Loc2262 und all die anderen Programmierer. Ich tue mich mit Visual-C für WinCE etwas schwer. Ich habe von C# gelesen, daß es schneller zum fertigen Programm führt. Kennt Ihr eine gute Quelle zur flinken Einarbeitung?


    Mein derzeitiges Tool zur Bearbeitung der POI's ist noch mit dem guten alten Borland C-Compiler geschrieben. Also ein bissel C kann ich.


    BG,Ralf.

  • Bisher habe ich folgende "Syntaxen" herausgefunden:


    ShowCoordinatesOnMap|longitude|latitude|\0x00
    * longitude+latitude in Hunderttausendstel-Grad


    BringNavigatorToFront|\0x00


    FlashMessage|nachricht|anzeigedauer|\0x00
    * nachricht = ASCII-Text
    * anzeigedauer in Tausendstelsekunden


    * "\0x00" am Ende ist überall ein 0-Byte (C-Syntax).

  • Zitat

    Original von bill_gehts?
    SORRY Leute...
    Die Info das man den ProcessId nehmen muß, war leider falsch ....


    Hat mich auch ein bisserl gewundert, denn durch das Verzeichnis ist ja schon klar, daß es "was für Tomtom" ist. :)


    Allerdings wird bestimmt trotzdem eine Process ID benutzt: nämlich die PID des Programms, das da etwas an Tomtom schickt! Es dient nämlich zur Unterscheidung der Antworten an verschiedene Programme. Die zweite .1 könnte dann zur Unterscheidung mehrerer Aufrufe durch das gleiche Programm dienen. Tomtom verwendet in seinem Antwortdateinamen immer die gleichen Nummern.


  • Das heißt doch wohl nicht etwa, daß auch das offizielle SDK diese Nachrichtenaustauschmethode über Dateien verwendet?!? Das wär ja wirklich mal ultra-lame.


    Naja, vielleicht geht Interprozeß-Kommunikation auf dem PPC nicht anders. Aber wie ich die Tomtom-Coder so kenne, waren die einfach nur zu lame oder zu faul, es ordentlich zu machen.


    Jedenfalls umso besser für uns! :P

  • Zitat

    Original von r17158
    Wenn man noch die Syntax korrekt hat, steht einer PPC-Variante des POI-Edit nichts mehr im Weg.


    Hierzu muß ich allerdings direkt sagen, daß dies ein größeres Projekt würde, und ich dazu im Moment zeitlich nicht in der Lage bin. Ich nehme seit gestern an einem Projekt in der Uni teil, da werde ich die nächsten 4-5 Wochen ziemlich "zu" mit sein.


    Ich forsche aber gern weiter mit, und werde bestimmt auch Zeit finden, die "Kleinigkeiten" wie das Go-To-Coordinates zu basteln!

  • Syntax:


    NavigateToFavorite|nr|\0x00


    nr = Nummer des Favoriteneintrages

  • Zitat

    Original von r17158
    @Loc2262 und all die anderen Programmierer. Ich tue mich mit Visual-C für WinCE etwas schwer. Ich habe von C# gelesen, daß es schneller zum fertigen Programm führt. Kennt Ihr eine gute Quelle zur flinken Einarbeitung?


    C# ist um längen schöner als VC++ für WinCE! Zur Einarbeitung habe ich wie üblich allerdings nur die Onlinehilfe und Beispielcode, plus mein aus Delphi vorhandenes Wissen über IDEs, verwendet.

  • Weitere Syntax:


    NavigateToCoordinates|latitude|longitude|titel|\0x00


    lat.+long. in Zehntausendstel-Grad, wie gehabt.
    titel = Irgendein Titeltext für den Zielpunkt


    WICHTIG, das hat ne Weile gedauert bis ichs rausgefunden habe, obwohl es bei näherem Nachdenken völlig logisch ist: der Zielpunkt muß auf einer Straße liegen, sonst akzeptiert Tomtom die Filemessage nicht!


    Bei ShowCoordinatesOnMap ist das nicht so, da kann man auch Koordinaten auf der grünen Wiese (oder im Meer ;) ) angeben. Tomtom setzt dann den Cursor da hin, und der Zielpunkt ist die am nächsten gelegene Straße, genau wie wenn man manuell in der Karte irgendwo in die Pampa tippt.

  • Hallo,


    Zitat

    Original von Loc2262
    Das heißt doch wohl nicht etwa, daß auch das offizielle SDK diese Nachrichtenaustauschmethode über Dateien verwendet?!? Das wär ja wirklich mal ultra-lame.


    Naja, vielleicht geht Interprozeß-Kommunikation auf dem PPC nicht anders. Aber wie ich die Tomtom-Coder so kenne, waren die einfach nur zu lame oder zu faul, es ordentlich zu machen.


    Jedenfalls umso besser für uns! :P


    GENAU! Ich habe mich an die SDK <-> TT5 Kommunikation gemacht, da diese mir
    als einfachere Lösung erschien. Der 2.Weg geht über das Rebuild der Klassen- Header Dateien von der SDK.DLL. Das war mir zu umständlich ...


    Stichwort "ultra - lame":
    Bitte denkt dran : der "Kern" wird in der PPC Version unter Windows CE, in der TTGo Version unter Linux und die TTPhone Version unter Symbian verwendet.
    Was bitte ist hier der gemeinsame Nenner. ActivX ? NamedPipe ? Wohl kaum ...
    Ich vermute das das ganze unter allen TT5 Versionen (PPC,TTGO,Phone) so läuft.
    Laufen nicht die TT5 Karten auch unter TTGO? Sind nicht die data.chk Files von TT5 und TTGo gleich aufgebaut (Poi Warnungs Stimmen Ogg's).
    Auch die tomtom.mnu 's ...
    Ich glaube hier müssen wir das ganze weiter sehn ...



    Grüße
    bill

  • Zitat

    Original von Loc2262
    Hat mich auch ein bisserl gewundert, denn durch das Verzeichnis ist ja schon klar, daß es "was für Tomtom" ist. :)


    Allerdings wird bestimmt trotzdem eine Process ID benutzt: nämlich die PID des Programms, das da etwas an Tomtom schickt! Es dient nämlich zur Unterscheidung der Antworten an verschiedene Programme. Die zweite .1 könnte dann zur Unterscheidung mehrerer Aufrufe durch das gleiche Programm dienen. Tomtom verwendet in seinem Antwortdateinamen immer die gleichen Nummern.


    Das Programm wird am Anfang unterschieden:
    Ich hab mich an das SDK gehalten und "SDK" genommen:


    SDK.TomTomNavigationServer.2413838986.1.message


    Redet TT mit dem Taschenrechner sieht das so aus:


    TomTomNavigationServer.calc.2413838986.1.message


    Ich denke der erste Parameter ist der "VonProgramm",
    der zweite Parameter ist der "ZuProgramm".
    TT ist per Default immer "TomTomNavigationServer".


    Die Bedeutung bekommen wir schon raus ...


    Grüße
    bill

  • Zitat

    Original von bill_gehts?
    Das Programm wird am Anfang unterschieden:
    Ich hab mich an das SDK gehalten und "SDK" genommen:


    SDK.TomTomNavigationServer.2413838986.1.message


    Und was machst Du, wenn zwei Programme gleichzeitig das SDK benutzen? Oder zufällig mal den gleichen Exe-Namen haben? :) So abwegig ist das ja nicht.


    Ne, die längliche Zahl ist bestimmt die Process ID des aufrufenden Programms und dient der Unterscheidung. Oder halt irgend ne andere, vom Programm hoffentlich eindeutig, gewählte Zahl. PID ist dafür gut geeignet, denn es erhalten niemals zwei gleichzeitig laufende Programme die gleiche PID.

    2 Mal editiert, zuletzt von Loc2262 ()

  • Hi,


    Zitat

    Original von Loc2262
    NavigateToCoordinates|latitude|longitude|titel|\0x00


    lat.+long. in Zehntausendstel-Grad, wie gehabt.
    titel = Irgendein Titeltext für den Zielpunkt


    WICHTIG, das hat ne Weile gedauert bis ichs rausgefunden habe, obwohl es bei näherem Nachdenken völlig logisch ist: der Zielpunkt muß auf einer Straße liegen, sonst akzeptiert Tomtom die Filemessage nicht!


    Bist Du Dir da sicher ? Eigentlich routet er dann auch zur nächstgelegen Strasse, ausser die Koordinaten liegen ausserhalb der Karte oder Du bist nicht im NaviView.



    Tschüss.
    LuMe

  • Hi,
    Wie macht TomTom sich denn bemerkbar, wenn der Zielpunkt nicht in der Nähe der Straße liegt.
    Die Funktion könnte man gut zum Ausmisten eigener POI's nehmen. Denn wenn ich mich in der MR Gegend der Pluskarten bewege, kann ich alle POI's löschen, bei denen mir TomTom sagt, "keine Straße in der Nähe gefunden".


    Zitat

    Hierzu muß ich allerdings direkt sagen, daß dies ein größeres Projekt würde, und ich dazu im Moment zeitlich nicht in der Lage bin. Ich nehme seit gestern an einem Projekt in der Uni teil, da werde ich die nächsten 4-5 Wochen ziemlich "zu" mit sein.

    Gut, dann lerne ich mal C#. Die POI-Routinen selbst sind ja eigentlich schon fertig. Fehlt "nur noch" MMI und IPC.


    Noch was, könnt Ihr mal die Funktion "GetLocationInfo..." etwas analysieren. Ist das vielleicht die Position des Cursors auf der Karte?


    Interessant ist auch die Funktion "Geocode" und Verwandte. Damit könnte man eigene Adresslisten Geokodieren und in POI's oder Favoriten umwandeln.


    BG,Ralf.

  • Hi LuMe,
    das meint Loc ja. Bei Navigieren zu Koordinaten navigiert er ja nicht vollständig zu den Koordinaten, sondern der Punkt wandert an den nächstgelegene Straßenpunkt. Ist bei POI's genauso.


    BG,Ralf.