Style, more airspy examples.

This commit is contained in:
Ian Gulliver
2016-02-13 23:55:12 +00:00
parent 9c848bb83b
commit 4618d67840
2 changed files with 40 additions and 18 deletions

View File

@@ -1,4 +1,4 @@
# Airspy protocol
# Airspy ADSB protocol
## Ports
@@ -7,19 +7,19 @@
## Format
Textual format, similar to [raw](raw.md), but extended with MLAT and signal
level data. Unlike raw format, lines are terminated with `0x0d 0x0a` (`\r\n`).
level data. Unlike raw format, lines are terminated with `\r\n` (`0x0d 0x0a`).
## Frame structure
* `0x2a` (`*`)
* `*` (`0x2a`)
* 7 or 14 byte frame (see [raw](raw.md))
* `0x3b` (`;`)
* `;` (`0x3b`)
* 4 byte MLAT timestamp (see below)
* `0x3b` (`;`)
* `;` (`0x3b`)
* 1 byte MLAT precision (see below)
* `0x3b` (`;`)
* `;` (`0x3b`)
* 2 byte big-endian RSSI
* `0x3b 0x0d 0x0a` (`;\r\n`)
* `;\r\n` (`0x3b 0x0d 0x0a`)
## MLAT timestamp
@@ -35,6 +35,26 @@ source position.
## Examples
* `*5DA7DA1CE30DE5;D03B5A4B;0A;7AF3;\r\n`
* `*` (`0x2a`): Frame start
* `5DA7DA1CE30DE5`: Mode-S short data
* Decoded: `0x5d 0xa7 0xda 0x1c 0xe3 0x0d 0xe5`
* `;` (`0x3b`): Delimiter
* `D03B5A4B`: MLAT counter
* Decoded: `0xd0 0x3b 0x5a 0x4b`
* Decimal: 3493550667
* `;` (`0x3b`): Delimiter
* `0A`: MLAT precision
* Decoded: `0x0a`
* Decimal: 10
* 10 * 2 MHz = 20 MHz MLAT counter clock
* `;` (`0x3b`): Delimiter
* `7AF3`: RSSI
* Decoded: `0x7a 0xf3`
* Decimal: 31475
* 31475 / 65536 * 100% = 48%
* `;` (`0x3b`): Delimiter
* `\r\n` (`0x0d 0x0a`): Frame end
* `*8DA07CD89915908778A01E4B4C86;D03D33F9;0A;8437;\r\n`

View File

@@ -25,13 +25,13 @@ Escaping makes frame length for a given type variable, up to
## Frame types
* `0x31`: Mode-AC frame
* 1 byte signal level (TODO: units?)
* 1 byte signal level
* 2 byte Mode-AC data
* `0x32`: Mode-S short frame
* 1 byte signal level (TODO: units?)
* 1 byte signal level
* 7 byte Mode-S short data
* `0x33`: Mode-S long frame
* 1 byte signal level (TODO: units?)
* 1 byte signal level
* 14 byte Mode-S long data
* `0x34`: Status data
* *Appears to only be used by Mode-S Beast hardware later versions*
@@ -49,15 +49,17 @@ station receive timing to calculate signal source position.
## Examples
* `1a 32 08 3e 27 b6 cb 6a 1a 1a 00 a1 84 1a 1a c3 b3 1d`
* `1a`: frame start
* `32`: Mode-S short frame
* `08 3e 27 b6 cb 6a`: MLAT counter value
* `0x1a 0x32 0x08 0x3e 0x27 0xb6 0xcb 0x6a 0x1a 0x1a 0x00 0xa1 0x84 0x1a 0x1a 0xc3 0xb3 0x1d`
* `0x1a`: Frame start
* `0x32`: Mode-S short frame
* `0x08 0x3e 0x27 0xb6 0xcb 0x6a`: MLAT counter value
* Decimal: 9063047285610
* `1a 1a`: Signal level
* Unescaped: `1a`
* `00 a1 84 1a 1a c3 b3 1d`: Mode-S short data
* Unescaped: `00 a1 84 1a c3 b3 1d`
* `0x1a 0x1a`: Signal level
* Unescaped: `0x1a`
* Decimal: 26
* 26 / 256 * 100% = 10.2%
* `0x00 0xa1 0x84 0x1a 0x1a 0xc3 0xb3 0x1d`: Mode-S short data
* Unescaped: `0x00 0xa1 0x84 0x1a 0xc3 0xb3 0x1d`
## Implementations