-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
Problem
The antenna setting configured via setAntenna() is reset to a default value after calling activateStream() on some configurations. This forces applications to re-apply the antenna setting after stream activation and verify it was applied correctly.
Observed Behavior
- Call
setAntenna(SOAPY_SDR_RX, 0, "Tuner 1 50 ohm") - Verify with
getAntenna()- returns correct value - Call
setupStream()andactivateStream() - Call
getAntenna()again - returns different value (e.g., "Tuner 2 Hi-Z")
Workaround
Applications must:
- Query antenna after stream activation
- Re-apply antenna if it changed
- Verify again
Example workaround code:
# After activateStream()
actual_antenna = sdr.getAntenna(SOAPY_SDR_RX, 0)
if actual_antenna != requested_antenna:
sdr.setAntenna(SOAPY_SDR_RX, 0, requested_antenna)
# Verify it stuck
final = sdr.getAntenna(SOAPY_SDR_RX, 0)
if final != requested_antenna:
logger.warning(f"Antenna mismatch: wanted {requested_antenna}, got {final}")Expected Behavior
Antenna setting should persist through stream activation, or the driver should automatically re-apply the configured antenna after internal resets.
Environment
- macOS (Apple Silicon)
- SDRplay RSPduo
- SoapySDRPlay3 driver
Suggested Fix
In the driver's activateStream() implementation, after any internal API calls that might reset state, re-apply the cached antenna setting:
int SoapySDRPlay::activateStream(...) {
// ... existing activation code ...
// Re-apply antenna setting if it was explicitly set
if (_antennaConfigured[channel]) {
// Re-apply the cached antenna value
setAntenna(direction, channel, _configuredAntenna[channel]);
}
return 0;
}🤖 Generated with Claude Code
Metadata
Metadata
Assignees
Labels
No labels