feat: APRS export, USRP support, and MQTT data export (closes #222)

- GET /aprs/export?format=json|csv downloads all tracked APRS stations
- USRP (Ettus N200/B200/B210) detected via SoapyUHD and supported across
  all signal modes (FM demod, ADS-B, ISM, AIS, I/Q capture)
- Optional MQTT publisher broadcasts decoded events from every module;
  enabled by setting INTERCEPT_MQTT_BROKER, disabled by default
- paho-mqtt added to requirements.txt (optional dep)
- .gitignore: add *.kismet, aircraft_db.json/meta, SoapySDR/
- Bump version to 2.30.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
James Smith
2026-07-07 11:47:21 +01:00
parent 6d0b0437b3
commit dfab714104
12 changed files with 358 additions and 4 deletions
+3
View File
@@ -32,6 +32,7 @@ from .hackrf import HackRFCommandBuilder
from .limesdr import LimeSDRCommandBuilder
from .rtlsdr import RTLSDRCommandBuilder
from .sdrplay import SDRPlayCommandBuilder
from .usrp import USRPCommandBuilder
from .validation import (
SDRValidationError,
get_capabilities_for_type,
@@ -53,6 +54,7 @@ class SDRFactory:
SDRType.HACKRF: HackRFCommandBuilder,
SDRType.AIRSPY: AirspyCommandBuilder,
SDRType.SDRPLAY: SDRPlayCommandBuilder,
SDRType.USRP: USRPCommandBuilder,
}
@classmethod
@@ -211,6 +213,7 @@ __all__ = [
"HackRFCommandBuilder",
"AirspyCommandBuilder",
"SDRPlayCommandBuilder",
"USRPCommandBuilder",
# Validation
"SDRValidationError",
"validate_frequency",