restore old hf read logic for 3300+

main_2
Sergey Revyakin 3 days ago
parent 5682c23f6f
commit a90b4c6a98

@ -18,7 +18,6 @@ import time
import threading
import subprocess
import os
import numpy as np
from common.runtime import load_root_env, resolve_hackrf_index
@ -83,14 +82,6 @@ class get_center_freq(gr.top_block):
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)
self.read_pipe_settle_sec = float(os.getenv('read_pipe_settle_sec_hf', '0.003'))
self.read_pipe_windows_per_update = max(1, int(os.getenv('read_pipe_windows_per_update_hf', '3')) )
self.read_pipe_vec_len = 4096
self.read_pipe_window_sec = self.read_pipe_vec_len / self.samp_rate
self.read_pipe_poll_sec = float(os.getenv('read_pipe_poll_sec_hf', str(self.read_pipe_window_sec)))
self.read_pipe_poll_sec = max(self.read_pipe_window_sec, self.read_pipe_poll_sec)
self.read_pipe_next_at = time.monotonic()
self.read_pipe_settle_until = 0.0
##################################################
# Blocks
@ -103,42 +94,21 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
now = time.monotonic()
if now < self.read_pipe_settle_until:
time.sleep(min(self.read_pipe_poll_sec, self.read_pipe_settle_until - now))
continue
windows = []
for i in range(self.read_pipe_windows_per_update):
windows.append(np.array(self.probSigVec.level()).ravel())
if i + 1 < self.read_pipe_windows_per_update:
time.sleep(self.read_pipe_window_sec)
if len(windows) == 1:
val = windows[0]
else:
val = np.concatenate(windows, axis=None)
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
self.read_pipe_next_at += self.read_pipe_poll_sec
sleep_for = self.read_pipe_next_at - time.monotonic()
if sleep_for > 0:
time.sleep(sleep_for)
else:
self.read_pipe_next_at = time.monotonic()
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
@ -158,12 +128,7 @@ class get_center_freq(gr.top_block):
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
next_center = my_freq.work(self.prob_freq)
if next_center is None:
return
if next_center != self.center_freq:
self.set_center_freq(next_center)
self.read_pipe_settle_until = time.monotonic() + self.read_pipe_settle_sec
self.set_center_freq(my_freq.work(self.prob_freq))
def get_top_peaks_amount(self):
return self.top_peaks_amount

@ -18,7 +18,6 @@ import time
import threading
import subprocess
import os
import numpy as np
from common.runtime import load_root_env, resolve_hackrf_index
@ -83,14 +82,6 @@ class get_center_freq(gr.top_block):
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)
self.read_pipe_settle_sec = float(os.getenv('read_pipe_settle_sec_hf', '0.003'))
self.read_pipe_windows_per_update = max(1, int(os.getenv('read_pipe_windows_per_update_hf', '3')) )
self.read_pipe_vec_len = 4096
self.read_pipe_window_sec = self.read_pipe_vec_len / self.samp_rate
self.read_pipe_poll_sec = float(os.getenv('read_pipe_poll_sec_hf', str(self.read_pipe_window_sec)))
self.read_pipe_poll_sec = max(self.read_pipe_window_sec, self.read_pipe_poll_sec)
self.read_pipe_next_at = time.monotonic()
self.read_pipe_settle_until = 0.0
##################################################
# Blocks
@ -103,42 +94,21 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
now = time.monotonic()
if now < self.read_pipe_settle_until:
time.sleep(min(self.read_pipe_poll_sec, self.read_pipe_settle_until - now))
continue
windows = []
for i in range(self.read_pipe_windows_per_update):
windows.append(np.array(self.probSigVec.level()).ravel())
if i + 1 < self.read_pipe_windows_per_update:
time.sleep(self.read_pipe_window_sec)
if len(windows) == 1:
val = windows[0]
else:
val = np.concatenate(windows, axis=None)
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
self.read_pipe_next_at += self.read_pipe_poll_sec
sleep_for = self.read_pipe_next_at - time.monotonic()
if sleep_for > 0:
time.sleep(sleep_for)
else:
self.read_pipe_next_at = time.monotonic()
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
@ -158,12 +128,7 @@ class get_center_freq(gr.top_block):
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
next_center = my_freq.work(self.prob_freq)
if next_center is None:
return
if next_center != self.center_freq:
self.set_center_freq(next_center)
self.read_pipe_settle_until = time.monotonic() + self.read_pipe_settle_sec
self.set_center_freq(my_freq.work(self.prob_freq))
def get_top_peaks_amount(self):
return self.top_peaks_amount

@ -18,7 +18,6 @@ import time
import threading
import subprocess
import os
import numpy as np
from common.runtime import load_root_env, resolve_hackrf_index
load_root_env(__file__)
@ -82,14 +81,6 @@ class get_center_freq(gr.top_block):
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)
self.read_pipe_settle_sec = float(os.getenv('read_pipe_settle_sec_hf', '0.003'))
self.read_pipe_windows_per_update = max(1, int(os.getenv('read_pipe_windows_per_update_hf', '3')) )
self.read_pipe_vec_len = 4096
self.read_pipe_window_sec = self.read_pipe_vec_len / self.samp_rate
self.read_pipe_poll_sec = float(os.getenv('read_pipe_poll_sec_hf', str(self.read_pipe_window_sec)))
self.read_pipe_poll_sec = max(self.read_pipe_window_sec, self.read_pipe_poll_sec)
self.read_pipe_next_at = time.monotonic()
self.read_pipe_settle_until = 0.0
##################################################
# Blocks
@ -103,41 +94,20 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_bb_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
now = time.monotonic()
if now < self.read_pipe_settle_until:
time.sleep(min(self.read_pipe_poll_sec, self.read_pipe_settle_until - now))
continue
windows = []
for i in range(self.read_pipe_windows_per_update):
windows.append(np.array(self.probSigVec.level()).ravel())
if i + 1 < self.read_pipe_windows_per_update:
time.sleep(self.read_pipe_window_sec)
if len(windows) == 1:
val = windows[0]
else:
val = np.concatenate(windows, axis=None)
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
self.read_pipe_next_at += self.read_pipe_poll_sec
sleep_for = self.read_pipe_next_at - time.monotonic()
if sleep_for > 0:
time.sleep(sleep_for)
else:
self.read_pipe_next_at = time.monotonic()
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
@ -157,12 +127,7 @@ class get_center_freq(gr.top_block):
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
next_center = my_freq.work(self.prob_freq)
if next_center is None:
return
if next_center != self.center_freq:
self.set_center_freq(next_center)
self.read_pipe_settle_until = time.monotonic() + self.read_pipe_settle_sec
self.set_center_freq(my_freq.work(self.prob_freq))
def get_top_peaks_amount(self):
return self.top_peaks_amount

@ -18,7 +18,6 @@ import time
import threading
import subprocess
import os
import numpy as np
from common.runtime import load_root_env, resolve_hackrf_index
@ -83,14 +82,6 @@ class get_center_freq(gr.top_block):
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)
self.read_pipe_settle_sec = float(os.getenv('read_pipe_settle_sec_hf', '0.003'))
self.read_pipe_windows_per_update = max(1, int(os.getenv('read_pipe_windows_per_update_hf', '3')) )
self.read_pipe_vec_len = 4096
self.read_pipe_window_sec = self.read_pipe_vec_len / self.samp_rate
self.read_pipe_poll_sec = float(os.getenv('read_pipe_poll_sec_hf', str(self.read_pipe_window_sec)))
self.read_pipe_poll_sec = max(self.read_pipe_window_sec, self.read_pipe_poll_sec)
self.read_pipe_next_at = time.monotonic()
self.read_pipe_settle_until = 0.0
##################################################
# Blocks
@ -103,42 +94,21 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
now = time.monotonic()
if now < self.read_pipe_settle_until:
time.sleep(min(self.read_pipe_poll_sec, self.read_pipe_settle_until - now))
continue
windows = []
for i in range(self.read_pipe_windows_per_update):
windows.append(np.array(self.probSigVec.level()).ravel())
if i + 1 < self.read_pipe_windows_per_update:
time.sleep(self.read_pipe_window_sec)
if len(windows) == 1:
val = windows[0]
else:
val = np.concatenate(windows, axis=None)
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
self.read_pipe_next_at += self.read_pipe_poll_sec
sleep_for = self.read_pipe_next_at - time.monotonic()
if sleep_for > 0:
time.sleep(sleep_for)
else:
self.read_pipe_next_at = time.monotonic()
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
@ -158,12 +128,7 @@ class get_center_freq(gr.top_block):
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
next_center = my_freq.work(self.prob_freq)
if next_center is None:
return
if next_center != self.center_freq:
self.set_center_freq(next_center)
self.read_pipe_settle_until = time.monotonic() + self.read_pipe_settle_sec
self.set_center_freq(my_freq.work(self.prob_freq))
def get_top_peaks_amount(self):
return self.top_peaks_amount

Loading…
Cancel
Save