Add rtl_tcp (remote SDR) support v1.1.0

Features:
- Add rtl_tcp support for pager and sensor decoding
  - Connect to remote RTL-SDR via rtl_tcp server
  - New UI toggle and host:port inputs in sidebar
  - Supports rtl_fm and rtl_433 with remote devices

- Add remote dump1090 support for ADS-B tracking
  - Connect to dump1090 SBS output on remote machine
  - New "Remote" checkbox with host:port in ADS-B dashboard

Backend changes:
- Add rtl_tcp_host/port fields to SDRDevice dataclass
- Add is_network property for detecting remote devices
- Update RTLSDRCommandBuilder to use rtl_tcp:host:port format
- Add create_network_device() to SDRFactory
- Add validate_rtl_tcp_host/port validation functions
- Update pager, sensor, and adsb routes to accept remote params

Note: dump1090 doesn't support rtl_tcp directly - use remote
dump1090's SBS output (port 30003) for remote ADS-B tracking.
This commit is contained in:
Smittix
2026-01-05 08:44:58 +00:00
parent 27cbd47a80
commit ba4c6999a6
11 changed files with 279 additions and 16 deletions

View File

@@ -172,6 +172,34 @@ class SDRFactory:
capabilities=caps
)
@classmethod
def create_network_device(
cls,
host: str,
port: int = 1234
) -> SDRDevice:
"""
Create a network device for rtl_tcp connection.
Args:
host: rtl_tcp server hostname or IP address
port: rtl_tcp server port (default 1234)
Returns:
SDRDevice configured for rtl_tcp connection
"""
caps = cls.get_capabilities(SDRType.RTL_SDR)
return SDRDevice(
sdr_type=SDRType.RTL_SDR,
index=0,
name=f'{host}:{port}',
serial='rtl_tcp',
driver='rtl_tcp',
capabilities=caps,
rtl_tcp_host=host,
rtl_tcp_port=port
)
# Export commonly used items at package level
__all__ = [