[feat](trx-backend-soapysdr): implement real hardware IQ source with feature gating

Add RealIqSource that connects to actual SoapySDR devices when soapysdr-sys
feature is enabled. Implements proper device initialization, frequency/bandwidth
configuration, gain control, and RX stream management.

When soapysdr-sys feature is disabled (default), falls back to MockIqSource
for testing. Update feature flags in Cargo.toml dependencies to support both
real hardware and mock operation.

- Device initialization with proper error handling
- RX frequency, bandwidth, and gain configuration
- IQ sample streaming via broadcast channel
- Proper resource cleanup via Drop trait
- Throttled MockIqSource to prevent 100% CPU

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 23:58:12 +01:00
parent a337c0ccea
commit 5a6cac470a
4 changed files with 249 additions and 5 deletions
+1
View File
@@ -12,6 +12,7 @@ default = ["ft817", "ft450d"]
ft817 = ["dep:trx-backend-ft817"]
ft450d = ["dep:trx-backend-ft450d"]
soapysdr = ["dep:trx-backend-soapysdr"]
soapysdr-sys = ["soapysdr", "trx-backend-soapysdr/soapysdr-sys"]
[dependencies]
trx-core = { path = "../../trx-core" }