kopia lustrzana https://github.com/projecthorus/radiosonde_auto_rx
Added scan flag to create unique SSRC for scan use cases
rodzic
81143b1acb
commit
e733dd4124
|
|
@ -16,17 +16,23 @@ from .utils import timeout_cmd
|
|||
def ka9q_setup_channel(
|
||||
sdr_hostname,
|
||||
frequency,
|
||||
sample_rate
|
||||
sample_rate,
|
||||
scan
|
||||
):
|
||||
if scan:
|
||||
ssrc="04"
|
||||
else:
|
||||
ssrc="01"
|
||||
|
||||
# tune --samprate 48000 --frequency 404m09 --mode iq --ssrc 404090000 --radio sonde.local
|
||||
_cmd = (
|
||||
f"{timeout_cmd()} 5 " # Add a timeout, because connections to non-existing servers block for ages
|
||||
f"tune "
|
||||
f"--samprate {int(sample_rate)} "
|
||||
f"--mode iq "
|
||||
f"--low {int(sample_rate) / (-2.4)} --high {int(sample_rate) / 2.4} "
|
||||
f"--low {int(int(sample_rate) / (-2.4))} --high {int(int(sample_rate) / 2.4)} "
|
||||
f"--frequency {int(frequency)} "
|
||||
f"--ssrc {round(frequency / 1000)}01 "
|
||||
f"--ssrc {round(frequency / 1000)}{ssrc} "
|
||||
f"--radio {sdr_hostname}"
|
||||
)
|
||||
|
||||
|
|
@ -62,8 +68,13 @@ def ka9q_setup_channel(
|
|||
|
||||
def ka9q_close_channel(
|
||||
sdr_hostname,
|
||||
frequency
|
||||
frequency,
|
||||
scan
|
||||
):
|
||||
if scan:
|
||||
ssrc="04"
|
||||
else:
|
||||
ssrc="01"
|
||||
|
||||
_cmd = (
|
||||
f"{timeout_cmd()} 5 " # Add a timeout, because connections to non-existing servers block for ages
|
||||
|
|
@ -71,7 +82,7 @@ def ka9q_close_channel(
|
|||
f"--samprate 48000 "
|
||||
f"--mode iq "
|
||||
f"--frequency 0 "
|
||||
f"--ssrc {round(frequency / 1000)}01 "
|
||||
f"--ssrc {round(frequency / 1000)}{ssrc} "
|
||||
f"--radio {sdr_hostname}"
|
||||
)
|
||||
|
||||
|
|
@ -108,11 +119,16 @@ def ka9q_close_channel(
|
|||
def ka9q_get_iq_cmd(
|
||||
sdr_hostname,
|
||||
frequency,
|
||||
sample_rate
|
||||
sample_rate,
|
||||
scan
|
||||
):
|
||||
if scan:
|
||||
ssrc="04"
|
||||
else:
|
||||
ssrc="01"
|
||||
|
||||
# We need to setup a channel before we can use it!
|
||||
_setup_success = ka9q_setup_channel(sdr_hostname, frequency, sample_rate)
|
||||
_setup_success = ka9q_setup_channel(sdr_hostname, frequency, sample_rate, scan)
|
||||
|
||||
if not _setup_success:
|
||||
logging.critical(f"KA9Q ({sdr_hostname}) - Could not setup rx channel! Decoder will likely timeout.")
|
||||
|
|
@ -124,7 +140,7 @@ def ka9q_get_iq_cmd(
|
|||
# -2 option was removed sometime in early 2024.
|
||||
_cmd = (
|
||||
f"pcmcat "
|
||||
f"-s {round(frequency / 1000)}01 "
|
||||
f"-s {round(frequency / 1000)}{ssrc} "
|
||||
f"{_pcm_host} |"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -330,7 +330,8 @@ def detect_sonde(
|
|||
bias = bias,
|
||||
sdr_hostname = sdr_hostname,
|
||||
sdr_port = sdr_port,
|
||||
ss_iq_path = ss_iq_path
|
||||
ss_iq_path = ss_iq_path,
|
||||
scan = True
|
||||
)
|
||||
|
||||
# rx_test_command = (
|
||||
|
|
|
|||
|
|
@ -279,7 +279,8 @@ def get_sdr_iq_cmd(
|
|||
bias = False,
|
||||
sdr_hostname = "",
|
||||
sdr_port = 5555,
|
||||
ss_iq_path = "./ss_iq"
|
||||
ss_iq_path = "./ss_iq",
|
||||
scan = False
|
||||
):
|
||||
"""
|
||||
Get a command-line argument to get IQ (signed 16-bit) from a SDR
|
||||
|
|
@ -301,6 +302,7 @@ def get_sdr_iq_cmd(
|
|||
Arguments for KA9Q SDR Server / SpyServer:
|
||||
sdr_hostname (str): Hostname of KA9Q Server
|
||||
sdr_port (int): Port number of KA9Q Server
|
||||
scan (bool): Create unique SSRC for scan attempts
|
||||
|
||||
Arguments for SpyServer Client:
|
||||
ss_iq_path (str): Path to spyserver IQ client utility.
|
||||
|
|
@ -358,7 +360,7 @@ def get_sdr_iq_cmd(
|
|||
return _cmd
|
||||
|
||||
if sdr_type == "KA9Q":
|
||||
_cmd = ka9q_get_iq_cmd(sdr_hostname, frequency, sample_rate)
|
||||
_cmd = ka9q_get_iq_cmd(sdr_hostname, frequency, sample_rate, scan)
|
||||
|
||||
if dc_block:
|
||||
_cmd += _dc_remove
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue