f0fyf

f0fyf

mardi 15 août 2017

ADS-B et Xastir

Depuis plusieurs jours, je me bats avec des lignes de code afin de pouvoir envoyer des trames reçues avec mon stick rtlsdr sur des cartes "libres" de type OpenStreetMap. Seulement, mes avions s'affichent mais ne bougent pas et l'application plante au bout de quelques minutes. J'avais entendu parler d'un moyen de récupérer un fichier kml (google earth) et de l'exporter sur xastir mais au final, c'est un petit script de rien du tout qui a permis, avec l'aide de dump1090, de renvoyer les trames ads-b sur xastir.


Mise en garde importante : ne renvoyez pas les trames ads-b sur aprs.is, ce n'est pas fait pour ça même si certains ont déjà fait le pas avec les trames AIS pour les bateaux.



  • XASTIR
Pour réaliser ce petit hack de xastir, il nous faut une version bien à jour. Donc dans une fenêtre terminal : 

$ sudo apt-get update && sudo apt-get upgrade   #on met à jour le système
$ sudo apt-get install build-essential git autoconf automake xorg-dev graphicsmagick gv libmotif-dev libcurl4-openssl-dev gpsman gpsmanshp libpcre3-dev libproj-dev libdb5.3-dev python-dev libax25-dev shapelib libshp-dev festival festival-dev libgeotiff-dev libgraphicsmagick1-dev  #on installe toutes les dépendances necessaires 
$ sudo apt-get install xfonts-100dpi xfonts-75dpi    #on installe les polices de caractères utiles
$ xset +fp /usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi   #on indique où les nouvelles polices se trouve
$ git clone https://github.com/Xastir/Xastir.git    #on récupère xastir
$ cd Xastir   #on se rend dans le répertoire téléchargé
$ ./bootstrap.sh  #on génère le fichier d'installation
$ mkdir build && cd build   #on crée puis l'on se rend dans le répertoire build
$ ../configure CPPFLAGS="-I/usr/include/geotiff"    #on lance l'installation
$ make
$ sudo make install

Xastir 2.0.9 est dorénavant installé sur votre machine. Vous devriez avoir un répertoire scripts contenant divers scripts dont ads-b.pl

Pour le lancer :

$ xastir
Pour la configuration minimale, je vous invite à relire mon article sur Xastir 

  • Dump1090
Toujours dans un terminal, on va récupérer le fichier git de dump1090 et on installe correctement tout ça

$ git clone https://github.com/antirez/dump1090.git
$ cd dump1090
$ make

Dump1090 est maintenant installé. Vérifiez que votre rtlsdr est connecté et lancé la commande suivante dans un terminal :

$./dump1090 --net --interactive
(on lance le programme en mode interactif : un tableau va s'afficher dans la fenêtre terminal - les données de positionnements et d'infos seront envoyé sur le serveur local sur le port 8080)

  • Script ADS-B
On ouvre alors une seconde fenêtre terminal ( MAJ+Ctrl+N ) et on va lancer le script ads-b qui récupérera les données de dump1090 pour les envoyer sur Xastir

$ cd Xastir/scripts/
$ ./ads-b.pl [indicatif] [passcode]

Le script va se lancer et les infos de dump1090 vont commencer à transiter dans la fenêtre ouverte.
[indicatif] : l'indicatif que vous utiliserez sous xastir
[passcode] : le même passcode attribué pour vous connecter 

Sous Xastir, il faudra ajouter une interface de control. Dans la barre de menu, on clique sur Interface, Interface control, puis Add. On sélectionne Internet Server dans la liste puis Add.
La fenêtre Interface Control s'ouvre.
On active "Activate on startup" et "Allow Transmitting"
Host : 127.0.0.1
Port : 8080
Passcode : Votre passcode
Filter Parameters : m/10000
Comment : ADSB
On active "Reconnect on NET failure
On clique sur OK
Votre connexion est prête mais avant toute chose, dans Interface, activez "Disable ALL" afin de ne pas renvoyer sur le réseau ce que vous recevrez. 

Dans la fenêtre "Interface Control", cliquez sur la nouvelle connexion crée (ADSB), puis "Start". Son status passera à "UP" et les avions s'afficheront sur la carte.

Vous devriez commencer à voir sur votre carte APRS, les avions au-dessus de votre tête. Conjointement, vous pouvez également recevoir les trames aprs locales via le web ou un second rtlsdr ou un trx externe.




Aucun commentaire:

Enregistrer un commentaire