Page 1 sur 2

GBS Babel en ligne de commande [ windows ]

Posté : 12 avril 2012, 09:05
par Lufop
Bonjour,

comme promis voici mon "mini retour d’expérience" (15 minute d'utilisation :crazy: ) sur l'utilisation de ce logiciel sur OS windows (ici Windows 7).

En mode "click click" (avec l'interface graphique) ce logiciel est très simple d'utilisation et permet de transformer à partir de n’importe quel format de fichier de POI (ou presque) quasiment tout les format de fichier.

Il permet aussi de les envoyer directement dans le GPS si celui-ci est correctement connecté (coonaction port COM ou usb... a voir).

Pour ma part je l'ai essayer pour automatiser le création des fichier ov2 pour copilot mais aussi pour tomtom...

Inutile de cherche dans les doc les options pour le faire directement en ligne de commande, il suffit de le faire une première fois via l'interface graphique et la ligne de commande exécutée par le logiciel s'affiche en dessous (je fournirai les image plus tard) !

Seul bémol, mais il y a peu etre une parade ou une option à cocher, il faut que le fichier source existe... Pour parer à ce problème j'ai créé des fichiers sources vide et ça fonctionne très bien...

Voici un exemple de la ligne de commande qui permet de créer à partir des fichier ASC téléchargés sur le site Lufop le fichier safeticam.ov2 nécessaire pour copilot :crazy: :

Code : Tout sélectionner

"C:\Program Files\GPSBabel\gpsbabel" -w -i tomtom_asc,snwhite=0,snupper=0,snunique=0,prefer_shortnames=0 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger Feu Rouge FR.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 30.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 50.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 60.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 70.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 80.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 90.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 110.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 130.asc" 
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger Temporaire FR.asc" 
-o tomtom -F "C:/Program Files/GPSBabel/DATA/OUT/copilot/safetycam.ov2"
Reste à faire pour moi:

- créer un script (certainement en PHP) qui permet de générer automatiquement les lignes de commande nécessaire a la création des fichiers cible en fonction :
- du type de fichier source
- du nombre de fichier source
- du nom du fichier source et cible
- zip + envoie des fichier cible via FTP pour la mise à jour sur le site lufop


Je mettrais prochainement le fichier créer safetycam.ov2 à télécharger pour que vous puissiez tester que ce fichier est OK pour copilot...
Je ferais de même pour les fichier ov2 pour tomtom pour ceux que ça intéresse...


voila voila !

Re: GBS Babel en ligne de commande [ windows ]

Posté : 14 avril 2012, 13:00
par SyStem_D
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger Feu Rouge FR.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 30.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 50.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 60.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 70.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 80.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 90.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 110.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger FR 130.asc"
-f "C:\Program Files\GPSBabel\DATA\IN\FR Zone de danger Temporaire FR.asc"

tu as essayé avec -f "C:\Program Files\GPSBabel\DATA\IN\*.asc"

economie de lignes (c'est cher l'encre de clavier) :lol:

Re: GBS Babel en ligne de commande [ windows ]

Posté : 14 avril 2012, 13:33
par Lufop
EN fait je fait plus quelque chose comme ça en PHP:

Code : Tout sélectionner

$pays="FR "
// lecture du répertoire
if ($handle = opendir($repertoire_in)) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != ".."  ) {
			if( (preg_match( "/$pays1/" ,  $entry )  )){
					$CMD.=' -f "'.$repertoire_in.$entry.'" ';
			}
        }
    }
    closedir($handle);
}
Pour générer le bout de commande avec les option -f
En jouant avec le paramètre $pays cela me permet de sélectionner le ou les pays que je souhaites inclure dans le fichier ov2

Tu vois je suis quelqu'un qui se triture pas mal le cerveau! Mais le but c'est que se soit plus simple d'utilisation au final !

L'interface web est quelque chose comme ça :

Re: GBS Babel en ligne de commande [ windows ]

Posté : 14 avril 2012, 15:13
par SyStem_D
Pour ce qui est du php là je suis un peu largué
par contre j'ai trouvé ce lien http://pokie.dyndns.org/linux.php?sub=tomtom
le début concerne un bash (linux) quoique en batch et bash suffit de trouver les concordances http://tldp.org/LDP/abs/html/dosbatch.html
mais surtout il y a 2 php ecrire/lire un ov2
j'ai testé les 2 lire impec écrire oui mais quand tu remontes le fichier dans poiedit pour voir ce que cela donne il y a un bug peut être tu verras pourquoi.

Re: GBS Babel en ligne de commande [ windows ]

Posté : 15 avril 2012, 10:01
par Lufop
je vais regarder, ça pourrait être bien plus simple pour générer les fichiers ov2 avec cette technique !!


Structure d'un fichier ov2 :

Code : Tout sélectionner

Type    Longueur        Longitude       Latitude        Description                     Fin
02      2B 00 00 00     8B F9 06 00     C5 44 44 00     5b 42 4c ... 61 76 69 6c 6c 65  00
1 octet 4 octets        4 octets        4 octets        variable                        1 octet
Je comprends un peux mieux !!

Re: GBS Babel en ligne de commande [ windows ]

Posté : 15 avril 2012, 10:42
par Lufop
RE,

ben pour la lecture c'est top mais comme ça ne m’intéresse pas...

Par contre l'écriture c'est OK pour moi; Je te laisse regarder le fichier que je viens de télécharger...

-> good news !!!! Du coup je vais pouvoir laisser tomber GPS Babel et faire tout ça sur le serveur de free !!

Le code php :

Code : Tout sélectionner

  $csv=file("BE_50.asc");
  $nbcsv=count($csv);
  $file="BE_50.ov2";
  $fp = fopen($file, "w");
  for ($i = 0; $i < $nbcsv; $i++) {
//    $table = split(",",chop($csv[$i]));  //Cette fonction est OBSOLETE depuis PHP 5.3.0. 
    $table = explode(",",chop($csv[$i])); // Chaque ligne est du type: longitude,latitude,description
    $lon = $table[0];
    $lat = $table[1];
    $des = $table[2];
    $TT = chr(0x02).pack("V",strlen($des)+14).pack("V",round($lon*100000)).pack("V",round($lat*100000)).$des.chr(0x00);
    @fwrite ($fp, "$TT");
  }
  fclose($fp);

Re: GBS Babel en ligne de commande [ windows ]

Posté : 16 avril 2012, 13:39
par SyStem_D
Cqfd :)
maintenant il ne reste plus qu'à lire le répertoire pour faire un ov2 complet
et pourquoi pas en connaissant la structure les fichiers pour les autres formats, gpx, dat etc

je serais curieux de voir le script complet.

Re: GBS Babel en ligne de commande [ windows ]

Posté : 19 avril 2012, 17:56
par Lufop
SyStem_D a écrit :je serais curieux de voir le script complet.
une fois les fonction créée ce n'est pas bien compliqué:

je creer un repertoire temporaire > mkdir
je génère les fichier ASC sources dans celui-ci > lecture sql et fopen, fwrite, fclose
je convertis les fichier asc en ov2 avec la fonction ci dessous toujours dans le même répertoire > function ASC_to_OV2 du post précedent
je copie les fichier image qui portent les même nom que les fichier (seul l’extension change) > un simple copy
je zippe le tout > zip.lib.php
je fais le ménage de mon répertoire temporaire > function rmdir

Et c'est fini :)

Dit comme ça c'est facile non ?

le fichier php fait 390 lignes, mais il ne contiens pas toute les fonctions :lolno: !

Le top c'est que je peux générer plusieurs dizaines de fichiers OV2 en quelques secondes seulement !!!

Re: GBS Babel en ligne de commande [ windows ]

Posté : 19 avril 2012, 19:58
par SyStem_D
impec ca
perso j'ai créé une bdd des poi que j'exploite apres, mais c'est juste pour le fun, ayant a dispo un serveur j'ai plus rapide et simple :)
mais bon c'est le résultat qui compte, que tu puisses gagner du temps avec un résultat de qualité en plus :clap:

Re: GBS Babel en ligne de commande [ windows ]

Posté : 12 mai 2012, 22:56
par pierrotori
je pense quand une ligne on peut les générer, je l'ai testé de ov2 vers csv
donc asc vers ov2 ca doit marcher :thumbup:
Forfiles /p c:\auto\POI\ /s /m *.asc /c "cmd /c gpsbabel -w -i tomtom_asc,snwhite=0,snupper=0,snunique=0,prefer_shortnames=0 -f @PATH -o tomtom -F @FNAME.ov2 génére bien tous les fichiers asc d'un répertoire en ov2