mirror of
https://github.com/smittix/intercept.git
synced 2026-07-05 16:18:12 -07:00
Fix SoapySDR detection and HackRF ADS-B error message
- Try multiple SoapySDR utility names: SoapySDRUtil, soapy_sdr_util, soapysdr-util - Improve error message for HackRF/LimeSDR ADS-B to mention readsb requirement 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -336,7 +336,10 @@ def start_adsb():
|
|||||||
time.sleep(DUMP1090_START_WAIT)
|
time.sleep(DUMP1090_START_WAIT)
|
||||||
|
|
||||||
if app_module.adsb_process.poll() is not None:
|
if app_module.adsb_process.poll() is not None:
|
||||||
return jsonify({'status': 'error', 'message': 'dump1090 failed to start. Check RTL-SDR device permissions or if another process is using it.'})
|
if sdr_type == SDRType.RTL_SDR:
|
||||||
|
return jsonify({'status': 'error', 'message': 'dump1090 failed to start. Check RTL-SDR device permissions or if another process is using it.'})
|
||||||
|
else:
|
||||||
|
return jsonify({'status': 'error', 'message': f'ADS-B decoder failed to start for {sdr_type.value}. Ensure readsb is installed with SoapySDR support and the device is connected.'})
|
||||||
|
|
||||||
adsb_using_service = True
|
adsb_using_service = True
|
||||||
thread = threading.Thread(target=parse_sbs_stream, args=(f'localhost:{ADSB_SBS_PORT}',), daemon=True)
|
thread = threading.Thread(target=parse_sbs_stream, args=(f'localhost:{ADSB_SBS_PORT}',), daemon=True)
|
||||||
|
|||||||
+13
-3
@@ -144,6 +144,15 @@ def detect_rtlsdr_devices() -> list[SDRDevice]:
|
|||||||
return devices
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
def _find_soapy_util() -> str | None:
|
||||||
|
"""Find SoapySDR utility command (name varies by distribution)."""
|
||||||
|
# Try different command names used across distributions
|
||||||
|
for cmd in ['SoapySDRUtil', 'soapy_sdr_util', 'soapysdr-util']:
|
||||||
|
if _check_tool(cmd):
|
||||||
|
return cmd
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def detect_soapy_devices(skip_types: Optional[set[SDRType]] = None) -> list[SDRDevice]:
|
def detect_soapy_devices(skip_types: Optional[set[SDRType]] = None) -> list[SDRDevice]:
|
||||||
"""
|
"""
|
||||||
Detect SDR devices via SoapySDR.
|
Detect SDR devices via SoapySDR.
|
||||||
@@ -156,13 +165,14 @@ def detect_soapy_devices(skip_types: Optional[set[SDRType]] = None) -> list[SDRD
|
|||||||
devices: list[SDRDevice] = []
|
devices: list[SDRDevice] = []
|
||||||
skip_types = skip_types or set()
|
skip_types = skip_types or set()
|
||||||
|
|
||||||
if not _check_tool('SoapySDRUtil'):
|
soapy_cmd = _find_soapy_util()
|
||||||
logger.debug("SoapySDRUtil not found, skipping SoapySDR detection")
|
if not soapy_cmd:
|
||||||
|
logger.debug("SoapySDR utility not found, skipping SoapySDR detection")
|
||||||
return devices
|
return devices
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
['SoapySDRUtil', '--find'],
|
[soapy_cmd, '--find'],
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
timeout=10
|
timeout=10
|
||||||
|
|||||||
Reference in New Issue
Block a user