Mit TT5 "reden", aber ohne SDK

  • Oder in nscriptm (siehe Dateianhang ttio.zip) hier (auch im selben thread):
    Beispiel für nscriptm.


    Das SDK selbst wird Dir keiner anbieten können, da es käuflich erworben werden muß, wäre ein Weitergeben entweder:


    a) sehr selbstlos (wenn der Weitergebende es von seiner Platte löscht)
    b) raubkopieren (wenn der Weitergebende es behält)


    Aber wie schon mehrfach bekräftigt: Mit Hilfe von RTFM (=Read The "Fine" Manual = Lesen bildet) kommt man bei TT schon beträchtlich weit.

  • Und nächste Frage: kann ich mit SDK 2 für TomTom 5 programmieren? Passt SDK 2 dafür?

  • OK. Ich habe alles gelesen. Und ich denke, dass ich fast alles verstanden.
    Aber es gibt noch einige Fragen.


    1. In 1 Seite von diesem Thema ist geschrieben:

    Zitat

    Original von bill_gehts?
    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.


    Meine Frage: wie kann ich vorher diese ProcessID bekommen? Oder es ist egal, welche Zahl werde ich im Dateinamen benutzen?



    2. Kann jemand sagen wie kann ich richtig den Befehl im Datei schreiben?
    Z.B.: ich möchte Nachtmodus einschalten.
    Ich schreibe im Datei ...1.message:
    "ChangeSettingV01|2|"


    Aber in SDK gibt es die Funktion
    INT ChangeSetting(TError* aError, ESettingAndValue aSettingAndValue)
    mit 2 Parameter und anderem Namen "ChangeSetting".


    Deshalb eine Frage: wo kann ich diese ChangeSettingV01 (und vieleicht andere ...V01 Funktionen) ansehen? Wo gibt es der korrekte Syntax?

    Einmal editiert, zuletzt von virt-q ()

  • >Meine Frage: wie kann ich vorher diese ProcessID bekommen? Oder es ist >egal, welche Zahl werde ich im Dateinamen benutzen?
    Ist egal, aber besser über GetProcessId den eigenen holen und verwenden !


    >2. Kann jemand sagen wie kann ich richtig den Befehl im Datei schreiben?
    >Z.B.: ich möchte Nachtmodus einschalten.
    >Ich schreibe im Datei ...1.message:
    >"ChangeSettingV01|2|"
    Is richtig, zuerst Kommando dann per | getrennt die Daten, am Ende | und ein 0x00.


    >Aber in SDK gibt es die Funktion
    >INT ChangeSetting(TError* aError, ESettingAndValue aSettingAndValue)
    >mit 2 Parameter und anderem Namen "ChangeSetting".
    Die SDK Funktion ChangeSetting ruft ChangeSettingV01 auf ... ;D



    >Deshalb eine Frage: wo kann ich diese ChangeSettingV01 (und vieleicht >andere ...V01 Funktionen) ansehen? Wo gibt es der korrekte Syntax?
    Schonmal die Navigator.exe von TT im Hexeditor betrachtet ?


    Gruß
    Bill

  • Zitat

    Original von virt-q
    OK. Ich habe alles gelesen. Und ich denke, dass ich fast alles verstanden.
    Aber es gibt noch einige Fragen.


    1. In 1 Seite von diesem Thema ist geschrieben:


    Meine Frage: wie kann ich vorher diese ProcessID bekommen? Oder es ist egal, welche Zahl werde ich im Dateinamen benutzen?


    Hi virt-q,
    Nehm doch einfach die HWND Nummer. GetProccessId () wird, soweit ich weiß von WinCE nicht unterstützt. Dann Deine Befehle durchnummerieren. Also
    MyApplication.TomTomNavigationServer."HWND Number"."Function Enumerator".message





    Die cplusplusapi.html enthält die korrekte Syntax. Nach dem Befehl kommen eventuell noch ein paar Parameter, die mit | voneinander getrennt werden. Am Ende noch ein | und ein NULL character.
    Also z.B. "FlashMessage|Hallo virt-q|3000|\x00".


    BG,Ralf.

  • Danke! Jetzt habe ich verstanden wie es funktioniert.


    Und wie üblich: je mehr du wisst, desto mehr du wissen möchte... :)


    Mit ChangeSetting kann ich einige Parameter wechseln. Aber wie kann ich vorher diese Parameter vom TomTom bekommen?


    Ein Beispiel mit Tag/Nacht-Modus.
    In diesem Moment ist im TomTom Tag-Modus eingestellt.
    Ich möchte Nacht-Modus einschalten.
    Ich soll "ChangeSetting|2|" senden, um das machen. Wenn ich "3" schreibe, passiert es nicht.
    Aber soll meine Anwendung zuerst wissen, welches Modus zur Zeit eingestellt ist. Dann kann sie entscheiden was zu senden: 2 oder 3. Richtig?


    Frage:
    mit welcher Funktion kann ich das erkennen, um den Befehl richtig zu übergeben?

  • Hallo Entwickler von TMC4TT


    geht hier noch was mit der Entwicklung des Tools, oder seit ihr auf unüberwindbare Probleme gestossen.


    da ich weiss, die Hoffung stirbt zuletzt, hoffe ich (wie viele anderen auch) das das Tool doch noch kommt, aber leider hört man in letzter Zeit so wenig von euch, dass der eine oder andere so lagsam ins grübeln kommt, was jetzt eigentlich los ist.


    in stiller Erwartung
    el_junky

  • Wer kann sagen wie die Funktion "IsApplicationRunning" funktioniert?


    Ich schreibe "IsApplicationRunningV01|", aber ich bekomme nur -3.
    Egal, ob TTN im Navi-Modus ist oder nicht.


    Oder gibt es einen Fehler im Befehl?


    Und wer kann auf meine lertze Frage antworten? - wie kann man TTN-Settings erkennen?

  • IsApplicationRunning wird wahrscheinlich gar nicht über das Datei-Interface abgewickelt.


    Ist doch eigentlich klar. Ich persönlich beantworte auch recht selten die Frage "Schläfst Du schon?" wahrheitsgemäß mit "Ja".


    Vermutlich mußt Du die Fensterliste nach dem TomTom Navigator-Fenster absuchen, oder aber einfach einen SDK-Befehl absetzen und nach einer gewissen Wartezeit ohne Antwort darauf schließen, das keiner Da ist zum Antworten.


    Zu den Change-Settings:


    # KCommandNightColors = 2 , use night colours
    # KCommandDayColors = 3 , use day colours


    Den Nachtmodus gibts mit 2 . Den Tag-Modus mit 3 . Was gerade aktiv ist verrät TomTom meines Wissens nicht über das SDK (wie so viele Dinge).


    Wenn es nicht klappt, dann hast Du evtl. einen neuen Fehler im SDK gefunden, das wäre auch nicht besonders verwunderlich.


    Man könnte nun versuchen die undokumentierten *.cfg Dateien entsprechend zu entschlüsseln. Aber auch die würden nur den zuletzt gespeicherten Status der Einstellungen und nicht unbedingt den aktuellen Stand wiedergeben.

  • Zitat

    Original von wombat307
    Man könnte nun versuchen die undokumentierten *.cfg Dateien entsprechend zu entschlüsseln. Aber auch die würden nur den zuletzt gespeicherten Status der Einstellungen und nicht unbedingt den aktuellen Stand wiedergeben.


    Völlig richtig !
    Und damit unbrauchbar ...


    Grüße
    Bill

  • Zitat

    Original von wombat307
    Was gerade aktiv ist verrät TomTom meines Wissens nicht über das SDK (wie so viele Dinge).


    Es müßte ein Gesetz geben (so eine Art Importgesetz)...


    Jede Software muß uneingeschränkt so programmiert sein, daß für jede Funktion SetIrgendwas() eine entsprechende Funktion GetIrgendwas() existiert.


    BG,Ralf.

  • Zitat

    Original von wombat307
    Was gerade aktiv ist verrät TomTom meines Wissens nicht über das SDK (wie so viele Dinge).


    Das wurde auf vielfachen Kundenwunsch nicht implementiert ;D


  • Aus SDK-Dokumentation:


    "4.10. TCurrentPositionInfo structure


    The structure TCurrentPositionInfo has the following fields:


    EGpsStatus iStatus, specifies if the information in this record is recent or not.
    long iLongitude, longitude in 100000ths of a degree (WGS84 format)
    long iLatitude, latitude in 100000ths of a degree (WGS84 format)
    long iSpeedKMh, current driving speed in kilometers per hour
    long iDirection, direction in degrees: zero is north, continuing in clockwise direction"


    Hier ist geschrieben dass iLongitude und iLatitude einen WGS84 format haben. Deshalb denke ich, dass diese Konvertierung (wie im Beispiel: Die 1075553, -> 10°75'553") nicht absolute richtig ist.
    Oder?


    Und zweite Frage (ich kann nicht es momentan prüfen, vieleicht kann jemand sagen):
    welche Zahl-String bekommen wir, wenn iLongitude < 10 ist (z.B. 9°05'258''): 0905258 oder 905258 (ohne 0 am Anfang)?

  • Die Angabe mit Minuten (') und Sekunden ('') ist so nicht richtig. Ja.
    In der von Dir geposteten Doku stehts ja richtig.


    Also 1075553 -> 10,75553°


    Mit der führenden 0. Ziemlich sicher nicht.


    Also 972514 <-> 9,72514°