
Echtzeit-GPS-Signalsimulator für bladeRF
Sehr grobe experimentelle Implementierung von gps-sdr-sim für die Echtzeit-Signalerzeugung. Der Code funktioniert mit bladeRF und wurde unter Windows 10 und Ubuntu 20.04 getestet.
Usage: bladegps [options]
Options:
-e <gps_nav> RINEX navigation file for GPS ephemerides (required)
-y <yuma_alm> YUMA almanac file for GPS almanacs
-u <user_motion> User motion file (dynamic mode)
-g <nmea_gga> NMEA GGA stream (dynamic mode)
-l <location> Lat,Lon,Hgt (static mode) e.g. 35.274,137.014,100
-t <date,time> Scenario start time YYYY/MM/DD,hh:mm:ss
-T <date,time> Overwrite TOC and TOE to scenario start time
-d <duration> Duration [sec] (max: 86400)
-x <XB_number> Enable XB board, e.g. '-x 200' for XB200
-i Interactive mode: North='w', South='s', East='d', West='a'
-I Disable ionospheric delay for spacecraft scenario
-p Disable path loss and hold power level constant
Folgen Sie der Anleitung auf der Nuand-Wiki-Seite und bauen Sie die bladeRF-Bibliothek aus dem Quellcode mit Visual Studio 2013 Express für Windows Desktop. Gehen Sie davon aus, dass Sie bereits pthread- und libusb-Dateien heruntergeladen und die bladeRF-Bibliothek erfolgreich für Ihre Windows-Umgebung gebaut haben.
Konfigurationseigenschaften -> C/C++ -> Allgemein -> Zusätzliche Includeverzeichnisse hinzufügen:
Konfigurationseigenschaften -> Linker -> Allgemein -> Zusätzliche Bibliotheksverzeichnisse hinzufügen:
Konfigurationseigenschaften -> Linker -> Eingabe -> Zusätzliche Abhängigkeiten angeben:
Build -> Projektmappe erstellen ausführenNach einem erfolgreichen Build finden Sie die ausführbare Datei im Ordner Release. Sie sollten Kopien der folgenden DLLs im selben Ordner ablegen, um den Code auszuführen:
Den bladeRF-Quellcode in einem Verzeichnis neben dem aktuellen Verzeichnis abrufen
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Die bladeRF-Hostbibliothek bauen
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make
bladeGPS bauen
$ cd ../../../bladeGPS
$ make
Xcode installieren
Xcode-Befehlszeilentools installieren
$ xcode-select --install
MacPorts installieren
Einen symbolischen Link zu port erstellen
$ sudo ln -s /opt/local/bin/port /usr/local/bin/port
bladeRF installieren
$ sudo port install bladeRF +tecla
cmake installieren
$ sudo port install cmake
Den bladeRF-Quellcode in einem Verzeichnis neben dem aktuellen Verzeichnis abrufen
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Die bladeRF-Hostbibliothek bauen
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make && sudo make install
libomp und wget installieren
$ sudo port install libomp
$ sudo port install wget
Für _MACOSX mit OpenMP-Pfad kompilieren und bladeGPS bauen
$ cd ../../../bladeGPS
$ make CFLAGS=”-I/opt/local/include/libomp _MACOSX”
Ein Dockerfile wurde aus einem Ubuntu-20.04-Image erstellt, mit dem Sie in Sekundenschnelle einen Docker-Container starten können.
Docker-Image bauen
$ cd docker
$ docker build -t bladegps .
bladegps-Befehl direkt ausführen
$ docker run -it --rm --privileged --device /dev/ttyUSB0 bladegps \
/bin/bash -c "bladegps -e /opt/bladeGPS/brdc3300.18n -l 35.274,137.014,100 -d 86400"
bladegps-Befehl von der Docker-CLI aus ausführen
$ docker run -it --rm --privileged --device /dev/ttyUSB0 bladegps /bin/bash
bladegps@cb744220dea3:~$ bladegps -e /opt/bladeGPS/brdc3300.18n -l 35.274,137.014,100 -d 86400
Eine docker-compose.yml-Beispieldatei wird bereitgestellt, wenn Sie bladegps als Dienst ausführen möchten, der beim Erreichen der Enddauer neu startet. Bearbeiten Sie den Befehl und den Gerätenamen, bevor Sie den Dienst mit docker-compose starten.
Docker-Compose-Dienst im Hintergrund ausführen
$ cd docker
$ docker-compose up -d
Status des Docker-Compose-Prozesses überprüfen
$ docker-compose ps
Bei Bedarf eine Verbindung zum Container herstellen, der den Dienst ausführt
$ docker-compose exec bladegps /bin/bash
Den Dienst beenden, wenn fertig
$ docker-compose down
Copyright © 2015-2022 Takuji Ebinuma
Verteilt unter der MIT-Lizenz.