Mit TT5 "reden", aber ohne SDK

  • Hallo !


    An "Loc2262" (Frank) und die ganzen anderen Programmierer ....
    Das SDK ist nicht kostenlos ... also bauen wir uns doch selber eins ...! :gap


    Wie bekomme ich TT5 dazu, mir die aktuelle GPS Position zu verraten ?
    (Und andere Funktionen die noch erforscht werden müssen ...)


    Ganz einfach so, wie es das SDK tut...
    Per File !


    Ort des Geschehens:
    \tomtom\SdkFileCalls


    Hier spielt sich alles ab!


    Anfrage an Radio Jerewan: "Wo bin ich ?"


    1. Ein File erzeugen mit folgendem Inhalt:
    GetCurrentPositionV01|.


    (In Hex : 47657443757272656E74506F736974696F6E5630317C00)


    File ablegen mit folgendem Namen:
    SDK.TomTomNavigationServer.2413838986.1.message


    Problem dabei: die 2413838986 ist wahrscheinlich die ProcessID, und die
    ist ja immer anders ... Man muß die vorher von TT rausbekommen.


    2. Ein weiteres File erzeugen ..
    mit Inhalt:
    finish..


    (In Hex : 66696E6973680A00)
    File ablegen mit folgendem Namen:
    SDK.TomTomNavigationServer.2413838986.1.finished


    Hier ist auch wieder die 2413838986 == ProcessId.
    (Die 2413838986 steht hier nur als Beispiel drin ...)


    Beide der Reihe nach (erst .message dann .finished) in den
    \tomtom\SdkFileCalls Ordner.


    Und, oh Wunder,beide File verschwinden gleich wieder und es tauchen
    2 neue auf:


    TomTomNavigationServer.SDK.2413838986.1.message
    und
    TomTomNavigationServer.SDK.2413838986.1.finished


    Nun seht Euch mal den Inhalt an ! ;)
    Besondes der Inhalt des message File sieht verdammt nach der GPS
    Position aus:
    "0|1|1075553|4584492|0|222|."


    Aha! Das | (0x7c) ist der Parametertrenner ...
    Die 0, keine Ahnung!
    Die 1, -> GPS Status OK. (0 -> keine sichere GPS Position)
    Die 1075553, -> 10°75'553"
    Die 4584492, -> 45°84'492" (hier nur als Bsp!!!)
    Die 0, keine Ahnung! (vieleicht 0km/h, nur wie tu ich meinen Debuger horizontal beschleunigen HILFÄ!)
    Die 222, keine Ahnung!


    Ich bin mir aber sicher, WIR bekommen das auch noch raus ... : drink


    Das ganze ist nur mal so als Bsp. gedacht. Es gibt noch mehr Funktionen ...


    Gruß
    Bill


    PS:
    Tip wie Ihr ohne erst ein CE Programm zu schreiben an den ProcessId herrankommt:


    Z.Bsp über den "Taschenrechner":
    Im *.cap File, einfach dem "Calc" ein Parameter mitgeben:


    COMMAND|CMD|PARAMETER|calc.bmp|Taschenrechner|


    Nach aufruf über Menü legt TT 2 Files an:
    TomTomNavigationServer.calc.2413838986.1.message
    TomTomNavigationServer.calc.2413838986.1.finished


    ---> nun hat man den aktuellen ProcessID ....

  • reteir:


    Das ist ja mal ne geile Sache, wie hast Du das denn rausgefunden? :)


    Ich hab grad mal angefangen zu forschen. Also die ProcessID vom Tomtom rauszukriegen ist dank OpenNETCF kein Problem. Damit kann ich alle laufenden Prozesse enumerieren und erhalte ihre IDs und Exe-Namen. Vorausgesetzt niemand benennt "TomTomNavigator.exe" um, klappt das. :)


    Zu den Message-Dateien teste ich gleich mal was und melde mich wieder.

  • Erster Erfolg: ShowCoordinatesOnMap


    Bewirkt: Tomtom öffent die Rollkarte und der Cursor springt zu den übergebenen geographischen Koordinaten!


    Damit kann ich jetzt eine Nobel-Version des TomTomGoToCoordinates bauen! Keine Tricksereien mehr über die Letzte-Ziele-Liste! Kein Karten-Entladen mehr nötig!

  • Zitat

    Original von bill_gehts?
    [quote]"0|1|1075553|4584492|0|222|."


    Die 1 gibt (korrekt, billgehts! an, ob der Fix okay ist. >0 okay, <0 ungültig. Danach kommen wie Du richtig schriebst die Koordinaten in Länge|Breite, allerdings nicht in Deinem Format, sondern als 100000stel-Grad. Umzurechnen wie gehabt durch paarmal durch 60 teilen. Die 0 danach ist die Geschwindigkeit, die 222 die Fahrtrichtung.

  • Nächste funktionierende Kommandos:


    BringNavigatorToForeground
    FlashMessage (zeigt eine dieser blinkenden Weiß-auf-Schwarz Nachrichten an)

  • :applaus Das ist das Beste, was ich in den letzten paar Wochen gelesen habe :applaus
    Jetzt fehlt nur noch eine Funktion, die die Koordinaten der aktuell angezeigten Cursorposition (bei Karte rollen) mitteilt.


    BG,Ralf.

  • Ein Hallo in die Runde !!!


    Eine Bitte habe ich:
    Wenn jemand einen neues Kommando erforscht hat,
    besonders eins wo man Parameter übergeben muß, bitte
    hier ein Bsp posten. Das würde allen helfen, und keiner müßte
    doppelt "forschen".


    Danke
    bill


    PS:
    Boss71 Na auch schon im SDK die Befehlsliste gefunden ?
    Aber Vorsicht, nicht alle Befehle sind über das File machbar.
    (Hab ich so jedenfals erfahren...) Denn wozu ist in der SDK DLL nochmal
    ein kompl. COM/Bluetooth Stack enthalten ...


    Und noch eins:
    Die Funktion ShowCoordinatesOnMap und GoTo ...
    das in einem externen Programm, und das wie beschrieben ins
    Menü einbinden .... wäre eine runde Sache !


    Hatte da nicht einer gefragt warum wir den Taschenrechner einbinden ? ;) ;)

  • Zitat

    Original von bill_gehts?
    Wenn jemand einen neues Kommando erforscht hat,
    besonders eins wo man Parameter übergeben muß, bitte
    hier ein Bsp posten.


    Yepp, werd ich machen! Ich stell "meine" nachher mal zusammen.


    Zitat

    Boss71 Na auch schon im SDK die Befehlsliste gefunden ?


    Das SDK habe ich nicht (hast Du das?), aber im TomtomNavigator.exe stehen die Befehle auch als ASCII-Texte drin. :)


    Möchte jemand ein externes GPS-Modul programmieren? Ein besseres als in Tomtom? ;) Es gibt Befehle "Enable/DisableExternalGPSInput".


    Zitat

    Und noch eins:
    Die Funktion ShowCoordinatesOnMap und GoTo ...
    das in einem externen Programm, und das wie beschrieben ins
    Menü einbinden .... wäre eine runde Sache !


    Das werde ich machen, definitiv!

  • Hallo,


    das SDK hab ich auch nicht, zu teuer !(195$)
    ABER
    Man kann die SDK DLL bei denen finden, die Sie einsetzen ...
    Bsp POIWarner:
    Der installiert eine TTSDK5LINK.DLL in den Windows Ordner ...
    SOOOOO ein seltsamer Name ...
    Einfach mal mit dem dem Dependency Walker drüber ... (im Microsoft SDk, oder beim Visual6.0 dabei ...)
    Ab Addr 0x00015E90 stehen die Befehle ...
    Ab Addr 0x00016170 stehen die printf (wsprintf) Vorlagen für den
    FileNamen "Zusammenbau" ...


    Ich habe leider im Moment kein CE Compiler + SDK installiert ...
    Im neuen Visual2005 soll aber auch die PPC Plattform drin sein, auf das warte ich im Moment. Ansonsten hätte ich nur das CE3.0SDK ...


    Grüße
    bill

  • Hallo Leute,
    wie ich das sehe, steht damit auch einem POI-Edit für PPC nichts mehr im Wege. Man kann dann sogar auf der Karte zeigen, wo sich der POI befindet. Einziger Knackpunkt ist noch, TT dazu zu bewegen, die POI's nach einer Änderung neu zu laden. Gibt es sowas, wie ReloadPOICategory oder etwas in der Richtung?


    BG,Ralf.

  • Hallo,


    ich weiss nicht, ob's hilft, jedenfalls gibt's HIER ein Manual zum SDK v2.0 auf der TomTom-Seite (über Google gefunden).


    Obwohl veraltet, gibt es doch Aufschluss bezüglich der Parameter (in/out) einiger Befehle.


    Tschüss,
    LuMe

  • Hallo,
    Hier mal die bisher gefundenen Fkt.


    GetRouteCoordinatesV01
    StopApplicationV01
    GetApplicationVersionV01
    FlashMessageV01
    GetDataSetInfoV01
    GetUniqueDeviceIdV01
    NavigateToCoordinatesV01
    NavigateToFavoriteV01
    NavigateToAddressV01
    ShowAddressOnMapV01
    ShowCoordinatesOnMapV01
    ShowRectangleOnMapV01
    GetLocationInfoV01
    GetLocationInfoExV01
    GetRouteInfoV01
    ChangeSettingV01
    SwitchMapV01
    SetNavigatorPropertyV01
    GetCurrentPositionV01
    GeocodeV01
    GeocodeExtendedV01
    ClearFavoriteV01
    SetFavoriteV01
    GetFavoriteV01
    MakePoiVisibleV01
    AddPoiV01
    DeleteClosestPoiV01
    DeleteAllPoiV01
    MakeUserPoiVisibleV01
    MoveClosestPoiV01
    BringNavigatorToForegroundV01
    SwitchToNavigatorViewV01
    EnableExternalGPSInputV01
    DisableExternalGPSInputV01


    aus Zeitgründen habe ich bisher nur "GetCurrentPositionV01"
    ausprobiert (Siehe Anfangsposting)


    Mit dem SDK Pdf erschließen sich einige Funktionen.
    Die alten GPS Funktionen werden aber nicht mehr gehen.


    Gruß
    Bill

  • Hallo Ralf,


    ein ReloadPOICategory scheint es nicht zu geben.


    Aber vieleicht mit Trick17...


    Es gibt ja SwitchMapV01.
    Also z.B. von der D Karte weg zu einer andern wechseln.
    Dann die POI's editieren, um dann wieder zur D Karte
    zurückzukehren.


    Das ganze automatisch ...


    Oder du verwaltest die POI über TT direkt mit
    AddPoiV01
    MakePoiVisibleV01
    DeleteClosestPoiV01
    DeleteAllPoiV01


    ...



    Grüße

  • SORRY Leute...


    Die Info das man den ProcessId nehmen muß, war leider falsch ....


    Es geht bei mir auch mit


    "SDK.TomTomNavigationServer.1.1.message"


    Es macht aber durchaus Sinn die 1. Zahl eineindeutig zu machen, um
    die Antworten zuordnen zu können.
    (z.B. mit GetTickCount())


    SORRY