Dann lies die Doku mal voll durch !
Da ist auch das Fileinterface beschrieben ;D
Ein Beispiel (wenn auch nicht in C++)
findest Du hier :
Mit TT5 "reden", aber ohne SDK
![]()
![]()
![]()
![]()
Grüße
Bill
Dann lies die Doku mal voll durch !
Da ist auch das Fileinterface beschrieben ;D
Ein Beispiel (wenn auch nicht in C++)
findest Du hier :
Mit TT5 "reden", aber ohne SDK
![]()
![]()
![]()
![]()
Grüße
Bill
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:
ZitatOriginal 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?
>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
ZitatOriginal 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
ZitatAlles anzeigen2. 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?
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.
ZitatOriginal 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
ZitatOriginal 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.
ZitatOriginal 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
ZitatAlles anzeigenOriginal von bill_gehts?
1. Ein File erzeugen mit folgendem Inhalt:
GetCurrentPositionV01|.
........
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!
....
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°