• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Wegpunkte als VCF-Datei

wurschtbrot

Geocacher
Hallo.

Einige Autonavis, unter anderem das RNS 510 von VW und soviel ich weiß auch die von SEAT und SKODA, erwarten Wegpunkte als VCF-Datei.
Dazu gibt es das Makro "seat.gsk", das ich leicht modifiziert habe:

Code:
#*******************************************
# MacVersion = 1.0
# MacDescription = Generate VW vcf
# MacAuthor = wurschtbrot
# MacFileName = rns510.gsk
# MacUrl = 
#*******************************************

#Debug Status=on
$vcard="BEGIN:VCARD\nVERSION:3.0\nCATEGORIES:VIP\nX-VIPCategory:Misc\nADR;ENCODING=QUOTED-PRINTABLE:;;;;;;\nX-NAVADDR:;;;;;;;;;\nGEO:!lat!;!long!\nX-Flag:\nREV:20111216T144548z\nFN;ENCODING=QUOTED-PRINTABLE:!name!\nUID:AddresBookPersistentProvider3\nEND:VCARD\n"

# get the file name to save folder from saved settings if file exists 
If FileExists($_Install + "\Macros\NavMan.dat")
  Set $File = GetFile($_Install + "\Macros\NavMan.dat")
  # Just in case file permission error or something test for error
  IF Left($File,7) = "*Error*"
    Pause Msg="$File"
    Cancel
  EndIf 
else
  Set $File = " "
EndIf

# get the file name to put the CSV file out to.
$Result = 2
While $Result = 2
  Input Msg="Enter the file name to generate"  Default=$File VarName=$File Browse="File"
  If FileExists($File)
    Choose msg="File already exists. Overwrite?" opt1=Yes opt2=No
    If $Result = 1
      FileErase File=$file 
    EndIf  
  Else
    $Result = 1
  EndIf    
EndWhile

# Save the file name so don't have to key if same next time
Set $error = PutFile($_Install + "\Macros\rns510.dat",$File)  
# Just in case file permission error or something test for error
IF Left($Error,7) = "*Error*"
  Pause Msg="$Error"
  Cancel
EndIf   
Set $ThisRecord = 0
Set $NumberFound = 0
Set $NumberPics = 0
Goto Position=Top

# now loop through the current subset to generate the csv file
While .not. $_EOL
  # set up totals to show status to user
  Set $ThisRecord = $ThisRecord + 1
  Set $status = "Now processing: " + "$ThisRecord" + " of " + "$_Count"
  ShowStatus msg="$status"
  $text=RegExReplace("!lat!",$vcard,$d_Latitude)
  $text=RegExReplace("!long!",$text,$d_Longitude)
  $text=RegExReplace("!name!",$text,$d_code + " - " + $d_name)
# correct linebreaks
  $text = Replace("\n",chr(13)+chr(10),$text)
  $Data = PutFile($d_code + " - " + $d_name+".vcf",$text)
  # Just in case file permission error or something test for error
  IF Left($data,7) = "*Error*"
    Pause Msg=$result
    Cancel
  EndIf  
  Goto Position=Next
EndWhile
GoTo Position=Top

Die Übergabe einer Tour auf eine SD-Karte funktioniert auch nahezu perfekt -
ABER:
In Zeile 61 steht
Code:
$Data = PutFile($d_code + " - " + $d_name+".vcf",$text)
Hier wird übergeben, dass am Display des Navis "GC-Code - Wegpunktname" steht.
PROBLEM:
Sobald im Wegpunkt Anführungszeichen enthalten sind (z.B. SuperTrail #1 "Am Berg"), wird die Übergabe des Wegpunktes pausiert und kann übersprungen werden.
FRAGE:
Wie und wo kann ich dem Makro sagen, dass diese Anführungszeichen in einem Wegpunktnamen trotzdem übergeben oder von mir aus auch automatisch gelöscht werden können?

Danke für euren Input!
wurschtbrot

P.S.: Soll ich das fertige Makro wenn es mal rund läuft veröffentlichen? Hab da keine Erfahrung damit...
 

8812

Geoguru
Verwende statt der Variablen $d_name die Variable $d_SmartName.

Code:
$Data = PutFile($d_code + " - " + $d_SmartName+".vcf",$text)

Der Name sieht dann nicht mehr ganz so hübsch aus, entbehrt dafür aber jeglicher kritischen Zeichen.

Hans
 
OP
wurschtbrot

wurschtbrot

Geocacher
Danke Hans.

Das funktioniert sehr gut.
Wo kann ich einstellen wie lange der SmartName sein soll? Aktuell ist er 8 Zeichen groß.

Was natürlich noch perfekt wäre, wenn ich die Benutzersortierung einer geplanten Tour noch vor dem GC-Code übergeben könnte. Kann man dazu "$d_usort" verwenden? Also in etwa
Code:
$Data = PutFile($d_usort+ "_" + $d_code+ " - " + $d_SmartName+".vcf",$text)

Vielen Dank!
 

8812

Geoguru
wurschtbrot schrieb:
Danke Hans.

Das funktioniert sehr gut.
Wo kann ich einstellen wie lange der SmartName sein soll? Aktuell ist er 8 Zeichen groß.

Was natürlich noch perfekt wäre, wenn ich die Benutzersortierung einer geplanten Tour noch vor dem GC-Code übergeben könnte. Kann man dazu "$d_usort" verwenden? Also in etwa
Code:
$Data = PutFile($d_usort+ "_" + $d_code+ " - " + $d_SmartName+".vcf",$text)

Vielen Dank!
Die Länge des SmartNames für die Variable stellt man in GSAKs Einstellungen (Strg-A > Tab "General" > unten rechts) ein. (Such einfach mal in GSAK mit F1 die Hilfe und dort nach "smart".
Die passende Variable heißt $d-Usersort und geht geht natürlich (wie jede ander String-Variable auch). Achtung: Zwischen sort und dem + sollte ein Leerzeichen stehen.

Hans
 
OP
wurschtbrot

wurschtbrot

Geocacher
Okay.
Mit dem Code
Code:
$Data = PutFile($d_UserSort + " - " + $d_code + " - " + $d_SmartName+".vcf",$text)
erreiche ich diese Fehlermeldung
5b190476fe2f8251fef672df613786e8.png


Danke!
 

8812

Geoguru
Die + Zeichen müssen immer von Leerzeichen umgeben sein. Das fehlt dir hinter dem SmartName.

So kann das aussehen.

9194dba7cc08f20225286108e510cfa1.png


Hans

NB: Beim coden sollte man deutlich mehr Sorgfalt walten lassen, als beim posten. :D
 

8812

Geoguru
Ich habe mir das Makro mal angesehen. Du hast glaube ich die falsche Zeile editiert.
Das Navi zeigt doch den vcf-Inhalt an, oder? Der Filename darf natürlich keine Sonderzeichen enthalten. Der vcf-Inhalt hingegen schon.

Beispiel:

57cff050f8da1bd8f19a0be496bc25eb.png


Hans
 

8812

Geoguru
wurschtbrot schrieb:
[...]
In Zeile 61 steht
Code:
$Data = PutFile($d_code + " - " + $d_name+".vcf",$text)
Hier wird übergeben, dass am Display des Navis "GC-Code - Wegpunktname" steht.
Das ist vermutlich falsch. Damit wird lediglich der Filename des einzelnen vcf-Files erzeugt.
[...] P.S.: Soll ich das fertige Makro wenn es mal rund läuft veröffentlichen? Hab da keine Erfahrung damit...
Wenn Du lediglich in einer Zeile Variablen getauscht hast, dann Nein.

Hans
 
OP
wurschtbrot

wurschtbrot

Geocacher
Moin!

1.
Die + Zeichen müssen immer von Leerzeichen umgeben sein. Das fehlt dir hinter dem SmartName.
Mit dem Code
Code:
$Data = PutFile($d_UserSort + " - " + $d_code + " - " + $d_SmartName +".vcf",$text)
erhalte ich die gleiche Fehlermeldung
23a67ca469a868ca6dbcb774b8ce5b0a.png


2.
wurschtbrot hat geschrieben:
[...]
In Zeile 61 steht
$Data = PutFile($d_code + " - " + $d_name+".vcf",$text)
Hier wird übergeben, dass am Display des Navis "GC-Code - Wegpunktname" steht.

Das ist vermutlich falsch. Damit wird lediglich der Filename des einzelnen vcf-Files erzeugt.
Ah, okay. Weißt du an welcher Stelle des Makros der angezeigte Displaytext generiert wird?

Grüße, wurschtbrot
 

8812

Geoguru
wurschtbrot schrieb:
[...]
Ah, okay. Weißt du an welcher Stelle des Makros der angezeigte Displaytext generiert wird?

Grüße, wurschtbrot
Ja, sonst hätte ich ja wohl kaum den Sreenshot mit dem vcf erstellen können, oder?
Im Header steht, Du seist der Makro-Autor. Ist dem nicht so? :roll:
Du hast außerdem meine Frage, was denn das Gerät eigentlich anzeigt (den Filename oder tatsächlich den Inhalt des vcf) noch nicht beantwortet.
Du hast auch nicht erwähnt, daß das Makro gleich zu Beginn eine Fehlermeldung ( zu veralteten Kommandos) generiert. Warum nicht?

Hans
 

8812

Geoguru
wurschtbrot schrieb:
Im Header steht, Du seist der Makro-Autor. Ist dem nicht so?
Fast... Ich bin der Makro-EDItor ;) . Zum AUtor hat's nicht gereicht. Leider. :D
Dann sollte der Makro-Header etwa so aussehen:

Code:
#*******************************************
# MacVersion = 1.0
# MacDescription = Generate VW vcf
# MacAuthor = stag47 | Mod wurschtbrot
# MacFileName = RNS510.gsk
# MacUrl =
#*******************************************

Frohes Jagen
Hans
 

8812

Geoguru
Added: Hinweis für welchen User xxx das File erstellt wird.

16b76d9e055d5fcbc5cce7f669c199b5.png


Automatische Erzeugung des Filenames, basierend auf dem aktuellen GSAK-User:

7955b76662d65cfe58f60c2350447327.png


Inhalt des Vcf-Files:

500bb18be0be577d9ec5b457f3064de6.png


Name mit führender Usersort-Nummer.
Hint im E-Mail-Feld.

Frohes Cruisen
Hans
 
OP
wurschtbrot

wurschtbrot

Geocacher
Moin Hans.

Du hast außerdem meine Frage, was denn das Gerät eigentlich anzeigt (den Filename oder tatsächlich den Inhalt des vcf) noch nicht beantwortet.
Das Gerät zeigt wie vorhin getestet den Filename an. Wenn man das Ziel auswählt wird der Inhalt angezeigt, bevor man diesen wiederum bestätigen muss.

Du hast auch nicht erwähnt, daß das Makro gleich zu Beginn eine Fehlermeldung ( zu veralteten Kommandos) generiert. Warum nicht?
Weil das ein Luxusproblem ist, dass mich erst dann stört, wenn der Inhalt des Makros tut was er soll :^^: .

Gibt's denn zu deinen Edits nen Code :roll: ?

Vielen Dank und Gruß
wurschtbrot
 

8812

Geoguru
wurschtbrot schrieb:
[...] Gibt's denn zu deinen Edits nen Code :roll: ?

Vielen Dank und Gruß
wurschtbrot
Ja, aber erst wenn Du ein erzeugtes vcf testest. Vor allem, ob der Hint angezeigt.
Ich hänge mal den gezippten Ordner hier an.

Hans
 

Anhänge

  • Test VCF Daten.zip
    12,3 KB · Aufrufe: 41
OP
wurschtbrot

wurschtbrot

Geocacher
Jawoll, das werde ich heute Abend testen.
Mach dann Fotos vom Navibildschirm, damit du siehst was ausgegeben wird.

Danke derweil und bis dann!
wurschtbrot
 

8812

Geoguru
wurschtbrot schrieb:
Jawoll, das werde ich heute Abend testen.
Mach dann Fotos vom Navibildschirm, damit du siehst was ausgegeben wird.

Danke derweil und bis dann!
wurschtbrot
Ja, das wäre sehr schick. Da ich selber kein RNS510 besitze, kann ich das leider nicht testen. Bei positivem Verlauf stelle ich das Makro in GSAKs Macro-Index.

Hans
 
OP
wurschtbrot

wurschtbrot

Geocacher
Hi.
Im Anhang ein paar Bilder.
In das Auswahldisplay wird der Dateiname (GC-Code_SmartName) übertragen.
Sortierung nach GC-Code.
Scheint noch ein Problem mit Umlauten zu geben, aber das ist unwichtig.

Grüße,
wurschtbrot
 

Anhänge

  • rns510.zip
    441,5 KB · Aufrufe: 43
Oben