# gr-adsb
A GNU Radio out-of-tree (OOT) module to demodulate and decode Automatic Dependent Surveillance Broadcast (ADS-B) messages.
## Features
* Supports many SDRs through GNU Radio and OsmoSDR (USRP, RTL-SDR, HackRF, BladeRF, etc)
* Supports various sample rates (2 Msps, 4 Msps, 6 Msps, etc). NOTE: Currently the sample rate must be an integer multiple of twice the symbol rate (2 Msym/s)
* Decoding of messages:
* DF 0: Short Air-Air Surveillance (ACAS)
* DF 4: Surveillance Altitude Reply
* DF 5: Surveillance Identity Reply
* DF 11: All-Call Reply
* DF 16: Long Air-Air Surveillance (ACAS)
* DF 17: ADS-B Extended Squitter
* DF 18: CF=0,1,6 ADS-B Extended Squitter from Non-Mode S Transponders
* DF 19: AF=0 Military ADS-B Extended Squitter
* DF 20: Comm-B Altitude Reply
* DF 21: Comm-B Identity Reply
* "Brief" stdout printing
* "Verbose" stdout printing
## Usage
### GNU Radio
There is an example GNU Radio Companion (`.grc`) flowgraph located at `gr-adsb/examples/adsb_rx.grc`. To use it, first open GNU Radio Companion `$ gnuradio-companion` and then open the `.grc` file.
![ADS-B Receiver Flowgraph](https://github.com/mhostetter/gr-adsb/blob/master/docs/adsb_rx.png)
Example "Brief" output:
```text
ICAO Callsign Alt Climb Speed Hdng Latitude Longitude Msgs Age
(ft) (ft/m) (kn) (deg) (s)
------ -------- ----- ----- ----- ---- ----------- ----------- ---- ---
a4da13 4349 60 16450 2240 360 9 39.0509491 -77.0292066 47 47
a72bda 27225 459 0
abe82c SWA3329 37000 0 481 39 6 221
a00ca4 FDX1273 36025 0 407 -157 39.6801034 -77.9697876 273 0
a58a1b 1775 2 2
a1c534 24975 -2816 471 31 9 233
a3cd6b 10575 542 0
a022ee FDX1234 28075 4352 455 -168 38.7769900 -78.8369141 168 23
a2dffe UAL1704 9725 0 307 -34 39.1294556 -78.0681909 114 0
aa8af7 16800 0 431 34 39.2041533 -76.5144043 59 110
a318ea 12075 27 257
aaf111 DAL1436 10525 -1152 303 -3 39.4307230 -76.9674072 921 55
ace5b6 16100 3 4
a50e47 29600 427 13
c00ec2 36975 0 413 103 37.9071614 -77.9345040 176 0
a8f63b FDX1679 25700 2240 419 175 38.9744110 -78.4300829 455 39
a8d62a FDX1630 34000 0 379 175 38.9746508 -78.4457397 126 234
```
Example "Verbose" Output:
```text
----------------------------------------------------------------------
Datetime: 2019-07-25 21:41:55.426630 UTC
SNR: 18.50 dB
DF: 0 Short Air-Air Surveillance (ACAS)
Parity: Passed (Recognized AA from AP)
AA: a50e47
Units: Standard
Altitude: 28800 ft
----------------------------------------------------------------------
Datetime: 2019-07-25 21:41:56.696635 UTC
SNR: 22.36 dB
DF: 4 Surveillance Altitude Reply
Parity: Passed (Recognized AA from AP)
AA: a50e47
FS: 0 No Alert, No SPI, In Air
DR: 0 No Downlink Request
IIS: 0
IDS: 0 No Information
Units: Standard
Altitude: 28800 ft
----------------------------------------------------------------------
Datetime: 2019-07-25 21:41:56.716640 UTC
SNR: 8.76 dB
DF: 11 All-Call Reply
Parity: Passed
CA: 5 Level >=2 Transponder, Can Set CA 7, In Air
AA: a72bda
----------------------------------------------------------------------
Datetime: 2019-07-25 21:41:57.006685 UTC
SNR: 12.92 dB
DF: 17 Extended Squitter
Parity: Passed
CA: 5 Level >=2 Transponder, Can Set CA 7, In Air
AA: a8f63b
TC: 19 Airborne Velocity
Speed: 367 kn
Heading: 177 deg (W)
Climb: 3136 ft/min
Source: Barometric Pressure Altitude Change Rate
----------------------------------------------------------------------
Datetime: 2019-07-25 21:41:57.249964 UTC
SNR: 16.79 dB
DF: 17 Extended Squitter
Parity: Passed
CA: 5 Level >=2 Transponder, Can Set CA 7, In Air
AA: aaf111
TC: 11 Airborne Position
Latitude: 39.4474182 N
Longitude: -77.4949314 E
Altitude: 10775 ft
```
### Webserver
To view the decoded planes and flight paths live in Google Maps, a webserver is included. The webserver can be started before or after the GRC flowgraph, but the webserver must be running to view the Google Maps webpage. The ZeroMQ block in the example flowgraph is required when using the webserver. Before running the webserver, be sure to install its [dependencies](#webserver-dependencies).
NOTE: The webserver is a Python 2.7 application. Incompatibilities with Python 3 exist.
1. Open a terminal
2. `$ cd gr-adsb/`
3. `$ cd web/`
4. `$ ./webserver.py` or `$ python2 webserver.py`
5. Open a web browser
6. Browse to `localhost:5000`
![Example Google Maps Webpage](https://github.com/mhostetter/gr-adsb/blob/master/docs/adsb_google_maps.png)
### SQLite Playback
Users can optionally record demodulated bursts to a SQLite database for storing or later replaying. This option depends on my other project [gr-sqlite](https://github.com/mhostetter/gr-sqlite). Follow these [instructions](https://github.com/mhostetter/gr-sqlite#installation) to install `gr-sqlite`.
To record bursts, enable the SQLite Sink in the `adsb_rx.grc` flowgraph. To replay those demodulated bursts later, run the `adsb_playback.grc` flowgraph.
![ADS-B Playback Flowgraph](https://github.com/mhostetter/gr-adsb/blob/master/docs/adsb_playback.png)
## Installation
GNU Radio is a dependency for `gr-adsb`. I recommend installing it with [PyBOMBS](https://github.com/gnuradio/pybombs). `gr-adsb` is currently compatible with GNU Radio 3.7 only. *GNU Radio 3.8 support is in development*.
### Source Build
Build `gr-adsb` manually from source using the following procedure.
```bash
$ cd gr-adsb/
$ mkdir build
$ cd build/
$ cmake ../ # or cmake -DCMAKE_INSTALL_PREFIX=<path_to_install> ../
$ make
$ sudo make install
$ sudo ldconfig
```
### Webserver Dependencies
If using the built-in Google Maps webserver, you'll need to install the following Python packages.
```bash
$ sudo pip install flask
$ sudo pip install flask-socketio
$ sudo pip install gevent
$ sudo pip install gevent-websocket
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
gr-adsb 一个GNU无线树外(OOT)模块,用于解调和解码自动相关监视广播(ADS-B)消息。 特征 通过GNU Radio和OsmoSDR支持许多SDR(USRP,RTL-SDR,HackRF,BladeRF等) 支持各种采样率(2 Msps,4 Msps,6 Msps等)。 注意:当前,采样率必须是符号率(2 Msym / s)的两倍的整数倍。 消息解码: DF 0:空空监视(ACAS) DF 4:监视高度答复 DF 5:监视身份回复 DF 11:全部通话回覆 DF 16:长时间空中监视(ACAS) DF 17:ADS-B扩展分频器 DF 18:来自非模式S应答器的CF = 0,1,6 ADS-B扩展的分频器 DF 19:AF = 0军用ADS-B扩展分散器 DF 20:Comm-B高度回复 DF 21:Comm-B身份回复 “简要”标准输出 “详细”标准输出 用法
资源推荐
资源详情
资源评论
收起资源包目录
gr-adsb-master.zip (70个子文件)
gr-adsb-master
CMakeLists.txt 7KB
.gitignore 32B
COPYING 34KB
README.md 7KB
grc
adsb_decoder.xml 2KB
CMakeLists.txt 893B
adsb_framer.xml 576B
adsb_demod.xml 516B
docs
adsb_playback.png 35KB
CMakeLists.txt 1KB
TC_histogram.txt 362B
adsb_rx.png 68KB
DF_histogram.txt 323B
adsb_google_maps.png 621KB
README.adsb 372B
doxygen
CMakeLists.txt 2KB
Doxyfile.in 80KB
other
main_page.dox 269B
group_defs.dox 205B
doxyxml
base.py 7KB
text.py 2KB
generated
compoundsuper.py 352KB
index.py 2KB
__init__.py 235B
compound.py 20KB
indexsuper.py 19KB
__init__.py 2KB
doxyindex.py 6KB
Doxyfile.swig_doc.in 79KB
swig_doc.py 8KB
examples
.gitignore 37B
adsb_playback.grc 5KB
adsb_rx.grc 44KB
README 168B
kml
sqlite_to_kml.py 7KB
include
adsb
CMakeLists.txt 1015B
api.h 1KB
apps
CMakeLists.txt 852B
cmake
cmake_uninstall.cmake.in 1KB
Modules
GrPython.cmake 9KB
UseSWIG.cmake 11KB
GrPlatform.cmake 2KB
FindGnuradioRuntime.cmake 1KB
GrMiscUtils.cmake 19KB
GrSwig.cmake 10KB
GrTest.cmake 6KB
adsbConfig.cmake 731B
FindCppUnit.cmake 1KB
CMakeParseArgumentsCopy.cmake 6KB
web
static
img
colorbar.png 9KB
js
map.js 9KB
index.html 1KB
webserver.py 2KB
MANIFEST.md 664B
swig
CMakeLists.txt 2KB
adsb_swig.i 153B
lib
CMakeLists.txt 2KB
qa_adsb.h 1KB
test_adsb.cc 1KB
qa_adsb.cc 1KB
python
CMakeLists.txt 2KB
framer.py 8KB
qa_framer.py 1KB
decoder.py 48KB
build_utils_codes.py 1KB
demod.py 5KB
build_utils.py 7KB
__init__.py 1KB
qa_decoder.py 1KB
qa_demod.py 1KB
共 70 条
- 1
资源评论
鸡糟的黄医桑
- 粉丝: 25
- 资源: 4636
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功