mirror of
https://github.com/smittix/intercept.git
synced 2026-04-24 06:40:00 -07:00
fix(airband): parse composite device value and send sdr_type to backend
The airband start function was calling parseInt() directly on composite device selector values like "rtlsdr:0", which always returned NaN and fell back to device 0. This also meant sdr_type was never sent to the backend, and could result in int(None) TypeError on the server. Now properly splits the composite value (matching ADS-B/ACARS/VDL2 pattern) and sends both device index and sdr_type. Also hardened backend int() parsing to use explicit None checks. Fixes: "Airband Error: Invalid parameter: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1311,9 +1311,9 @@ def start_audio() -> Response:
|
|||||||
try:
|
try:
|
||||||
frequency = float(data.get('frequency', 0))
|
frequency = float(data.get('frequency', 0))
|
||||||
modulation = normalize_modulation(data.get('modulation', 'wfm'))
|
modulation = normalize_modulation(data.get('modulation', 'wfm'))
|
||||||
squelch = int(data.get('squelch') or 0)
|
squelch = int(data['squelch']) if data.get('squelch') is not None else 0
|
||||||
gain = int(data.get('gain') or 40)
|
gain = int(data['gain']) if data.get('gain') is not None else 40
|
||||||
device = int(data.get('device') or 0)
|
device = int(data['device']) if data.get('device') is not None else 0
|
||||||
sdr_type = str(data.get('sdr_type', 'rtlsdr')).lower()
|
sdr_type = str(data.get('sdr_type', 'rtlsdr')).lower()
|
||||||
request_token_raw = data.get('request_token')
|
request_token_raw = data.get('request_token')
|
||||||
request_token = int(request_token_raw) if request_token_raw is not None else None
|
request_token = int(request_token_raw) if request_token_raw is not None else None
|
||||||
|
|||||||
@@ -3652,10 +3652,12 @@ sudo make install</code>
|
|||||||
|
|
||||||
async function startAirband() {
|
async function startAirband() {
|
||||||
const frequency = getAirbandFrequency();
|
const frequency = getAirbandFrequency();
|
||||||
const device = parseInt(document.getElementById('airbandDeviceSelect').value) || 0;
|
const compositeVal = document.getElementById('airbandDeviceSelect').value || 'rtlsdr:0';
|
||||||
|
const [sdr_type, deviceIdx] = compositeVal.includes(':') ? compositeVal.split(':') : ['rtlsdr', compositeVal];
|
||||||
|
const device = parseInt(deviceIdx) || 0;
|
||||||
const squelch = parseInt(document.getElementById('airbandSquelch').value) || 0;
|
const squelch = parseInt(document.getElementById('airbandSquelch').value) || 0;
|
||||||
|
|
||||||
console.log('[AIRBAND] Starting with device:', device, 'freq:', frequency, 'squelch:', squelch);
|
console.log('[AIRBAND] Starting with device:', device, 'sdr_type:', sdr_type, 'freq:', frequency, 'squelch:', squelch);
|
||||||
|
|
||||||
// Check if ADS-B tracking is using this device
|
// Check if ADS-B tracking is using this device
|
||||||
if (isTracking && adsbActiveDevice !== null && device === adsbActiveDevice) {
|
if (isTracking && adsbActiveDevice !== null && device === adsbActiveDevice) {
|
||||||
@@ -3682,7 +3684,8 @@ sudo make install</code>
|
|||||||
modulation: 'am', // Airband uses AM
|
modulation: 'am', // Airband uses AM
|
||||||
squelch: squelch,
|
squelch: squelch,
|
||||||
gain: 40,
|
gain: 40,
|
||||||
device: device
|
device: device,
|
||||||
|
sdr_type: sdr_type
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user