From 4618d6784003e8884d0cd65dbb8216bee1616361 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sat, 13 Feb 2016 23:55:12 +0000 Subject: [PATCH] Style, more airspy examples. --- protocols/airspy_adsb.md | 34 +++++++++++++++++++++++++++------- protocols/beast.md | 24 +++++++++++++----------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/protocols/airspy_adsb.md b/protocols/airspy_adsb.md index b9f5d33..0da968c 100644 --- a/protocols/airspy_adsb.md +++ b/protocols/airspy_adsb.md @@ -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` diff --git a/protocols/beast.md b/protocols/beast.md index d1ceaa9..47b6c8d 100644 --- a/protocols/beast.md +++ b/protocols/beast.md @@ -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