
Simulador de señales GPS en tiempo real para bladeRF
Implementación experimental muy rudimentaria de gps-sdr-sim para generación de señales en tiempo real. El código funciona con bladeRF y ha sido probado en Windows 10 y Ubuntu 20.04.
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
Sigue las instrucciones en la página wiki de Nuand y compila la librería bladeRF desde el código fuente con Visual Studio 2013 Express para Windows Desktop. Asume que ya descargaste los archivos de pthread y libusb y compilaste exitosamente la librería bladeRF para tu entorno Windows.
Configuration Properties -> C/C++ -> General -> Additional Include Directories:
Configuration Properties -> Linker -> General -> Additional Library Directories:
Configuration Properties -> Linker -> Input -> Additional Dependencies:
Build -> Build SolutionDespués de una compilación exitosa, puedes encontrar el ejecutable en la carpeta Release. Debes colocar las copias de las siguientes DLL en la misma carpeta para ejecutar el código:
Obtén el código fuente de bladeRF en un directorio junto al directorio actual
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Compila la librería host de bladeRF
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make
Compila bladeGPS
$ cd ../../../bladeGPS
$ make
Instala Xcode
Instala las herramientas de línea de comandos de Xcode
$ xcode-select --install
Instala MacPorts
Crea un enlace simbólico a port
$ sudo ln -s /opt/local/bin/port /usr/local/bin/port
Instala bladeRF
$ sudo port install bladeRF +tecla
Instala cmake
$ sudo port install cmake
Obtén el código fuente de bladeRF en un directorio junto al directorio actual
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Compila la librería host de bladeRF
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make && sudo make install
Instala libomp y wget
$ sudo port install libomp
$ sudo port install wget
Compila para _MACOSX con la ruta de OpenMP y compila bladeGPS
$ cd ../../../bladeGPS
$ make CFLAGS=”-I/opt/local/include/libomp _MACOSX”
Se creó un Dockerfile a partir de la imagen de Ubuntu 20.04 que permite iniciar
un contenedor docker en segundos.
Construir la imagen docker
$ cd docker
$ docker build -t bladegps .
Ejecutar el comando bladegps directamente
$ 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"
Ejecutar el comando bladegps desde el cli de docker
$ 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
Se proporciona un ejemplo de docker-compose.yml, si deseas ejecutar bladegps como un
servicio, reiniciándose cuando llegue al final de la duración. Edita el comando y el nombre
del dispositivo antes de iniciar el servicio usando docker-compose.
Ejecutar el servicio docker-compose en segundo plano
$ cd docker
$ docker-compose up -d
Verificar el estado del proceso docker-compose
$ docker-compose ps
Conectarse al contenedor que ejecuta el servicio, si se desea
$ docker-compose exec bladegps /bin/bash
Detener el servicio cuando termine
$ docker-compose down
Copyright © 2015-2022 Takuji Ebinuma
Distribuido bajo la Licencia MIT.