zoulou
Ist gelegentlich hier
- Registriert
- 9. Oktober 2010
- Beiträge
- 86
- Reaktionspunkte
- 386
- Punkte
- 73
|
|
MixSerDrv erlaubt Navigon (oder anderer Navigations-Software) den Zugriff auf einen RoyalTek, Locosys oder Wistron TMC Chip und damit kann Navigon auch auf China Navis TMC und TMCPro Meldungen anzeigen und zur dynamischen Routenführung verwenden.
Aktuelle Version: v2.5 (11.05.2012)
Was genau ist MixSerDrv?
Es ist ein virtueller COM Port Treiber für WinCE. Er stellt einen zusätzlichen COM Port zur Verfügung, der eine Protokollumsetzung zwischen dem RoyalTek, OpenTMC oder GNS Protokoll des TMC Chips und dem GNS oder AmarylloDynamics TMC Protokoll der Navigationssoftware durchführt. Damit kann Navigon auf die TMC Meldungen zugreifen, die der TMC Chip von sich gibt.
Ursprünglich entstand das Tool für 2-DIN "China RNS" Geräte, auf denen auch Windows CE zum Einsatz kommt.
Ausdrücklich bedanken müßt ihr(!) Euch beim User Achsel, der mit seiner Beharrlichkeit dafür gesorgt hat, dass ich über den China-RNS Tellerrand geschaut habe und den MixSerDrv auch für PNAs angepaßt habe.
Ist es mit dem MixSerDrv also möglich jeden x-beliebigen TMC Empfänger in jeder x-beliebigen Navi SW zum Laufen zu bekommen? Einfache Antwort: NEIN
Kompatibilität:
MixSer funktioniert NUR mit folgenden Navigon Mobile Navigator Versionen in Verbindung mit einem Royaltek, Locosys, Wistron oder GNS TMC Chip.
MN7.4.3 + MixSer - TMC OK
MN7.4.6 (build 763) + MixSer - TMC OK (thanks to karlchen1)
MN7.5.9 + MixSer - TMC OK (thanks to karlchen1)
MN7.6.3 + MixSer - TMC OK
MN7.7.5 + MixSer - TMC OK
MN7.7.6 + MixSer - TMC OK (Navigon LIVE muss deaktiviert sein!)
MN8.2.5 + MixSer - TMC OK (auf PNA!, thanks to GIN-Power)
Änderungshistorie:
Version 2.5:
- Unterstützung von GNS TMC Receivern für AmarylloDynamics Protokoll und damit für Navigon 7.6.3, 7.7.6, 8.2.5, etc.
- NEU: GNS spezifischer Parameter GNS_TMC_DATA_TIMEOUT
- PcTmcHalPatcher.exe funktioniert jetzt wirklich
- Für RoyalTek: "edinho" Fix (Senden von Initialisierungskommandos)
Version 2.0:
- Unterstützung für AmarylloDynamics Protokoll und damit für Navigon 7.6.3 und 7.7.6 (und vielleicht noch mehr?)
Version 1.4:
- Bugfix: Beim Wechsel des Geräts in den Standby Modus UND aktiviertem DEBUG=1 friert Navigon ein
- Bugfix: Auf manchen Systemen wird Navigon extrem(!) langsam bzw. unbedienbar bei aktiviertem DEBUG = 1
- Bugfix: "Parse Error" bei manchen Wistron Chips
- SNIFF_MODE protokolliert auch DeviceIoControl Aufrufe
Version 1.3:
- OpenTMC Protokoll Unterstützung auch für Wistron TMC Tuner
- NeuesFeature "Serial Port Sniffer"
Version 1.2:
- Zusätzlich zum RoyalTek Protokoll wird jetzt auch OpenTMC Protokoll unterstützt. Damit funktionieren auch (manche!) Locosys TMC Tuner. Die Erkennung erfolgt vollautomatisch, keine Einstellungen notwendig. Wistron Tuner werden ausdrücklich nicht funktionieren, obwohl diese auch OpenTMC benutzen (warten auf v1.3!).
- Neues Feature: "Start Frequenz vorgeben" (default: ausgeschaltet)In der MixSerNaviStarter.mscr kann man dem MixSerDrv eine TMC_START_FREQ mitgeben. Auf diese Frequenz stellt MixSerDrv den Tuner ein, wenn die Navigationssoftware zum ersten Mal den MixSerDrv benutzt. Sehr nützlich um eine TMCPro Frequenz als Standard einzustellen. Wenn die eingestellte Startfrequenz momentan keinen RDS/TMC Empfang bietet (weil man in einer anderen Stadt ist), dann wird die Navigationssoftware nach ca 30 Sekunden nach neuen Sendern suchen.
Version 1.1: "Speed up startup"
- Vollständige Daten für das "Authentifizierungsverfahren" (mixser_tmc.bin). Damit erscheint das rote TMC Symbol immer praktisch sofort nach Start von Navigon.
- Beim Start von Navigon wird die aktuell vom TMC Chip eingestellte Senderfrequenz nicht geändert. Der RoyalTek Chip speichert die zuletzt eingestellte Frequenz automatisch. Damit wird bei einem Start von Navigon die zuletzt eingestellte Frequenz bebehalten und die Zeit bis zur ersten TMC Meldung enorm verkürzt.
- Das MixSerNaviStarter.mscr Skript drückt jetzt automatisch den STVO Hinweis weg.
Bekannte Probleme:
- Amaryllo-basierende, externe TMC Adapter sollten NICHT mit MixSerDrv v2.5 betrieben werden, sondern mit MixSerDrv v2.0
Installation:
Entpacke das MixSerDrv_v2.5.zip auf die SD Karte im Hauptverzeichnis. Es entstehen zwei Verzeichnisse:
1) "MixSer" mit folgenden Dateien:
MixSerDrv.dll (der eigentliche Treiber)
mixser_tmc.bin (Hilfsdatei für den Treiber zur Lösung des "Authentifizierungsproblems")
activatedevice.exe (Hilfsprogramm zur Aktivierung des Treibers)
MixSerNaviStarter.mscr (Mort Skript um den Treiber zu installieren und zu konfigurieren)
MixSerNaviStarter.exe (Mortscript Runner für das obige Skript, muss genau so heißen wie das Skript!!)
MortScript.exe (zum Ausführen des obigen Skripts)
2) "TmcHalPatch" mit folgenden Dateien
TmcHal.dll (Original TmcHal.dll Datei aus der Navigon 7.6.2 Version)
PcTmcHalPatcher.exe (ein PC Programm um den COM Port in genau dieser obigen TmcHal.dll zu ändern, unbedingt mit Admin Rechten starten!)
Konfiguration auf das System:
Folgendes musst Du selbst über dein Gerät wissen:
a) Hat das Gerät noch einen freien, unbenutzten COM Port frei? Hier kann mein MixSerTester hilfreich sein. Siehe weiter unten.
b) An welchem COM Port ist der TMC Chip angebunden?
c) Wie lautet der Windows Pfad der SD Karte? z.B. "Storage Card", "StorageCard", "SDMMC" usw.
Mit diesem Wissen gehts los:
1)
Das Mortskript MixSerNaviStarter.mscr enthält am Anfang einige Variablen, die auf das eigene System angepaßt werden müssen. Standardmäßig stehen hier Daten, die für mein System mit Windows CE 6.0 passen. Die MixSerNaviStarter.mscr enthält (englische) Kommentare, die beschreiben was/wie geändert werden kann/muss.
Die wichtigsten Variablen sind:
INSTALLDIR (wegen Pfad zur SD Karte)
MIXSER_PORT (der freie, unbenutzte COM Port)
TMC_PORT (der COM Port des TMC Chips)
TMC_BAUD (ist meist 38400, das muss aber nicht sein!)
NAVI_SW_PATH (wegen Pfad zur SD Karte)
Eine wirklich detaillierte Fassung der Beschreibung des kompletten Inhalts der MixSerNaviStarter.mscr gibts weiter unten.
2)
In der NAVIGON / (MN)Settings / UserSettings.xml muss der MIXSER_PORT eingetragen werden, damit Navigon auf den neuen COM Port zugreift:
3) (Folgendes NUR für Navigon mit AmarylloDynamics TMC Protokoll nötig !)
Die Datei NAVIGON / TmcHal.dll muss ausgetauscht werden, gegen die von mir im Verzeichnis "TmcHalPatch" gelieferte Version. Die TmcHal.dll existiert nur in Navigon Versionen, welche AmarylloDynamics TMC Protokoll unterstützen (also z.B. 7.6.3 oder 7.7.6).
Die TmcHal.dll ist NICHT konfigurierbar, über welchen COM Port der MixSerDrv angesprochen werden soll. Die original TmcHal.dll ist fest auf COM6 eingestellt.
Falls also bei deinem System der COM6 nicht mehr frei ist um dorthin den MixSerDrv zu installieren (MIXSER_PORT), dann kannst du auch einen anderen, freien COM Port wählen. Dann muss entsprechend der MIXSER_PORT Einstellung die TmcHal.dll gepatcht werden.
Daher habe ich den PcTmcHalPatcher dazugelegt. Er ermöglicht meine mitgelieferte Version der TmcHal.dll auf einen anderen COM Port zu stellen. Unbedingt mit Admin Rechten starten!!
ACHTUNG: Es gibt gefühlte tausend Varianten der TmcHal.dll von Navigon. Ich kann nur für meine Version eine Anleitung und eine Erfolgsaussicht.
4) Starten der Navi Software und vorheriges aktivieren des MixSerDrv:
PNA Nutzer müssen den Weg beschreiten, der zur Freilegung des Desktops auf dem jeweiligen PNA möglich ist. Es gibt keine allgemeingültige Antwort darauf, wie das bei PNA xyz geht. Dafür gibt es dieses Forum an anderer Stelle oder Google.
Das Ziel muss sein, irgendwie die MixSerNaviStarter.exe (oder auch nur das gleichnamige Skript) in den Startvorgang des PNA einzubinden.
FERTIG !
Download
ANHANG A:
Details zur MixSerNaviStarter.mscr
Ziel des Skriptes ist es:
- Installieren des MixSerDrv
- Starten der Navi SW
- Wegklicken des STVO Disclaimers.
Es ist gut, wenn man alle Fehlermeldungen angezeigt bekommt, die während der Skriptausführung passieren könnten, z.B. SD Karten Pfad wurde nicht angepaßt. Also beginnt das Skript so:
Dann folgen einige Variablen, die von Gerät zu Gerät unterschiedlich sind und von Dir evtl. angepaßt werden müssen.
Wie heißt das Navi SW Fenster und wie lautet der Prozessname?
Falls der Navi SW Prozess schon existiert, dann ist das Skript wohl schon einmal durchgelaufen und soll somit nicht nochmal laufen (kann eine seltsame Fehlermeldung geben) und besser das Fenster in den Vordergrund holen.
Wie lautet der Pfad zum Speicherort des MixSer Verzeichnisses? Wichtig! Verschiedene Hersteller vergeben verschiedene Namen für den SD-Karten Slot, z.B. "SDMMC" oder "Storage Card". Meist lautet er aber "Storage Card".
Dein Gerät muss einen freien, unbenutzten COM Port zwischen 0 und 9 haben, damit das mit dem MixSer überhaupt klappt.
Dieser COM Port muss dann in den Einstellungen der Navi SW als COM Port für den TMC Chip angegeben werden.
Der MixSer wiederum muss wissen, wo er den "echten" TMC Empfänger findet und mit welcher Baudrate er den TMC Chip ansprechen soll. Frag nicht mich, an welchem Port dein TMC Chip angebunden ist. Ich habe keine Ahnung!
Sehr nützliches Feature: Der MixSer kann den TMC Chip gleich zu Beginn auf eine Startfrequenz einstellen. Dann entfällt das zeitraubende Abscannen der FM Frequenzen und man hat praktisch sofort TMC Empfang.
Die Wistron TMC Empfänger haben eine seltsame Auslegung des OpenTMC Protokolls implementiert und reagieren extrem empfindlich, wenn man gewisse Kommandos zu Beginn der Kommunikation sendet. Daher kann man dem MixSer sagen, er solle keine Initialiserungskommandos senden (mit ... = 1)
Dann gibt es einige TMC Empfänger von Wistron und RoyalTek, die auf Kommandos des MixSer keine Antworten zurücksenden. Normalerweise erwartet der MixSer das aber. Hier kann man das abschalten (mit ... = 1)
Navigon Versionen mit Amaryllo Protokoll (also 7.6.3, 7.7.6 und 8.2.5, etc) verlassen sich darauf, dass der TMC Chip eine gewisse Eigenlogik mitbringt, was das Suchen nach FM/RDS/TMC Empfang angeht. Dummerweise haben GNS Empfänger diese Logik nicht.
Und so kann man dem MixSer hier mitteilen, nach wievielen Sekunden ohne TMC Meldungen (RDS Group 3A oder 8A Nachrichten) der MixSer dem TMC Chip das Kommando zum Weiterscannen geben soll.
(Angabe ist in Millisekunden, 1 Sekunde = 1000 Millisekunden)
Falls jemand Probleme hat, TMC mit MixSer zum Laufen zu bekommen, dann kan man hier aktivieren, dass MixSerDrv eine Log Datei anlegt.
Die Variablen, die der MixSer Treiber zur Arbeit braucht, werden ihm per Registry übergeben.
Die Werte in der Registry sind so gewählt, dass der MixSerDrv nicht automatisch beim Booten des Gerätes gestartet wird, sondern erst dann wenn der Aufruf von activatedevice.exe erfolgt.
Das Tool activatedevice.exe macht nichts anderes als das was im MSDN bzgl. ActivateDeviceEx() steht.
Jetzt ist alles bereit um die Navi SW zu starten.
Dann geben wir Navigon etwas Zeit um zu starten und die blöde Meldung (aka STVO Disclaimer) anzuzeigen. 30 Sekunden sollte für alle erstmal ausreichend Zeit sein. Jeder kann die minimal nötige Zeit hier natürlich selbst einstellen.
Und jetzt noch den "OK" Button mit der "Maus" treffen (je nach Auflösung des Bildschirms sind das natürlich unterschiedliche Koordinaten, also sucht euch eure Auflösung raus) und wir sind fertig und beenden das Skript.
ANHANG B:
Wer Probleme hat mit dem Rausfinden der COM Port Settings... es gibt zwar schon ne Menge anderer Tools, aber meins hat hier evtl. ein paar Vorteile.
Das MixSerTester Tool dient zum Finden der korrekten Einstellungen für Navigon's UserSettings.xml und MixSer's MixSerNaviStarter.mscr
Ausserdem kann das Tool versuchen die Version des TMC Chips abzufragen, bei Klick auf den "Ident" Button.
Mit dem Tool kann man per "Try and Error" alle COM Ports (0...9) und gängigen Baudrates (2400...115200) durchprobieren. Wenn dann im Ausgabefenster entweder GPS NMEA bzw. RoyalTek oder OpenTMC Meldungen angezeigt werden, dann hat man die COM Port Einstellungen gefunden und kann sie in die jeweiligen Dateien (per Hand!) eintragen. Wenn nötig lassen sich die Ausgaben auch in eine Datei ausgeben (Haken bei "Save to file").
Hier eine Hilfestellung zur Identifikation der Ausgaben (Fragen: Was ist der GPS Port, Welche TMC Hardware ist verbaut):
Ausgaben des GPS Ports beginnen z.B. mit
$GPRMC, $GPGGA, $GPGSA, $GPGSV, $GPVTG
Ausgaben eines Royaltek TMC Chips beginnen z.B. mit
$RTTMC, $RTRDS
Ausgaben eines OpenTMC Tuners (mehrere Hersteller: z.B. Locosys, Wistron) beginnen z.B. mit
$PLTTQ, $PLTTR, $PLTSR
|
MixSerDrv erlaubt Navigon (oder anderer Navigations-Software) den Zugriff auf einen RoyalTek, Locosys oder Wistron TMC Chip und damit kann Navigon auch auf China Navis TMC und TMCPro Meldungen anzeigen und zur dynamischen Routenführung verwenden.
Aktuelle Version: v2.5 (11.05.2012)
Was genau ist MixSerDrv?
Es ist ein virtueller COM Port Treiber für WinCE. Er stellt einen zusätzlichen COM Port zur Verfügung, der eine Protokollumsetzung zwischen dem RoyalTek, OpenTMC oder GNS Protokoll des TMC Chips und dem GNS oder AmarylloDynamics TMC Protokoll der Navigationssoftware durchführt. Damit kann Navigon auf die TMC Meldungen zugreifen, die der TMC Chip von sich gibt.
Ursprünglich entstand das Tool für 2-DIN "China RNS" Geräte, auf denen auch Windows CE zum Einsatz kommt.
Ausdrücklich bedanken müßt ihr(!) Euch beim User Achsel, der mit seiner Beharrlichkeit dafür gesorgt hat, dass ich über den China-RNS Tellerrand geschaut habe und den MixSerDrv auch für PNAs angepaßt habe.
Ist es mit dem MixSerDrv also möglich jeden x-beliebigen TMC Empfänger in jeder x-beliebigen Navi SW zum Laufen zu bekommen? Einfache Antwort: NEIN
Kompatibilität:
MixSer funktioniert NUR mit folgenden Navigon Mobile Navigator Versionen in Verbindung mit einem Royaltek, Locosys, Wistron oder GNS TMC Chip.
MN7.4.3 + MixSer - TMC OK
MN7.4.6 (build 763) + MixSer - TMC OK (thanks to karlchen1)
MN7.5.9 + MixSer - TMC OK (thanks to karlchen1)
MN7.6.3 + MixSer - TMC OK
MN7.7.5 + MixSer - TMC OK
MN7.7.6 + MixSer - TMC OK (Navigon LIVE muss deaktiviert sein!)
MN8.2.5 + MixSer - TMC OK (auf PNA!, thanks to GIN-Power)
Änderungshistorie:
Version 2.5:
- Unterstützung von GNS TMC Receivern für AmarylloDynamics Protokoll und damit für Navigon 7.6.3, 7.7.6, 8.2.5, etc.
- NEU: GNS spezifischer Parameter GNS_TMC_DATA_TIMEOUT
- PcTmcHalPatcher.exe funktioniert jetzt wirklich

- Für RoyalTek: "edinho" Fix (Senden von Initialisierungskommandos)
Version 2.0:
- Unterstützung für AmarylloDynamics Protokoll und damit für Navigon 7.6.3 und 7.7.6 (und vielleicht noch mehr?)
Version 1.4:
- Bugfix: Beim Wechsel des Geräts in den Standby Modus UND aktiviertem DEBUG=1 friert Navigon ein
- Bugfix: Auf manchen Systemen wird Navigon extrem(!) langsam bzw. unbedienbar bei aktiviertem DEBUG = 1
- Bugfix: "Parse Error" bei manchen Wistron Chips
- SNIFF_MODE protokolliert auch DeviceIoControl Aufrufe
Version 1.3:
- OpenTMC Protokoll Unterstützung auch für Wistron TMC Tuner
- NeuesFeature "Serial Port Sniffer"
Version 1.2:
- Zusätzlich zum RoyalTek Protokoll wird jetzt auch OpenTMC Protokoll unterstützt. Damit funktionieren auch (manche!) Locosys TMC Tuner. Die Erkennung erfolgt vollautomatisch, keine Einstellungen notwendig. Wistron Tuner werden ausdrücklich nicht funktionieren, obwohl diese auch OpenTMC benutzen (warten auf v1.3!).
- Neues Feature: "Start Frequenz vorgeben" (default: ausgeschaltet)In der MixSerNaviStarter.mscr kann man dem MixSerDrv eine TMC_START_FREQ mitgeben. Auf diese Frequenz stellt MixSerDrv den Tuner ein, wenn die Navigationssoftware zum ersten Mal den MixSerDrv benutzt. Sehr nützlich um eine TMCPro Frequenz als Standard einzustellen. Wenn die eingestellte Startfrequenz momentan keinen RDS/TMC Empfang bietet (weil man in einer anderen Stadt ist), dann wird die Navigationssoftware nach ca 30 Sekunden nach neuen Sendern suchen.
Version 1.1: "Speed up startup"
- Vollständige Daten für das "Authentifizierungsverfahren" (mixser_tmc.bin). Damit erscheint das rote TMC Symbol immer praktisch sofort nach Start von Navigon.
- Beim Start von Navigon wird die aktuell vom TMC Chip eingestellte Senderfrequenz nicht geändert. Der RoyalTek Chip speichert die zuletzt eingestellte Frequenz automatisch. Damit wird bei einem Start von Navigon die zuletzt eingestellte Frequenz bebehalten und die Zeit bis zur ersten TMC Meldung enorm verkürzt.
- Das MixSerNaviStarter.mscr Skript drückt jetzt automatisch den STVO Hinweis weg.
Bekannte Probleme:
- Amaryllo-basierende, externe TMC Adapter sollten NICHT mit MixSerDrv v2.5 betrieben werden, sondern mit MixSerDrv v2.0
Installation:
Entpacke das MixSerDrv_v2.5.zip auf die SD Karte im Hauptverzeichnis. Es entstehen zwei Verzeichnisse:
1) "MixSer" mit folgenden Dateien:
MixSerDrv.dll (der eigentliche Treiber)
mixser_tmc.bin (Hilfsdatei für den Treiber zur Lösung des "Authentifizierungsproblems")
activatedevice.exe (Hilfsprogramm zur Aktivierung des Treibers)
MixSerNaviStarter.mscr (Mort Skript um den Treiber zu installieren und zu konfigurieren)
MixSerNaviStarter.exe (Mortscript Runner für das obige Skript, muss genau so heißen wie das Skript!!)
MortScript.exe (zum Ausführen des obigen Skripts)
2) "TmcHalPatch" mit folgenden Dateien
TmcHal.dll (Original TmcHal.dll Datei aus der Navigon 7.6.2 Version)
PcTmcHalPatcher.exe (ein PC Programm um den COM Port in genau dieser obigen TmcHal.dll zu ändern, unbedingt mit Admin Rechten starten!)
Konfiguration auf das System:
Folgendes musst Du selbst über dein Gerät wissen:
a) Hat das Gerät noch einen freien, unbenutzten COM Port frei? Hier kann mein MixSerTester hilfreich sein. Siehe weiter unten.
b) An welchem COM Port ist der TMC Chip angebunden?
c) Wie lautet der Windows Pfad der SD Karte? z.B. "Storage Card", "StorageCard", "SDMMC" usw.
Mit diesem Wissen gehts los:
1)
Das Mortskript MixSerNaviStarter.mscr enthält am Anfang einige Variablen, die auf das eigene System angepaßt werden müssen. Standardmäßig stehen hier Daten, die für mein System mit Windows CE 6.0 passen. Die MixSerNaviStarter.mscr enthält (englische) Kommentare, die beschreiben was/wie geändert werden kann/muss.
Die wichtigsten Variablen sind:
INSTALLDIR (wegen Pfad zur SD Karte)
MIXSER_PORT (der freie, unbenutzte COM Port)
TMC_PORT (der COM Port des TMC Chips)
TMC_BAUD (ist meist 38400, das muss aber nicht sein!)
NAVI_SW_PATH (wegen Pfad zur SD Karte)
Eine wirklich detaillierte Fassung der Beschreibung des kompletten Inhalts der MixSerNaviStarter.mscr gibts weiter unten.
2)
In der NAVIGON / (MN)Settings / UserSettings.xml muss der MIXSER_PORT eingetragen werden, damit Navigon auf den neuen COM Port zugreift:
Code:
<TMC>
(...)
<PreferPay>1</PreferPay> --> für TMCPro Nachrichten
<TMCPort>6</TMCPort> --> muß dem MIXSER_PORT entsprechen
<TMCBaudrate>38400</TMCBaudrate> --> eigentlich egal
<DRVPrefix>COM</DRVPrefix> --> muss COM sein, nicht RDS
(...)
</TMC>
Die Datei NAVIGON / TmcHal.dll muss ausgetauscht werden, gegen die von mir im Verzeichnis "TmcHalPatch" gelieferte Version. Die TmcHal.dll existiert nur in Navigon Versionen, welche AmarylloDynamics TMC Protokoll unterstützen (also z.B. 7.6.3 oder 7.7.6).
Die TmcHal.dll ist NICHT konfigurierbar, über welchen COM Port der MixSerDrv angesprochen werden soll. Die original TmcHal.dll ist fest auf COM6 eingestellt.
Falls also bei deinem System der COM6 nicht mehr frei ist um dorthin den MixSerDrv zu installieren (MIXSER_PORT), dann kannst du auch einen anderen, freien COM Port wählen. Dann muss entsprechend der MIXSER_PORT Einstellung die TmcHal.dll gepatcht werden.
Daher habe ich den PcTmcHalPatcher dazugelegt. Er ermöglicht meine mitgelieferte Version der TmcHal.dll auf einen anderen COM Port zu stellen. Unbedingt mit Admin Rechten starten!!
ACHTUNG: Es gibt gefühlte tausend Varianten der TmcHal.dll von Navigon. Ich kann nur für meine Version eine Anleitung und eine Erfolgsaussicht.
4) Starten der Navi Software und vorheriges aktivieren des MixSerDrv:
PNA Nutzer müssen den Weg beschreiten, der zur Freilegung des Desktops auf dem jeweiligen PNA möglich ist. Es gibt keine allgemeingültige Antwort darauf, wie das bei PNA xyz geht. Dafür gibt es dieses Forum an anderer Stelle oder Google.
Das Ziel muss sein, irgendwie die MixSerNaviStarter.exe (oder auch nur das gleichnamige Skript) in den Startvorgang des PNA einzubinden.
FERTIG !
Download
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
ANHANG A:
Details zur MixSerNaviStarter.mscr
Ziel des Skriptes ist es:
- Installieren des MixSerDrv
- Starten der Navi SW
- Wegklicken des STVO Disclaimers.
Es ist gut, wenn man alle Fehlermeldungen angezeigt bekommt, die während der Skriptausführung passieren könnten, z.B. SD Karten Pfad wurde nicht angepaßt. Also beginnt das Skript so:
Code:
# Enable all script error messages
ErrorLevel ( "warn" )
Dann folgen einige Variablen, die von Gerät zu Gerät unterschiedlich sind und von Dir evtl. angepaßt werden müssen.
Wie heißt das Navi SW Fenster und wie lautet der Prozessname?
Code:
NAVI_SW_WINDOW_TITLE = "Mobile Navigator"
NAVI_SW_PROCESS_NAME = "navigon.exe"
Falls der Navi SW Prozess schon existiert, dann ist das Skript wohl schon einmal durchgelaufen und soll somit nicht nochmal laufen (kann eine seltsame Fehlermeldung geben) und besser das Fenster in den Vordergrund holen.
Code:
# If Navi SW already running, then bring Navi SW into foreground and exit this script
If ( ProcExists( NAVI_SW_PROCESS_NAME ) = TRUE )
Show( NAVI_SW_WINDOW_TITLE )
Exit
EndIf
Wie lautet der Pfad zum Speicherort des MixSer Verzeichnisses? Wichtig! Verschiedene Hersteller vergeben verschiedene Namen für den SD-Karten Slot, z.B. "SDMMC" oder "Storage Card". Meist lautet er aber "Storage Card".
Code:
# INSTALLDIR must contain: MixSerDrv.dll , mixser_tmc.bin, activatedevice.exe
INSTALLDIR = "\Storage Card\MixSer"
Dein Gerät muss einen freien, unbenutzten COM Port zwischen 0 und 9 haben, damit das mit dem MixSer überhaupt klappt.
Dieser COM Port muss dann in den Einstellungen der Navi SW als COM Port für den TMC Chip angegeben werden.
Code:
# MIXSER_PORT must be a free COM port number in your system
# Set the TMC port of your navigation software to this port!
MIXSER_PORT = 6
Der MixSer wiederum muss wissen, wo er den "echten" TMC Empfänger findet und mit welcher Baudrate er den TMC Chip ansprechen soll. Frag nicht mich, an welchem Port dein TMC Chip angebunden ist. Ich habe keine Ahnung!
Code:
# COM port name and baudrate of the TMC chip
TMC_PORT = "COM7:"
TMC_BAUD = 38400
Sehr nützliches Feature: Der MixSer kann den TMC Chip gleich zu Beginn auf eine Startfrequenz einstellen. Dann entfällt das zeitraubende Abscannen der FM Frequenzen und man hat praktisch sofort TMC Empfang.
Code:
# Optional: Your favorite FM frequency. MixSerDrv will tune to this frequency when MixSerDrv is activated
# Examples: 10520 means 105.2 Mhz; 9440 means 94.4 MHz, etc.
TMC_START_FREQ = 10520
Die Wistron TMC Empfänger haben eine seltsame Auslegung des OpenTMC Protokolls implementiert und reagieren extrem empfindlich, wenn man gewisse Kommandos zu Beginn der Kommunikation sendet. Daher kann man dem MixSer sagen, er solle keine Initialiserungskommandos senden (mit ... = 1)
Code:
# Skip sending initialisation commands to TMC chip
TMC_SKIP_INIT = 0
Dann gibt es einige TMC Empfänger von Wistron und RoyalTek, die auf Kommandos des MixSer keine Antworten zurücksenden. Normalerweise erwartet der MixSer das aber. Hier kann man das abschalten (mit ... = 1)
Code:
# MixSerDrv should not wait for responses from TMC chip after sending commands
TMC_NOWAIT_FOR_RESPONSE = 0
Navigon Versionen mit Amaryllo Protokoll (also 7.6.3, 7.7.6 und 8.2.5, etc) verlassen sich darauf, dass der TMC Chip eine gewisse Eigenlogik mitbringt, was das Suchen nach FM/RDS/TMC Empfang angeht. Dummerweise haben GNS Empfänger diese Logik nicht.
Und so kann man dem MixSer hier mitteilen, nach wievielen Sekunden ohne TMC Meldungen (RDS Group 3A oder 8A Nachrichten) der MixSer dem TMC Chip das Kommando zum Weiterscannen geben soll.
(Angabe ist in Millisekunden, 1 Sekunde = 1000 Millisekunden)
Code:
# Optional: GNS TMC chip only: Scan for next FM station if no TMC data received for x milliseconds
# value of 0 deactivates this function
GNS_TMC_DATA_TIMEOUT = 10000
Falls jemand Probleme hat, TMC mit MixSer zum Laufen zu bekommen, dann kan man hier aktivieren, dass MixSerDrv eine Log Datei anlegt.
Code:
# If DEBUG is 1 then a log file is written into INSTALLDIR every time when MixSerDrv is installed
DEBUG = 0
Die Variablen, die der MixSer Treiber zur Arbeit braucht, werden ihm per Registry übergeben.
Die Werte in der Registry sind so gewählt, dass der MixSerDrv nicht automatisch beim Booten des Gerätes gestartet wird, sondern erst dann wenn der Aufruf von activatedevice.exe erfolgt.
Das Tool activatedevice.exe macht nichts anderes als das was im MSDN bzgl. ActivateDeviceEx() steht.
Code:
# -- Install MixSerDrv: Start ----------------------------------------
# MixSerDrv used as a Serial Port Sniffer (deactivates all TMC functionality!)
# GPS_PORT MixSerDrv MIXSER_PORT
# GPS_PORT = "COM2:"
# GPS_BAUD = 9600
# GPS_SNIFF_MODE = 1
# copy MixSerDrv driver DLL to Windows directory, if not already exists
If ( FileExists("\Windows\MixSerDrv.dll") = FALSE )
Copy( INSTALLDIR & "\MixSerDrv.dll", "\Windows\MixSerDrv.dll", TRUE )
EndIf
# write settings for MixSerDrv to registry
RegWriteString( "HKLM", "\Drivers\MixSer", "FriendlyName", "MixSerDrv" )
RegWriteString( "HKLM", "\Drivers\MixSer", "Dll", "MixSerDrv.dll" )
RegWriteString( "HKLM", "\Drivers\MixSer", "Prefix", "COM" )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "Index", MIXSER_PORT )
RegWriteString( "HKLM", "\Drivers\MixSer", "InstallPath", INSTALLDIR )
RegWriteString( "HKLM", "\Drivers\MixSer", "TmcPortName", TMC_PORT )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "TmcBaudRate", TMC_BAUD )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "TmcStartFreq", TMC_START_FREQ )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "TmcSkipInit", TMC_SKIP_INIT )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "TmcNoWaitForResponse", TMC_NOWAIT_FOR_RESPONSE )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "GnsTmcDataTimeout", GNS_TMC_DATA_TIMEOUT )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "DebugMode", DEBUG )
RegWriteDWord ( "HKLM", "\Drivers\MixSer", "GpsSniffMode", GPS_SNIFF_MODE )
# activate the new COM port
RunWait ( INSTALLDIR & "\activatedevice.exe", "\Drivers\MixSer" )
# -- Install MixSerDrv: End ----------------------------------------
Jetzt ist alles bereit um die Navi SW zu starten.
Code:
# start the navigation software
Run ( NAVI_SW_PATH )
Dann geben wir Navigon etwas Zeit um zu starten und die blöde Meldung (aka STVO Disclaimer) anzuzeigen. 30 Sekunden sollte für alle erstmal ausreichend Zeit sein. Jeder kann die minimal nötige Zeit hier natürlich selbst einstellen.
Code:
# wait for Navigon to start up until the STVO disclaimer is shown
# you can lower the timeout if your Navigon boots up faster than 30sec
Sleep( 30000 )
Und jetzt noch den "OK" Button mit der "Maus" treffen (je nach Auflösung des Bildschirms sind das natürlich unterschiedliche Koordinaten, also sucht euch eure Auflösung raus) und wir sind fertig und beenden das Skript.
Code:
# press the "OK" button of Navigon STVO disclaimer (un-comment the line for your screen resolution)
# 800x480 screen
# MouseClick(NAVI_SW_WINDOW_TITLE, 610, 430 )
# 480x272 screen
# MouseClick(NAVI_SW_WINDOW_TITLE, 337, 231 )
# 320x240 screen
# MouseClick(NAVI_SW_WINDOW_TITLE, 235, 212 )
ANHANG B:
Wer Probleme hat mit dem Rausfinden der COM Port Settings... es gibt zwar schon ne Menge anderer Tools, aber meins hat hier evtl. ein paar Vorteile.
Das MixSerTester Tool dient zum Finden der korrekten Einstellungen für Navigon's UserSettings.xml und MixSer's MixSerNaviStarter.mscr
Ausserdem kann das Tool versuchen die Version des TMC Chips abzufragen, bei Klick auf den "Ident" Button.
Mit dem Tool kann man per "Try and Error" alle COM Ports (0...9) und gängigen Baudrates (2400...115200) durchprobieren. Wenn dann im Ausgabefenster entweder GPS NMEA bzw. RoyalTek oder OpenTMC Meldungen angezeigt werden, dann hat man die COM Port Einstellungen gefunden und kann sie in die jeweiligen Dateien (per Hand!) eintragen. Wenn nötig lassen sich die Ausgaben auch in eine Datei ausgeben (Haken bei "Save to file").
Hier eine Hilfestellung zur Identifikation der Ausgaben (Fragen: Was ist der GPS Port, Welche TMC Hardware ist verbaut):
Ausgaben des GPS Ports beginnen z.B. mit
$GPRMC, $GPGGA, $GPGSA, $GPGSV, $GPVTG
Ausgaben eines Royaltek TMC Chips beginnen z.B. mit
$RTTMC, $RTRDS
Ausgaben eines OpenTMC Tuners (mehrere Hersteller: z.B. Locosys, Wistron) beginnen z.B. mit
$PLTTQ, $PLTTR, $PLTSR
Zuletzt bearbeitet: