Auto limitation of lower limit of upper frequency filter
This commit is contained in:
82
main.py
82
main.py
@@ -51,6 +51,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
self.db = None
|
||||
self.current_signal_name = ''
|
||||
self.signal_names = []
|
||||
self.total_signals = 0
|
||||
self.frequency_filters_btns = (
|
||||
self.elf_filter_btn,
|
||||
self.slf_filter_btn,
|
||||
@@ -74,32 +75,56 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
self.lower_freq_spinbox,
|
||||
self.upper_freq_filter_unit,
|
||||
self.upper_freq_spinbox)
|
||||
)
|
||||
)
|
||||
self.lower_freq_filter_unit.currentTextChanged.connect(
|
||||
partial(self.set_min_value_upper_limit,
|
||||
self.lower_freq_filter_unit,
|
||||
self.lower_freq_spinbox,
|
||||
self.upper_freq_filter_unit,
|
||||
self.upper_freq_spinbox)
|
||||
)
|
||||
)
|
||||
self.upper_freq_filter_unit.currentTextChanged.connect(
|
||||
partial(self.set_min_value_upper_limit,
|
||||
self.lower_freq_filter_unit,
|
||||
self.lower_freq_spinbox,
|
||||
self.upper_freq_filter_unit,
|
||||
self.upper_freq_spinbox)
|
||||
)
|
||||
)
|
||||
|
||||
self.activate_low_freq_filter_btn.toggled.connect(
|
||||
partial(self.activate_if_toggled,
|
||||
self.activate_low_freq_filter_btn,
|
||||
self.lower_freq_spinbox,
|
||||
self.lower_freq_filter_unit,
|
||||
self.lower_freq_confidence)
|
||||
)
|
||||
|
||||
self.activate_up_freq_filter_btn.toggled.connect(
|
||||
partial(self.activate_if_toggled,
|
||||
self.activate_up_freq_filter_btn,
|
||||
self.upper_freq_spinbox,
|
||||
self.upper_freq_filter_unit,
|
||||
self.upper_freq_confidence)
|
||||
)
|
||||
|
||||
self.apply_remove_freq_filter_btn.set_texts("Apply", "Remove")
|
||||
self.apply_remove_freq_filter_btn.set_slave_filters(
|
||||
*self.frequency_filters_btns,
|
||||
self.lower_freq_spinbox,
|
||||
self.upper_freq_spinbox,
|
||||
self.lower_freq_filter_unit,
|
||||
self.upper_freq_filter_unit,
|
||||
self.lower_freq_confidence,
|
||||
self.upper_freq_confidence,
|
||||
self.include_undef_freqs,
|
||||
[
|
||||
*self.frequency_filters_btns,
|
||||
self.include_undef_freqs,
|
||||
],
|
||||
self.activate_low_freq_filter_btn,
|
||||
[
|
||||
self.lower_freq_spinbox,
|
||||
self.lower_freq_filter_unit,
|
||||
self.lower_freq_confidence,
|
||||
],
|
||||
self.activate_up_freq_filter_btn,
|
||||
[
|
||||
self.upper_freq_spinbox,
|
||||
self.upper_freq_filter_unit,
|
||||
self.upper_freq_confidence,
|
||||
],
|
||||
)
|
||||
self.apply_remove_freq_filter_btn.clicked.connect(self.display_signals)
|
||||
self.reset_frequency_filters_btn.clicked.connect(self.reset_frequency_filters)
|
||||
@@ -231,6 +256,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
box.show()
|
||||
else:
|
||||
self.signal_names = self.db.index
|
||||
self.total_signals = len(self.signal_names)
|
||||
self.db.fillna("N/A", inplace = True)
|
||||
self.db["url_clicked"] = False
|
||||
try:
|
||||
@@ -243,9 +269,9 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
"Possible data curruption.\n"
|
||||
"Go to Updates->Force Download.")
|
||||
box.show()
|
||||
self.setStatusTip("Database version: undefined.")
|
||||
self.statusbar.showMessage("Database version: undefined.")
|
||||
else:
|
||||
self.setStatusTip(f"Database version: {self.db_version}")
|
||||
self.statusbar.showMessage(f"Database version: {self.db_version}")
|
||||
|
||||
@pyqtSlot()
|
||||
def set_min_value_upper_limit(self, lower_combo_box,
|
||||
@@ -274,19 +300,31 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
self.lower_spin_box,
|
||||
self.upper_combo_box,
|
||||
self.upper_spin_box
|
||||
)
|
||||
)
|
||||
)
|
||||
upper_spin_box.setValue(upper_spin_box.value() // (1000**counter))
|
||||
if upper_spin_box.minimum() != inf_limit:
|
||||
upper_spin_box.setMinimum(inf_limit)
|
||||
|
||||
@pyqtSlot()
|
||||
def activate_if_toggled(self, radio_btn, *widgets):
|
||||
toggled = True if radio_btn.isChecked() else False
|
||||
for w in widgets[:-1]: # Neglect the bool coming from the emitted signal.
|
||||
w.setEnabled(toggled)
|
||||
|
||||
@pyqtSlot()
|
||||
def display_signals(self):
|
||||
self.result_list.clear()
|
||||
text = self.search_bar.text()
|
||||
available_signals = 0
|
||||
for signal in self.signal_names:
|
||||
if text.lower() in signal.lower() and self.frequency_filters_ok(signal):
|
||||
self.result_list.addItem(signal)
|
||||
available_signals += 1
|
||||
self.upadte_status_tip(available_signals)
|
||||
|
||||
def upadte_status_tip(self, available_signals):
|
||||
self.statusbar.showMessage(f"Database version: {self.db_version}. {available_signals} out of {self.total_signals} signals displayed.")
|
||||
|
||||
@pyqtSlot()
|
||||
def reset_frequency_filters(self):
|
||||
@@ -298,12 +336,18 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
f.setChecked(False)
|
||||
if self.include_undef_freqs.isChecked():
|
||||
self.include_undef_freqs.setChecked(False)
|
||||
if self.activate_low_freq_filter_btn.isChecked():
|
||||
self.activate_low_freq_filter_btn.setChecked(False)
|
||||
self.activate_low_freq_filter_btn.clicked.emit()
|
||||
if self.activate_up_freq_filter_btn.isChecked():
|
||||
self.activate_up_freq_filter_btn.setChecked(False)
|
||||
self.activate_up_freq_filter_btn.clicked.emit()
|
||||
self.lower_freq_spinbox.setValue(0)
|
||||
self.upper_freq_spinbox.setValue(0)
|
||||
self.lower_freq_filter_unit.setCurrentText("MHz")
|
||||
self.upper_freq_filter_unit.setCurrentText("MHz")
|
||||
self.lower_freq_confidence.setValue(5)
|
||||
self.upper_freq_confidence.setValue(5)
|
||||
self.lower_freq_confidence.setValue(0)
|
||||
self.upper_freq_confidence.setValue(0)
|
||||
|
||||
def frequency_filters_ok(self, signal_name):
|
||||
if not self.apply_remove_freq_filter_btn.isChecked():
|
||||
@@ -329,16 +373,16 @@ class MyApp(QMainWindow, Ui_MainWindow):
|
||||
upper_freq_filter = self.upper_freq_spinbox.value()
|
||||
lower_limit_ok = True
|
||||
upper_limit_ok = True
|
||||
if lower_freq_filter > 0:
|
||||
if self.activate_low_freq_filter_btn.isChecked():
|
||||
lower_tol = self.lower_freq_confidence.value()
|
||||
lower_limit = lower_freq_filter - lower_tol / 100 * lower_freq_filter
|
||||
lower_units = self.lower_freq_filter_unit.currentText()
|
||||
lower_limit *= self.conversion_factors[lower_units]
|
||||
if not signal_freqs[1] >= lower_limit:
|
||||
lower_limit_ok = False
|
||||
if upper_freq_filter > 0:
|
||||
if self.activate_up_freq_filter_btn.isChecked():
|
||||
upper_tol = self.upper_freq_confidence.value()
|
||||
upper_limit = upper_freq_filter + lower_tol / 100 * lower_freq_filter
|
||||
upper_limit = upper_freq_filter + upper_tol / 100 * lower_freq_filter
|
||||
upper_units = self.upper_freq_filter_unit.currentText()
|
||||
upper_limit *= self.conversion_factors[upper_units]
|
||||
if not signal_freqs[0] < upper_limit:
|
||||
|
||||
Reference in New Issue
Block a user