Add modulation filter screen plus minor modifications

This commit is contained in:
alessandro90
2018-11-18 17:02:07 +01:00
parent 3a30c5e3c2
commit 62d25244e0
5 changed files with 97 additions and 80 deletions

View File

@@ -4,77 +4,86 @@ from pandas import read_csv
class _ReadOnlyProperty(object):
def __init__(self, value):
self.value = value
self.__value = value
def __get__(self, obj, objtype):
return self.value
return self.__value
def __Set__(self, obj, value):
def __set__(self, obj, value):
return NotImplementedError("Cannot change a constant.")
def __make_read_only(cls):
for k, v in cls.__dict__.items():
if not callable(getattr(cls, k)) and '__' not in k:
setattr(cls, k, _ReadOnlyProperty(v))
# def raise_err(self, attr, value):
# raise NotImplementedError("Cannot add an attribute.")
# setattr(cls, '__setattr__', raise_err)
return cls
class Constants(object):
DB_LOCATION = _ReadOnlyProperty('https://aresvalley.com/Storage/Artemis/Database/data.zip')
REF_LOC = _ReadOnlyProperty('https://aresvalley.com/Storage/Artemis/Database/data.zip.log')
DATA_FOLDER = _ReadOnlyProperty('Data')
SPECTRA_FOLDER = _ReadOnlyProperty('Spectra')
AUDIO_FOLDER = _ReadOnlyProperty('Audio')
ICONS_FOLDER = _ReadOnlyProperty('icons_imgs')
__Band = namedtuple("Band", ["lower", "upper"])
__ELF = __Band(0, 30) # Formally it is (3, 30) Hz.
__SLF = __Band(30, 300)
__ULF = __Band(300, 3000)
__VLF = __Band(3000, 30000)
__LF = __Band(30 * 10**3, 300 * 10**3)
__MF = __Band(300 * 10 ** 3, 3000 * 10**3)
__HF = __Band(3 * 10**6, 30 * 10**6)
__VHF = __Band(30 * 10**6, 300 * 10**6)
__UHF = __Band(300 * 10**6, 3000 * 10**6)
__SHF = __Band(3 * 10**9, 30 * 10**9)
__EHF = __Band(30 * 10**9, 300 * 10**9)
BANDS = _ReadOnlyProperty((__ELF, __SLF, __ULF, __VLF, __LF, __MF, __HF, __VHF, __UHF, __SHF, __EHF))
ACTIVE_COLOR = _ReadOnlyProperty("#39eaff")
INACTIVE_COLOR = _ReadOnlyProperty("#9f9f9f")
CONVERSION_FACTORS = _ReadOnlyProperty({"Hz":1, "kHz":1000, "MHz":1000000, "GHz":1000000000})
MODES = _ReadOnlyProperty({"FM": ["NFM", "WFM"],
"AM": [],
"CW": [],
"SK": ["FSK", "PSK", "MSK"],
"SB": ["LSB", "USB", "DSB"],
"Chirp Spread Spectrum": [],
"FHSS-TDM": [],
"RAW": [],
"SC-FDMA": [],}
)
APPLY = _ReadOnlyProperty("Apply")
REMOVE = _ReadOnlyProperty("Remove")
UNKNOWN = _ReadOnlyProperty("N/A")
MODULATIONS = _ReadOnlyProperty(["8VSB",
"AFSK",
"AM",
"BFSK",
"C4FM",
"CDMA",
"COFDM",
"CW",
"FFSK",
"FM",
"FMCW",
"FMOP",
"FSK",
"GFSK",
"GMSK",
"IFK",
"MFSK",
"MSK",
"OFDM",
"OOK",
"PAM",
"PPM",
"PSK",
"QAM",
"TDMA",])
@__make_read_only
class __Constants(object):
DB_LOCATION = 'https://aresvalley.com/Storage/Artemis/Database/data.zip'
REF_LOC = 'https://aresvalley.com/Storage/Artemis/Database/data.zip.log'
DATA_FOLDER = 'Data'
SPECTRA_FOLDER = 'Spectra'
AUDIO_FOLDER = 'Audio'
ICONS_FOLDER = 'icons_imgs'
__Band = namedtuple("Band", ["lower", "upper"])
__ELF = __Band(0, 30) # Formally it is (3, 30) Hz.
__SLF = __Band(30, 300)
__ULF = __Band(300, 3000)
__VLF = __Band(3000, 30000)
__LF = __Band(30 * 10**3, 300 * 10**3)
__MF = __Band(300 * 10 ** 3, 3000 * 10**3)
__HF = __Band(3 * 10**6, 30 * 10**6)
__VHF = __Band(30 * 10**6, 300 * 10**6)
__UHF = __Band(300 * 10**6, 3000 * 10**6)
__SHF = __Band(3 * 10**9, 30 * 10**9)
__EHF = __Band(30 * 10**9, 300 * 10**9)
BANDS = (__ELF, __SLF, __ULF, __VLF, __LF, __MF, __HF, __VHF, __UHF, __SHF, __EHF)
ACTIVE_COLOR = "#39eaff"
INACTIVE_COLOR = "#9f9f9f"
CONVERSION_FACTORS = {"Hz":1, "kHz":1000, "MHz":1000000, "GHz":1000000000}
MODES = {"FM": ["NFM", "WFM"],
"AM": [],
"CW": [],
"SK": ["FSK", "PSK", "MSK"],
"SB": ["LSB", "USB", "DSB"],
"Chirp Spread Spectrum": [],
"FHSS-TDM": [],
"RAW": [],
"SC-FDMA": [],}
APPLY = "Apply"
REMOVE = "Remove"
UNKNOWN = "N/A"
MODULATIONS = ["8VSB",
"AFSK",
"AM",
"BFSK",
"C4FM",
"CDMA",
"COFDM",
"CW",
"FFSK",
"FM",
"FMCW",
"FMOP",
"FSK",
"GFSK",
"GMSK",
"IFK",
"MFSK",
"MSK",
"OFDM",
"OOK",
"PAM",
"PPM",
"PSK",
"QAM",
"TDMA",]
Constants = __Constants()
def reset_apply_remove_btn(button):
if button.isChecked():