
bladeRF向けリアルタイムGPS信号シミュレータ
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 ページ の手順に従い、Visual Studio 2013 Express for Windows Desktop で bladeRF ライブラリをソースからビルドしてください。あらかじめ pthread および libusb ファイルをダウンロードし、bladeRF ライブラリを Windows 環境で正常にビルド済みであることを前提とします。
構成プロパティ -> C/C++ -> 全般 -> 追加のインクルードディレクトリ に以下のフォルダへのパスを追加する:
構成プロパティ -> リンカー -> 全般 -> 追加のライブラリディレクトリ に以下のフォルダへのパスを追加する:
構成プロパティ -> リンカー -> 入力 -> 追加の依存ファイル に追加ライブラリの名前を指定する:
ビルド -> ソリューションのビルド を実行するビルドが成功すると、実行可能ファイルは 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 コマンドラインツールをインストールする
$ 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
OpenMP パスを指定して _MACOSX 向けにコンパイルし、bladeGPS をビルドする
$ cd ../../../bladeGPS
$ make CFLAGS=”-I/opt/local/include/libomp _MACOSX”
Ubuntu 20.04 イメージから Dockerfile が作成されており、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"
docker cli から bladegps コマンドを実行する
$ 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
bladegps をサービスとして実行し、終了時間に達したら再起動したい場合のために docker-compose.yml の例が用意されています。 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 ライセンス の下で配布されています。