Overhaul mode A/C matching to be much cheaper.
The old matching process which tracked mode A values as pseudo-aircraft got very, very expensive with a large number of mode A/C messages (and with lots of single-bit errors, which seems common with a Beast doing the reception) Instead just count A/C messages directly into a 4096-entry array (which is very fast) and periodically scan the mode S aircraft list to see if we can match anything up (which is fixed overhead + cost proportional to the number of mode S aircraft)
This commit is contained in:
parent
60f1f3bcb6
commit
25ea6d398b
6 changed files with 111 additions and 140 deletions
|
|
@ -105,12 +105,6 @@ typedef struct rtlsdr_dev rtlsdr_dev_t;
|
|||
#define MODEAC_MSG_SAMPLES (25 * 2) // include up to the SPI bit
|
||||
#define MODEAC_MSG_BYTES 2
|
||||
#define MODEAC_MSG_SQUELCH_LEVEL 0x07FF // Average signal strength limit
|
||||
#define MODEAC_MSG_FLAG (1<<0)
|
||||
#define MODEAC_MSG_MODES_HIT (1<<1)
|
||||
#define MODEAC_MSG_MODEA_HIT (1<<2)
|
||||
#define MODEAC_MSG_MODEC_HIT (1<<3)
|
||||
#define MODEAC_MSG_MODEA_ONLY (1<<4)
|
||||
#define MODEAC_MSG_MODEC_OLD (1<<5)
|
||||
|
||||
#define MODES_PREAMBLE_US 8 // microseconds = bits
|
||||
#define MODES_PREAMBLE_SAMPLES (MODES_PREAMBLE_US * 2)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue