diff --git a/requirements.txt b/requirements.txt index 8319617..9b064a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ numpy -scipy pyaudio requests crcmod diff --git a/setup.py b/setup.py index 83fe081..af70516 100755 --- a/setup.py +++ b/setup.py @@ -40,11 +40,10 @@ if __name__ == "__main__": "Intended Audience :: Developers", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", - ] - # TODO: Deal with entry points. - # entry_points={ - # "console_scripts": [ - # "hfssdv=hfssdv.gui.main", - # ] - # }, + ], + entry_points={ + "console_scripts": [ + "horus-gui=horusgui.gui", + ] + } ) diff --git a/src/horusgui/fft.py b/src/horusgui/fft.py index ad8e9a7..e9388f6 100644 --- a/src/horusgui/fft.py +++ b/src/horusgui/fft.py @@ -2,7 +2,6 @@ import logging import time import numpy as np -import scipy.signal from queue import Queue from threading import Thread @@ -40,7 +39,7 @@ class FFTProcess(object): def init_window(self): """ Initialise Window functions and FFT scales. """ - self.window = scipy.signal.blackmanharris(self.nfft) + self.window = np.hanning(self.nfft) self.fft_scale = np.fft.fftshift(np.fft.fftfreq(self.nfft)) * self.fs self.mask = (self.fft_scale > self.range[0]) & (self.fft_scale < self.range[1]) diff --git a/src/horusgui/gui.py b/src/horusgui/gui.py index 3dd4d3a..6792980 100644 --- a/src/horusgui/gui.py +++ b/src/horusgui/gui.py @@ -160,6 +160,7 @@ w1_habitat.addWidget(widgets["userAntennaLabel"], 3, 0, 1, 1) w1_habitat.addWidget(widgets["userAntennaEntry"], 3, 1, 1, 2) w1_habitat.addWidget(widgets["userRadioLabel"], 4, 0, 1, 1) w1_habitat.addWidget(widgets["userRadioEntry"], 4, 1, 1, 2) +w1_habitat.layout.setRowStretch(5,1) d0_habitat.addWidget(w1_habitat) @@ -175,6 +176,8 @@ w1_other.addWidget(widgets["horusUploadLabel"], 0, 0, 1, 1) w1_other.addWidget(widgets["horusUploadSelector"], 0, 1, 1, 1) w1_other.addWidget(widgets["horusUDPLabel"], 1, 0, 1, 1) w1_other.addWidget(widgets["horusUDPEntry"], 1, 1, 1, 1) +w1_other.layout.setRowStretch(5,1) + d0_other.addWidget(w1_other) # Spectrum Display @@ -183,12 +186,6 @@ widgets["spectrumPlot"].setLabel("left", "Power (dB)") widgets["spectrumPlot"].setLabel("bottom", "Frequency (Hz)") widgets["spectrumPlotData"] = widgets["spectrumPlot"].plot([0]) -widgets["spectrumPlot"].setLabel("left", "Power (dBFs)") -widgets["spectrumPlot"].setLabel("bottom", "Frequency", units="Hz") -widgets["spectrumPlot"].setXRange(100, 4000) -widgets["spectrumPlot"].setYRange(-100, -20) -widgets["spectrumPlot"].setLimits(xMin=0, xMax=4000, yMin=-120, yMax=0) - # Frequency Estiator Outputs widgets["estimatorLines"] = [ pg.InfiniteLine( @@ -215,6 +212,12 @@ widgets["estimatorLines"] = [ for _line in widgets["estimatorLines"]: widgets["spectrumPlot"].addItem(_line) +widgets["spectrumPlot"].setLabel("left", "Power (dBFs)") +widgets["spectrumPlot"].setLabel("bottom", "Frequency", units="Hz") +widgets["spectrumPlot"].setXRange(100, 4000) +widgets["spectrumPlot"].setYRange(-100, -20) +widgets["spectrumPlot"].setLimits(xMin=100, xMax=4000, yMin=-120, yMax=0) + d1.addWidget(widgets["spectrumPlot"]) widgets["spectrumPlotRange"] = [-100, -20] @@ -330,8 +333,10 @@ def start_decoding(): # TODO: Grab horus data here. # Init FFT Processor + NFFT = 2**14 + STRIDE = 2**13 fft_process = FFTProcess( - nfft=8192, stride=4096, fs=_sample_rate, callback=add_fft_update + nfft=NFFT, stride=STRIDE, fs=_sample_rate, callback=add_fft_update ) # TODO: Setup modem here