
Симулятор GPS-сигнала в реальном времени для bladeRF
Очень грубая экспериментальная реализация gps-sdr-sim для генерации сигнала в реальном времени. Код работает с bladeRF и протестирован на Windows 10 и 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
Следуйте инструкциям на странице Nuand wiki и соберите библиотеку bladeRF из исходников с помощью Visual Studio 2013 Express for Windows Desktop. Предполагается, что вы уже загрузили файлы pthread и libusb и успешно собрали библиотеку bladeRF для вашей среды Windows.
Configuration Properties -> C/C++ -> General -> Additional Include Directories:
Configuration Properties -> Linker -> General -> Additional Library Directories:
Configuration Properties -> Linker -> Input -> Additional Dependencies:
Build -> Build SolutionПосле успешной сборки вы найдете исполняемый файл в папке Release. Для запуска кода поместите копии следующих DLL в ту же папку:
Получите исходный код bladeRF в каталоге рядом с текущим
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Соберите хост-библиотеку bladeRF
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make
Соберите bladeGPS
$ cd ../../../bladeGPS
$ make
Установите Xcode
Установите Xcode Command Line Tools
$ xcode-select --install
Установите MacPorts
Создайте символическую ссылку на port
$ sudo ln -s /opt/local/bin/port /usr/local/bin/port
Установите bladeRF
$ sudo port install bladeRF +tecla
Установите cmake
$ sudo port install cmake
Получите исходный код bladeRF в каталоге рядом с текущим
$ cd ..
$ git clone [email protected]:Nuand/bladeRF.git
Соберите хост-библиотеку bladeRF
$ cd bladeRF/host
$ mkdir build
$ cd build
$ cmake ..
$ make && sudo make install
Установите libomp и wget
$ sudo port install libomp
$ sudo port install wget
Скомпилируйте для _MACOSX с путём OpenMP и соберите bladeGPS
$ cd ../../../bladeGPS
$ make CFLAGS="-I/opt/local/include/libomp _MACOSX"
Был создан Dockerfile на основе образа Ubuntu 20.04, который позволяет запустить
docker-контейнер за секунды.
Соберите docker-образ
$ cd docker
$ docker build -t bladegps .
Запустите команду bladegps напрямую
$ 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 из cli 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
Предоставлен пример docker-compose.yml, если вы хотите запустить bladegps как
сервис, который перезапускается по достижении конца длительности. Отредактируйте команду
и имя устройства перед запуском сервиса с помощью docker-compose.
Запустите docker-compose сервис в фоне
$ cd docker
$ docker-compose up -d
Проверьте статус процесса docker-compose
$ docker-compose ps
Подключитесь к контейнеру с работающим сервисом, если необходимо
$ docker-compose exec bladegps /bin/bash
Остановите сервис, когда закончите
$ docker-compose down
Copyright © 2015-2022 Takuji Ebinuma
Распространяется под лицензией MIT.