Bevor Du den nächsten Versuch startest, laß mal das Windowsinstaller Cleanup durchlaufen :http://windows-installer-clean-up.softonic.de/
Kann man auch direct von der Microsoft homepage saugen.
morgen1
Beiträge von morgen1
Garmin fenix 7X und epix Gen 2 im Test
Der Schwerpunkt dieses Tests und Vergleichs der Garmin Fenix 7X Solar und Garmin Epix Gen 2 liegt auf den Sensoren wie Höhenmesser, Positionsbestimmung und Herzfrequenz. Was unterscheidet die beiden GPS-Outdoor-Smartwatches? Und wie gut ist die Taschenlampe der Fenix 7X für den Outdoorbereich?
Hier geht es zum Test der Outdoor-Smartwatches ...
-
-
Hmm, und was passiert wenn Mapsource erst gar nicht installiert ist? (es gibt viele Leute die erst nach der Installation meiner Karten draufkommen, dass sie die Karten erst mit Mapsource oder anderen Progs benutzen koennen).
nichts passiert. eventuell vorhanden Registryschlüssel ,sowohl \Software als auch \Software\Wow6432Node sind nur Leichen in der Registry ohne Schadenspotential.
Gmap Versionen finde ich SCHROTT.
1. groeßerer Speicherbedarf
2. Sind fuer Noobs nicht beliebig am PC platzierbar
3. Brauchen zum erstellen fuers ans GPS etwa die 4 fache Zeit - da sie eben in .img umgewandelt werden muessen vor dem senden.
4. ist ein zusaetzlicher Schritt fuer mich
5. Arbeite ich und empfehle ich 6.13.6 zu benutzen...
6. schlechter komprimierbar = groeßere Downloads (.img komprimiert zu 64-66% mit 7zip.).stimme ich voll zu. Mit IMG2MS Version 32/64 ist es sehr einfach, Deine Karten zu installieren. Ich brauche Deine mitgelieferten batfiles dazu nicht. Nur die Benutzung des falschen batfiles kann zu den falschen Registryeinträgen führen.
Die leichtere Installierbarkeit koennte auch bei .img von Mapsource identisch gehandhabt werden (es muesste einfach beim ersten Start einer Karte gescannt werden - welches .img die basemap ist)...
Gute Idee. Der Name der preview steht ja in der TDB. das werde ich mal aufgreifen und in img2ms automatisch als Voreinstellung einbauen. Momentan geht die Preview namensmäßig in der Menge der Kacheln unter und es gehört eine Portion Spürsinn dazu, die herauszufischen. Okay ich weiß, der Name ist meist identisch mit dem TDB-File. Aber es gibt unter den OSM-Konvertierern auch andere Namesvarianten.
Für mich ist das Problem mit img2ms Version2- 32/64 sauber gelöst.
morgen1edit: den Dateinamen der preview kann man nicht aus der TDB auslesen. Es steht nur der Mapnamen drin. Da irrte ich.
-
Das Problem 32 oder 64 Bit zu erkennen, hat Microsoft nicht einfach gemacht. Falls du die 'Windows'-Taste + 'Pause' drückst, bekommst Du viele Informationen zu der OS Version, nur keine Angabe zu 32 /64 Bit. Ich habe z.B. auf meinem PC einen 64 Bit AthlonProzessor , aber 32 Bit XP laufen. der Athlon kann das von Natur aus. Bei Intel Titanum bin ich mir nicht sicher. Ich habe noch keinen anderen sicheren Weg gefunden an Hand der Versionsangabe (W 7 ist Version 6.1, genauso wie Server 2008R2) auf die Bit zu schließen. Wenn es einfacher geht, so sagt es mir bitte. Im MSDN-Developer network steht in den Dokumentationen zu den einzelnen Funktionen der DLL's z.B natives betriebssytem lakonisch dahinter sinngemäß "...dies ist keine sichere Methode die bit zu bestimmen. " Aber nirgend unter www.msdn.com habe ich die Beschreibung einer konkreten Methode gefunden. Mein Code geht in weiten Teilen auf einen gewissen Dörfler zurück. Die Methode ist eineindeutig.
morgen1 -
Nachtrag:
falls du zukünftig gmap Versionen erzeugst und bereitstellst, bist Du allen Ärger los. Nur die altmodischen MS6.13-user werden ins leere schauen.morgen1
-
Ich mache das so: ich starte Mapsource und hole mir ein Handle auf die taskId. Im kernel32.dll ist dann eine Function eingebaut , die True zurückgibt, wenn es ein 32er anwendung auf 64er Machine ist. Andernfalls gibt die Function false zurück. das werte ich aus. Das wird nur einmal beim 1.Start gemacht und dann in der Registry gemerkt.Im code steht schon der Text für die Endversion, wo Mapsource irgendwo gespeichert sein kann.
Code
Alles anzeigen' Gibt an, ob die Anwendung auf Windows 64bit unter WOW64 ausgeführt wird. Public Property Get Is64BitOS() As Boolean Dim FS As New FileSystemObject Dim vPfadMS As String Dim hMod As Long Dim lIsWow64Process As Long hMod = LoadLibrary("kernel32.dll") Dim hTask Dim nTaskID As Long Dim nHandle As Long Dim lResult As Long If FS.FileExists("C:\Garmin\MapSource.exe") = True Then nTaskID = Shell("C:\Garmin\Mapsource.exe", vbHide) Else 33: MsgBox ImgToolDemoTDB.Satz61 vPfadMS = BrowseForFolder(Me.hwnd, "Folder with MapSource.exe") If FS.FileExists(vPfadMS & "\MapSource.exe") = True Then nTaskID = Shell(vPfadMS & "\MapSource.exe") Else: MsgBox "Wrong Folder" GoTo 33 End If End If nHandle = OpenProcess(SYNCHRONIZE, False, nTaskID) If CBool(GetProcAddress(hMod, "IsWow64Process")) Then If CBool(IsWow64Process(nHandle, lIsWow64Process)) Then 'GetCurrentProcess() Is64BitOS = CBool(lIsWow64Process) End If Select Case Is64BitOS Case True fStringSpeichern HKEY_CURRENT_USER, "Software\IMG2MS", "Wow64", "wahr" Case False fStringSpeichern HKEY_CURRENT_USER, "Software\IMG2MS", "Wow64", "falsch" End Select End If FreeLibrary hMod hTask = OpenProcess(PROCESS_TERMINATE, 0&, nTaskID) lResult = TerminateProcess(hTask, 1&) lResult = CloseHandle(hTask) Call CloseHandle(nHandle) End Property
-
Dein Verfahren ist logisch nicht sauber, weil: Den Schlüssel Wow6432Node gibt es nur für 32 Bit Programme die in einer 64er Machine laufen. Sollte es aber ein natives 64 er Programm auf einer 64 er Machine sein, so heißt der Schlüssel wieder HKLM_LOCAL_MACHINE\Software\Garmin\Mapsource.. also ohne den \Wow6432Node\-Knoten. Sauber ist nur, wenn man prüft, ob das Zielprogramm (in unserem Fall MapSource) als 32bit unter 64 Bit Machine läuft. Das Vorhandensein der %windir%/sysWow64/cmd.exe ist lediglich ein starkes Indiz, aber keine Gewissheit. Sprichwort: "Dummheit kennt keine Grenzen". Damit meine ich nicht etwa Dich, sondern gewisse User. Es ist unglaublich, was ich schon für verbogene Computer zu sehen bekam.Da fragte ich mich oftmals ,wie kann man so was nur machen und bekann die naivsten Antworten.
Zum testen der Vorabversion img2msDemo2-32-64 habe ich Deine mtb-Sachsen verwendet. Funktionierte wunderbar. Ich habe bei den Auswahldialogen Voreinstellungen benutzt, die nach der Wahl des TDB-files schon die anderen Files anzeigen. Auch die sonst meist hinter Nummern vesrsteckte Preview. Damit sollte es leicht zu bedienen sein.
morgen1 -
Nachdem ich die Zeile nach der Anweisung von openmetbmap für x64 Systeme (if not errorlevel 1 goto key_ok set KEY=HKLM\SOFTWARE\Garmin\Mapsource) mit dem Editor entfernt hatte, funktionierte die Installation der openmtbmap und ich konnte in der MS 6.13.6 (Parallelinstallation) die Karten öffnen, jedoch in der MS 6.15.7 bekam ich einen Runtime Error. Ich sehe derzeit meinen Fehler nicht. Könnte mir da bitte wer weiterhelfen?
Gruß Oeschi
Es ist leider so, daß die bat-files von extremecarver nicht wirklich das Betriebssystem analysieren, sondern einfach in der Registry nach dem Wow6432Node schauen. Falls vorhanden, dann sollte es ein 64 bit OS sein. Was aber nicht stimmen muß. Um endlich das Gefummel mit batfiles zu beenden, habe ich img2ms weiterentwickelt, so daß die aktuelle IMG2MS2-32/64 Version automatisch analysiert, ob Mapsource als 32 Bit auf einer 64 er Machine läuft. Sollte es zukünftig mal native 64 Bit-Mapsource geben, so wir das damit auch richtig funktionieren. Und dann die Registry entsprechend schreibt. Weiterhin können eventuell vorhandene idx und _mdr.img Files registriert werden. Typfiles waren ja schon lange zu registrieren möglich. Speziell die openmtb-Map bringt ja solche idx und _mdr.img -Files mit.
Mit dieser img2ms2-32/64 Version können also die openmtb Maps, wie alle anderen osm -Maps unabhängig von Betriebssystemversion und bat-Files in Mapsource eingebunden werden. Eine Vorabversion ist unter http://www.img2ms.de/IMG2MSDemo2-32-64.zip downloadbar. Es ist nur das exe-File und keine komplette Installation; die kommt später. Zur Verwendung sollte man das IMG2MSDemo2-32-64.zip File in den Ordner einer vorhandenen IMG2MS-Installation entpacken. Die enthaltene Laufzeit_verlängern.exe ausführen und dann IMG2MSDemo2-32-64.exe verwenden. Es können mit der eingebauten Funktion 'Mapsource6.14.1-compatibility# auch Registryfehler in 64 Bit OS bereinigt werden.
Zur Einbindung der openmtb-Maps dann oben links die Variante 'tdb+preview schon vorhanden' auswählen.
Rückmeldungen, Bugs usw.sind sehr erwünscht.
Dies Vorabversio0n setzt noch voraus, daß Mapsource unter C:\Garmin\ installiert ist. In der Endversion kann Mapsource beliebig gespeichert sein.
morgen1 -
... dann gab es einen Runtime Error in MS 6.15.7
Mit MapsourceFix konnte ich dieses Problem nicht lösen.Jetzt habe ich im win64 eine VMWare laufen mit einem XP und da stellte ich fest, dass die Installationen kein Problem waren. So wie das für mich aussieht sind die ganzen Openmtbmaps auf WinXP optimiert.
Mit Deiner Feststellung zu den 64 Bit OS hast Du die meisten Programmierer, auch mich, auf dem falschen Fuß erwischt. Weil wir meistens nicht an die 64 Bit OS denken. Deshalb kann weder Mapsourcefix noch img2ms mit 64 Bit systemen umgehen, sprich die Registry richtigerweise unter dem andern Knoten(Wow6432Nodes) schreiben.Ich werde mich demnächst mal um die Implementierung der 64 Bit OS in img2ms kümmern.
morgen1
-
64 Bit Windowsbetriebssyteme lassen die 32-Bit- Programme in einen 'windows on windows' laufen. Man könnte sich das etwa wie eine virtuelle 32 Bit Machine innnerhalb des 64 Bit Operatingsystems vorstellen. Der normale Registrypfad ist für die nativen 64 Bit Programme reserviert. Die 32 Bit Programme auf der 64 Bit machine werden in der Registry unter Einfügung des folgenden Unterschlüssels \Wow6432Node\ nach \Software\ registriert. Da Mapsource ein 32 er Programm ist, wird also der Pfad zwischengefügt. Das ist alles. Funktioniert auch bei anderen Programmen genauso.
morgen1 -
..
Auf jeden Fall habe ich mir aus einem selbst aufgenommenen Track eine Karte erstellt, die ich auch separat in Mapsource sehen kann...
Warum willst Du unbedingt aus dem Track, der in Mapsource mit jeder Karte zu sehen ist, eine eigene Karte machen, die dann aus prinzipiellen Gründen nicht gemeinsam zu sehen ist ?. Dann laß es doch bei dem Track.
Der Sinn des ganzen ist, daß ich alle MTB-Strecken in einem bestimmten Gebiet gerne auf der Karte hätte,Vielen Dank, arisobg
Aus allen Tracks eine Karte zu erzeugen ist mit Gpsmapedit ein Kinderspiel. Wenn Du Transparenz und Drawpriorität entsprechend einstellt, kannst Du diese eigene Karte auf dem Gerät zum Beispiel mit der Topo oder sonstwas gemeinsam sehen, in Mapsource aber nicht. Da must Du es bei den ursprünglichen Tracks belassen.morgen1
-
Nichts ist leichter als das. GPX mit Gpsmapedit öffen, dann unter File-->MapProperties die Eintragungen für den Header machen, speichern als mp und exportieren nach Garmin-img. Fertig. Es gibt auch noch weitere Möglichkeiten. Übertragung zum Gerät entweder mittels sendmap direkt oder die erzeugte Karte mit img2ms in Mapsource einbinden. Übertragung dann wie gewohnt mittels Mapsource.
morgen1 -
Zitat
Putz alles runter ..
ist die Kettensägenvariante. Es geht auch mit weniger Arbeit mit der "Feinsäge". Lade Dir img2ms von www.img2ms.de als Demo herunter und starte die Funktion 'Karten aus MS anzeigen + entfernen". Im sich öffnenden linken Fenster werden alle Registryschlüssel diesbezüglich gelistet. Wenn Fehler drin sind, steht dort statt des Kartennamens ein Hinweis. z.B. "!!TDB-fehlt!!". Dann click auf den Hinweis und der verursachende Registryschlüssel wird gelöscht. MS sollte dann wieder laufen. Außerdem vergiß ezMS, sondern nimm img2ms zum Einbinden. Es kann auch nicht schaden , falls Du die Funktion 'MS6.14.4 combatibility" mal startest. Da werden bestimmte Typen von Registryschlüsseln korrigiert, die ebenfalls den Runtimerror verursachen können.
morgen1 -
Hallo extremcarver,
ich muß bekennen, daß ich aus deinem Beitrag nicht rauslesen kann, was Du programmtechnisch eigentlich machen willst. Das VBS script läßt sich leicht mit einer grafischen Benutzeroberfläche versehen und wäre dann ein ordentliches Programm, wo man die derzeit hardgecodeten Pfade als Variablen auswählen könnte. Und die FID aus der Registry zu lesen ist ja wohl kein Problem, wenn die denn dort steht. Oftmals steht die nur in der TDB. Die sonst noch in Deinem Sinne erforderlichen Aktionen müßten mal klar definiert werden. Dann konnte man das in ein Programm packen.
Was hat das aber mit dem wandeln nach mp zu tun ?.
morgen1 -
Der Batchkonverter könnte das schon, aber den habe ich von der Website genommen und vertreibe den nicht mehr. Wer Bedarf hat, kann sich per PN mit mir in Verbindung setzen.
Übrigens wurde genau für diesen Zweck vor langer Zeit hier im Bord mal ein VBA-script vorgestellt. Vielleicht liegt der Beitrag noch im Archiv.
morgen1 -
Hallo,
die in IMG2MS vergebene #ID# ist die FID. Die FID gibt es nur unter Families (="Family"-ID). Unter Products sagt man dazu nur ID. FID oder ID haben die selbe Funktion innerhalb der Registrierung bzw. im TDB-File. Schon am Namen kann man erkennen, ob das Kartenset unter Products oder Families registriert ist. Die PID hingegen (Productnummer) ist eine Unterkategorie der FID: Es könnten nämlich in jeder Family mehrere Producte enthalten sein. Das ist z.B. beim Bluechart Atlantic der Fall. Da gibt es 2 PID's. Ansonsten sollte die immer 1 sein; es sei denn, Du kennst die Auswirkungen und die damit notwendigen weiteren Änderungen. Ein Typfile wirkt immer für alle Producte einer Familiy. Es ist gar nicht möglich, innerhalb einer Family 2 Typfile zu registrieren. Wahrscheinlich könnte man die komplett weglassen. Falls du Dein selbst erstelltes Typfile für andere Karten nutzen willst, so füge es einfach mit img2ms der anderen Karte hinzu. Es vorher im Onlineeditor zu ändern ist unnötig, weil das img2ms lokal auf der Festplatte macht. Dabei werden sowohl Typfile als ggf. die Registry berichtigt bzw. geändert.mfg morgen1
-
Das macht er von selbst. Je nach Empfänger ist am Empfänger lediglich das Übertragungsprotokoll einzustellen. Zur Auswahl stehen das Garminprotokoll über USB und serielle Schnittstelle. Ich benutze das Garminprotokoll per USB. Das über USB übertragene Signal wird dann PC-intern mit dem frei erhältlichen Tool #Spanner# (von Garmin) an den Com1 port weitergeleitet, weil ich ein Programm benutze, welches noch in VB 6 geschrieben ist und nur den com-port abhören kann. Da Du in C++ programmieren willst, sollte das für Dich ja keine Rolle spielen. Alternativ könnte man auch ein serielles Kabel benutzen. Ich kenne mich nur mit Garmin aus. Wie das bei anderen Herstellern funktioniert , kann ich nichts sagen.
morgen1 -
zum Beispiel kann mein GPSMap 60CSx und vermutlich fast alle anderen Empfänger auch, live NMEA Datensätze an einen Port eines angeschlossenen PC senden. Mit geeignetem Programm kann dann der Port, bei mir com1, abgehört werden und die Daten beliebig verarbeitet werden. Lies mal das hier :http://www.wolfgang-back.com/P…ein_fall_fuer_den_pda.pdf
-
Hallo skyhopper,
danke für Deine Infos. Da habe ich wieder was dazugelernt. Könntest Du bitte den zu langen Namen der Alps-Höhenlinien mal zitieren ? Ich will das einfach gegentesten, ob der Fehler provoziert werden kann. In dem von Dir zitierten Link tippt der user auf den Punkt im Kartennamen als Fehlerursache. Allerdings haben bei mir mindesten 2 Karten ebenfalls Punkte im Namen und verursachen keinen Fehler (City Navigator Europe NT 2010.1 und NaviGuide Hungary 5.2NT). Womit hast Du bitte die neue tdb geschrieben, in der der neue Name ja steht ?. Vielleicht ist es nicht der eigentliche Namen, sondern die tdb-version. Denn Du hast ja eine neue tdb schreiben müssenwegen der Namensänderung. Wäre interessant, die alte und neue tdb-vergleichen zu können. Vilelleicht als zip mal reinstellen ?morgen1
-
Das Thema mit dieser Fehlermeldung hatten wir schon. Es gibt mindestens 2 prinzipielle Fehlerquellen:
1. eine Kachel ist defekt. Das war bei der Topo Austria V1 ausführlich hier dokumentiert worden.
2. Eine Karte hat eine falsche TDB. Da kann das auch vorkommen. Meist werden irgendwelche Originalkacheln mit einer TDB kombiniert, die nicht original ist. Raubkopie ?. bzw bei OSM (da kann es ja prinzipiell keine Raubkopien geben, weil Freeware) nicht die Original-TDB. Allerdings ist mir dieser Fehler nur bei Originalgarminkarten bekannt. Bei OSM ist er mir noch nicht untergekommen, aber ebenfalls denkbar.Eher unwahrscheinlich, sollte aber trotzdem geprüft werden, ob genug Speicher im Temp-Verzeichniss da ist, wo der Kartensatz vor der Übertragung erstellt wird.
Du kannst auch den Prozeß der gmapsupp-Erstellung in einem geöffneten Explorerfenster verfolgen. Ich habe es schon gehabt, daß im Temp-Ordner die gmapsupp komplett erstellt wurde und dann die Fehlermeldung kam. Die Datei heißt aber im Temp-Ordner noch nicht gmapsupp, sondern imgZahl.tmp Falls die Datei die erwartete Filegröße hat, dann die Fehlermeldung nicht wegdrücken, sondern die Datei in gmapsupp umbenennen und auf die sd-card schieben und funktioniert trotzdem.
morgen1
-
Vergiß es, es gibt dazu keine Registryeinträge.
morgen1