Merge branch 'qtupdate'
authorTom Rondeau <trondeau@vt.edu>
Wed, 12 May 2010 01:19:15 +0000 (21:19 -0400)
committerTom Rondeau <trondeau@vt.edu>
Wed, 12 May 2010 01:19:15 +0000 (21:19 -0400)
35 files changed:
gnuradio-examples/python/digital/benchmark_qt_loopback.py
gnuradio-examples/python/digital/benchmark_qt_loopback2.py
gnuradio-examples/python/digital/qt_digital_window.py
gnuradio-examples/python/digital/qt_digital_window.ui
gnuradio-examples/python/digital/qt_digital_window2.py
gnuradio-examples/python/digital/qt_digital_window2.ui
gnuradio-examples/python/digital/qt_rx_window.py
gnuradio-examples/python/digital/qt_rx_window.ui
gnuradio-examples/python/digital/qt_rx_window2.py
gnuradio-examples/python/digital/qt_rx_window2.ui
gr-qtgui/src/lib/ConstellationDisplayPlot.cc
gr-qtgui/src/lib/ConstellationDisplayPlot.h
gr-qtgui/src/lib/FrequencyDisplayPlot.cc
gr-qtgui/src/lib/FrequencyDisplayPlot.h
gr-qtgui/src/lib/SpectrumGUIClass.cc
gr-qtgui/src/lib/SpectrumGUIClass.h
gr-qtgui/src/lib/TimeDomainDisplayPlot.cc
gr-qtgui/src/lib/TimeDomainDisplayPlot.h
gr-qtgui/src/lib/WaterfallDisplayPlot.cc
gr-qtgui/src/lib/WaterfallDisplayPlot.h
gr-qtgui/src/lib/qtgui_sink_c.cc
gr-qtgui/src/lib/qtgui_sink_c.h
gr-qtgui/src/lib/qtgui_sink_f.cc
gr-qtgui/src/lib/qtgui_sink_f.h
gr-qtgui/src/lib/spectrumUpdateEvents.cc
gr-qtgui/src/lib/spectrumUpdateEvents.h
gr-qtgui/src/lib/spectrumdisplayform.cc
gr-qtgui/src/lib/spectrumdisplayform.h
gr-qtgui/src/lib/spectrumdisplayform.ui
gr-qtgui/src/python/pyqt_example.py
gr-qtgui/src/python/pyqt_example_f.py
gr-qtgui/src/python/qt_digital.py
gr-qtgui/src/python/qt_digital_window.py
gr-qtgui/src/python/qt_digital_window.ui
gr-qtgui/src/python/usrp2_display.py

index 35cc2e376d16bda6e51bedd57e9df484e9fae3ff..0ae0e4e51a1634f02f0bf963d887ca5ca47df752 100755 (executable)
@@ -167,7 +167,10 @@ class dialog_box(QtGui.QMainWindow):
         # Pull these globals in from the main thread
         global n_rcvd, n_right, pktno
 
-        per = float(n_rcvd - n_right)/float(pktno)
+        if(pktno > 0):
+            per = float(n_rcvd - n_right)/float(pktno)
+        else:
+            per = 0
         self.gui.pktsRcvdEdit.setText(QtCore.QString("%1").arg(n_rcvd))
         self.gui.pktsCorrectEdit.setText(QtCore.QString("%1").arg(n_right))
         self.gui.perEdit.setText(QtCore.QString("%1").arg(per))
@@ -186,6 +189,9 @@ class my_top_block(gr.top_block):
 
         self._sample_rate = options.sample_rate
 
+        if(options.samples_per_symbol is None):
+            options.samples_per_symbol = 2
+
         channelon = True;
 
         self.gui_on = options.gui
@@ -202,7 +208,7 @@ class my_top_block(gr.top_block):
         self.rxpath = receive_path(demod_class, rx_callback, options)
 
         # FIXME: do better exposure to lower issues for control
-        self._timing_gain_alpha = self.rxpath.packet_receiver._demodulator._timing_alpha
+        self._timing_gain_alpha = self.rxpath.packet_receiver._demodulator._mm_gain_mu
         self._alpha = self.rxpath.packet_receiver._demodulator._costas_alpha
 
         if channelon:
@@ -229,10 +235,10 @@ class my_top_block(gr.top_block):
                 fftsize = 2048
 
                 self.snk_tx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS,
-                                           0, 1,
+                                           0, self._sample_rate,
                                            "Tx", True, True, False, True, True)
                 self.snk_rx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS,
-                                           0, 1,
+                                           0, self._sample_rate,
                                            "Rx", True, True, False, True, True)
 
                 self.snk_tx.set_frequency_axis(-80, 0)
@@ -240,14 +246,11 @@ class my_top_block(gr.top_block):
             
                 # Connect to the QT sinks
                 # FIXME: make better exposure to receiver from rxpath
-                self.freq_recov = self.rxpath.packet_receiver._demodulator.clock_recov
-                self.time_recov = self.rxpath.packet_receiver._demodulator.time_recov
-                self.freq_recov.set_alpha(0)
-                self.freq_recov.set_beta(0)
-                self.time_recov.set_alpha(2)
-                self.time_recov.set_beta(0.02)
+                self.receiver = self.rxpath.packet_receiver._demodulator.receiver
+                self.receiver.set_alpha(2)
+                self.receiver.set_beta(0.02)
                 self.connect(self.channel, self.snk_tx)
-                self.connect(self.time_recov, self.snk_rx)
+                self.connect(self.receiver, self.snk_rx)
 
                 pyTxQt  = self.snk_tx.pyqwidget()
                 pyTx = sip.wrapinstance(pyTxQt, QtGui.QWidget)
@@ -312,7 +315,7 @@ class my_top_block(gr.top_block):
     
     def set_rx_timing_gain_alpha(self, gain):
         self._timing_gain_alpha = gain
-        self.time_recov.set_gain(self._timing_gain_alpha)
+        self.receiver.set_gain_mu(self._timing_gain_alpha)
 
     def rx_alpha(self):
         return self._alpha
@@ -323,8 +326,8 @@ class my_top_block(gr.top_block):
     def set_rx_alpha(self, alpha):
         self._alpha = alpha
         self.beta = .25 * self._alpha * self._alpha
-        #self.freq_recov.set_alpha(self._alpha)
-        #self.freq_recov.set_beta(self.beta)
+        self.receiver.set_alpha(self._alpha)
+        self.receiver.set_beta(self.beta)
 
 
 
index 56c6c7f52e22f8dd2493c339938ff4641366cdbb..02ae4b25ffe3209f9c84d3a42f51e633dea1df4b 100755 (executable)
@@ -254,7 +254,7 @@ class my_top_block(gr.top_block):
 
         # FIXME: do better exposure to lower issues for control
         self._gain_clock = self.rxpath.packet_receiver._demodulator._timing_alpha
-        self._gain_phase = self.rxpath.packet_receiver._demodulator._costas_alpha
+        self._gain_phase = self.rxpath.packet_receiver._demodulator._phase_alpha
         self._gain_freq  = self.rxpath.packet_receiver._demodulator._freq_alpha
 
         if channelon:
index 6e0f25212ea3c35f68f3bf75524694af6db75a14..b47ed0c2b57f483eadb13e064e9e2cae5aa4f643 100644 (file)
@@ -2,8 +2,8 @@
 
 # Form implementation generated from reading ui file 'qt_digital_window.ui'
 #
-# Created: Tue Oct  6 11:27:37 2009
-#      by: PyQt4 UI code generator 4.4.4
+# Created: Tue May 11 20:58:35 2010
+#      by: PyQt4 UI code generator 4.6.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -12,63 +12,58 @@ from PyQt4 import QtCore, QtGui
 class Ui_DigitalWindow(object):
     def setupUi(self, DigitalWindow):
         DigitalWindow.setObjectName("DigitalWindow")
-        DigitalWindow.resize(1019, 754)
+        DigitalWindow.resize(1059, 754)
         self.centralwidget = QtGui.QWidget(DigitalWindow)
         self.centralwidget.setObjectName("centralwidget")
-        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
-        self.gridLayout.setObjectName("gridLayout")
-        self.verticalLayout_3 = QtGui.QVBoxLayout()
-        self.verticalLayout_3.setObjectName("verticalLayout_3")
-        self.rxBox = QtGui.QGroupBox(self.centralwidget)
+        self.verticalLayout_4 = QtGui.QVBoxLayout(self.centralwidget)
+        self.verticalLayout_4.setObjectName("verticalLayout_4")
+        self.sinkLayout = QtGui.QHBoxLayout()
+        self.sinkLayout.setObjectName("sinkLayout")
+        self.verticalLayout_4.addLayout(self.sinkLayout)
+        self.horizontalLayout = QtGui.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.verticalLayout_2 = QtGui.QVBoxLayout()
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.sysBox = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.rxBox.sizePolicy().hasHeightForWidth())
-        self.rxBox.setSizePolicy(sizePolicy)
-        self.rxBox.setMinimumSize(QtCore.QSize(180, 90))
-        self.rxBox.setMaximumSize(QtCore.QSize(180, 16777215))
-        self.rxBox.setObjectName("rxBox")
-        self.formLayoutWidget_3 = QtGui.QWidget(self.rxBox)
-        self.formLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 141, 61))
-        self.formLayoutWidget_3.setObjectName("formLayoutWidget_3")
-        self.formLayout_3 = QtGui.QFormLayout(self.formLayoutWidget_3)
-        self.formLayout_3.setSizeConstraint(QtGui.QLayout.SetFixedSize)
-        self.formLayout_3.setObjectName("formLayout_3")
-        self.gainMuLabel = QtGui.QLabel(self.formLayoutWidget_3)
-        self.gainMuLabel.setObjectName("gainMuLabel")
-        self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.gainMuLabel)
-        self.alphaLabel = QtGui.QLabel(self.formLayoutWidget_3)
-        self.alphaLabel.setObjectName("alphaLabel")
-        self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.alphaLabel)
-        self.gainMuEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
-        self.gainMuEdit.setMinimumSize(QtCore.QSize(60, 0))
-        self.gainMuEdit.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.gainMuEdit.setObjectName("gainMuEdit")
-        self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.gainMuEdit)
-        self.alphaEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
-        self.alphaEdit.setMinimumSize(QtCore.QSize(60, 0))
-        self.alphaEdit.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.alphaEdit.setObjectName("alphaEdit")
-        self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.alphaEdit)
-        self.verticalLayout_3.addWidget(self.rxBox)
-        spacerItem = QtGui.QSpacerItem(20, 30, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout_3.addItem(spacerItem)
-        self.gridLayout.addLayout(self.verticalLayout_3, 2, 2, 1, 1)
-        self.verticalLayout = QtGui.QVBoxLayout()
-        self.verticalLayout.setObjectName("verticalLayout")
-        self.pauseButton = QtGui.QPushButton(self.centralwidget)
-        self.pauseButton.setMinimumSize(QtCore.QSize(80, 0))
-        self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.pauseButton.setObjectName("pauseButton")
-        self.verticalLayout.addWidget(self.pauseButton)
-        spacerItem1 = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout.addItem(spacerItem1)
-        self.closeButton = QtGui.QPushButton(self.centralwidget)
-        self.closeButton.setMinimumSize(QtCore.QSize(80, 0))
-        self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.closeButton.setObjectName("closeButton")
-        self.verticalLayout.addWidget(self.closeButton)
-        self.gridLayout.addLayout(self.verticalLayout, 2, 5, 1, 1)
+        sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
+        self.sysBox.setSizePolicy(sizePolicy)
+        self.sysBox.setMinimumSize(QtCore.QSize(240, 60))
+        self.sysBox.setMaximumSize(QtCore.QSize(240, 16777215))
+        self.sysBox.setObjectName("sysBox")
+        self.formLayoutWidget = QtGui.QWidget(self.sysBox)
+        self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 211, 31))
+        self.formLayoutWidget.setObjectName("formLayoutWidget")
+        self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
+        self.formLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+        self.formLayout.setVerticalSpacing(20)
+        self.formLayout.setObjectName("formLayout")
+        self.sampleRateEdit = QtGui.QLineEdit(self.formLayoutWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sampleRateEdit.sizePolicy().hasHeightForWidth())
+        self.sampleRateEdit.setSizePolicy(sizePolicy)
+        self.sampleRateEdit.setMinimumSize(QtCore.QSize(60, 26))
+        self.sampleRateEdit.setMaximumSize(QtCore.QSize(80, 26))
+        self.sampleRateEdit.setObjectName("sampleRateEdit")
+        self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.sampleRateEdit)
+        self.sampleRateLabel = QtGui.QLabel(self.formLayoutWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sampleRateLabel.sizePolicy().hasHeightForWidth())
+        self.sampleRateLabel.setSizePolicy(sizePolicy)
+        self.sampleRateLabel.setMinimumSize(QtCore.QSize(0, 20))
+        self.sampleRateLabel.setMaximumSize(QtCore.QSize(16777215, 20))
+        self.sampleRateLabel.setObjectName("sampleRateLabel")
+        self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.sampleRateLabel)
+        self.verticalLayout_2.addWidget(self.sysBox)
+        spacerItem = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        self.verticalLayout_2.addItem(spacerItem)
+        self.horizontalLayout.addLayout(self.verticalLayout_2)
         self.channelModeBox = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
@@ -109,49 +104,39 @@ class Ui_DigitalWindow(object):
         self.timeEdit.setMaximumSize(QtCore.QSize(80, 16777215))
         self.timeEdit.setObjectName("timeEdit")
         self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.timeEdit)
-        self.gridLayout.addWidget(self.channelModeBox, 2, 1, 1, 1)
-        self.verticalLayout_2 = QtGui.QVBoxLayout()
-        self.verticalLayout_2.setObjectName("verticalLayout_2")
-        self.sysBox = QtGui.QGroupBox(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
-        self.sysBox.setSizePolicy(sizePolicy)
-        self.sysBox.setMinimumSize(QtCore.QSize(240, 60))
-        self.sysBox.setMaximumSize(QtCore.QSize(240, 16777215))
-        self.sysBox.setObjectName("sysBox")
-        self.formLayoutWidget = QtGui.QWidget(self.sysBox)
-        self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 211, 31))
-        self.formLayoutWidget.setObjectName("formLayoutWidget")
-        self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
-        self.formLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
-        self.formLayout.setVerticalSpacing(20)
-        self.formLayout.setObjectName("formLayout")
-        self.sampleRateEdit = QtGui.QLineEdit(self.formLayoutWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sampleRateEdit.sizePolicy().hasHeightForWidth())
-        self.sampleRateEdit.setSizePolicy(sizePolicy)
-        self.sampleRateEdit.setMinimumSize(QtCore.QSize(60, 26))
-        self.sampleRateEdit.setMaximumSize(QtCore.QSize(80, 26))
-        self.sampleRateEdit.setObjectName("sampleRateEdit")
-        self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.sampleRateEdit)
-        self.sampleRateLabel = QtGui.QLabel(self.formLayoutWidget)
+        self.horizontalLayout.addWidget(self.channelModeBox)
+        self.rxBox = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sampleRateLabel.sizePolicy().hasHeightForWidth())
-        self.sampleRateLabel.setSizePolicy(sizePolicy)
-        self.sampleRateLabel.setMinimumSize(QtCore.QSize(0, 20))
-        self.sampleRateLabel.setMaximumSize(QtCore.QSize(16777215, 20))
-        self.sampleRateLabel.setObjectName("sampleRateLabel")
-        self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.sampleRateLabel)
-        self.verticalLayout_2.addWidget(self.sysBox)
-        spacerItem2 = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout_2.addItem(spacerItem2)
-        self.gridLayout.addLayout(self.verticalLayout_2, 2, 0, 1, 1)
+        sizePolicy.setHeightForWidth(self.rxBox.sizePolicy().hasHeightForWidth())
+        self.rxBox.setSizePolicy(sizePolicy)
+        self.rxBox.setMinimumSize(QtCore.QSize(220, 130))
+        self.rxBox.setMaximumSize(QtCore.QSize(180, 16777215))
+        self.rxBox.setObjectName("rxBox")
+        self.formLayoutWidget_3 = QtGui.QWidget(self.rxBox)
+        self.formLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 201, 101))
+        self.formLayoutWidget_3.setObjectName("formLayoutWidget_3")
+        self.formLayout_3 = QtGui.QFormLayout(self.formLayoutWidget_3)
+        self.formLayout_3.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+        self.formLayout_3.setObjectName("formLayout_3")
+        self.gainMuLabel = QtGui.QLabel(self.formLayoutWidget_3)
+        self.gainMuLabel.setObjectName("gainMuLabel")
+        self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.gainMuLabel)
+        self.alphaLabel = QtGui.QLabel(self.formLayoutWidget_3)
+        self.alphaLabel.setObjectName("alphaLabel")
+        self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.alphaLabel)
+        self.gainMuEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
+        self.gainMuEdit.setMinimumSize(QtCore.QSize(60, 0))
+        self.gainMuEdit.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.gainMuEdit.setObjectName("gainMuEdit")
+        self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.gainMuEdit)
+        self.alphaEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
+        self.alphaEdit.setMinimumSize(QtCore.QSize(60, 0))
+        self.alphaEdit.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.alphaEdit.setObjectName("alphaEdit")
+        self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.alphaEdit)
+        self.horizontalLayout.addWidget(self.rxBox)
         self.rxBox_2 = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
@@ -162,7 +147,7 @@ class Ui_DigitalWindow(object):
         self.rxBox_2.setMaximumSize(QtCore.QSize(265, 125))
         self.rxBox_2.setObjectName("rxBox_2")
         self.formLayoutWidget_4 = QtGui.QWidget(self.rxBox_2)
-        self.formLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 181, 92))
+        self.formLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 201, 91))
         self.formLayoutWidget_4.setObjectName("formLayoutWidget_4")
         self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_4)
         self.formLayout_4.setSizeConstraint(QtGui.QLayout.SetFixedSize)
@@ -191,31 +176,28 @@ class Ui_DigitalWindow(object):
         self.perEdit.setMaximumSize(QtCore.QSize(80, 16777215))
         self.perEdit.setObjectName("perEdit")
         self.formLayout_4.setWidget(2, QtGui.QFormLayout.FieldRole, self.perEdit)
-        self.gridLayout.addWidget(self.rxBox_2, 2, 3, 1, 1)
-        spacerItem3 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.gridLayout.addItem(spacerItem3, 2, 4, 1, 1)
-        self.verticalLayout_5 = QtGui.QVBoxLayout()
-        self.verticalLayout_5.setObjectName("verticalLayout_5")
-        self.sinkFrame = QtGui.QFrame(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sinkFrame.sizePolicy().hasHeightForWidth())
-        self.sinkFrame.setSizePolicy(sizePolicy)
-        self.sinkFrame.setMinimumSize(QtCore.QSize(500, 550))
-        self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
-        self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.sinkFrame.setObjectName("sinkFrame")
-        self.gridLayout_2 = QtGui.QGridLayout(self.sinkFrame)
-        self.gridLayout_2.setObjectName("gridLayout_2")
-        self.sinkLayout = QtGui.QHBoxLayout()
-        self.sinkLayout.setObjectName("sinkLayout")
-        self.gridLayout_2.addLayout(self.sinkLayout, 1, 0, 1, 1)
-        self.verticalLayout_5.addWidget(self.sinkFrame)
-        self.gridLayout.addLayout(self.verticalLayout_5, 0, 0, 1, 6)
+        self.horizontalLayout.addWidget(self.rxBox_2)
+        spacerItem1 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout.addItem(spacerItem1)
+        self.verticalLayout = QtGui.QVBoxLayout()
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.pauseButton = QtGui.QPushButton(self.centralwidget)
+        self.pauseButton.setMinimumSize(QtCore.QSize(80, 0))
+        self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.pauseButton.setObjectName("pauseButton")
+        self.verticalLayout.addWidget(self.pauseButton)
+        spacerItem2 = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        self.verticalLayout.addItem(spacerItem2)
+        self.closeButton = QtGui.QPushButton(self.centralwidget)
+        self.closeButton.setMinimumSize(QtCore.QSize(80, 0))
+        self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.closeButton.setObjectName("closeButton")
+        self.verticalLayout.addWidget(self.closeButton)
+        self.horizontalLayout.addLayout(self.verticalLayout)
+        self.verticalLayout_4.addLayout(self.horizontalLayout)
         DigitalWindow.setCentralWidget(self.centralwidget)
         self.menubar = QtGui.QMenuBar(DigitalWindow)
-        self.menubar.setGeometry(QtCore.QRect(0, 0, 1019, 25))
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 1059, 23))
         self.menubar.setObjectName("menubar")
         self.menuFile = QtGui.QMenu(self.menubar)
         self.menuFile.setObjectName("menuFile")
@@ -237,21 +219,21 @@ class Ui_DigitalWindow(object):
 
     def retranslateUi(self, DigitalWindow):
         DigitalWindow.setWindowTitle(QtGui.QApplication.translate("DigitalWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
-        self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.gainMuLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Gain mu", None, QtGui.QApplication.UnicodeUTF8))
-        self.alphaLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Alpha", None, QtGui.QApplication.UnicodeUTF8))
-        self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
-        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
+        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
+        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
         self.channelModeBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Channel Model Parameters", None, QtGui.QApplication.UnicodeUTF8))
         self.snrLabel.setText(QtGui.QApplication.translate("DigitalWindow", "SNR (dB)", None, QtGui.QApplication.UnicodeUTF8))
         self.freqLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Frequency Offset (Hz)", None, QtGui.QApplication.UnicodeUTF8))
         self.timeLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Timing Offset", None, QtGui.QApplication.UnicodeUTF8))
-        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
+        self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
+        self.gainMuLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Gain mu", None, QtGui.QApplication.UnicodeUTF8))
+        self.alphaLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Alpha", None, QtGui.QApplication.UnicodeUTF8))
         self.rxBox_2.setTitle(QtGui.QApplication.translate("DigitalWindow", "Received Packet Info", None, QtGui.QApplication.UnicodeUTF8))
         self.pktsRcvdLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Rcvd.", None, QtGui.QApplication.UnicodeUTF8))
         self.pktsCorrectLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Correct", None, QtGui.QApplication.UnicodeUTF8))
         self.perLabel.setText(QtGui.QApplication.translate("DigitalWindow", "PER", None, QtGui.QApplication.UnicodeUTF8))
+        self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
+        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
         self.menuFile.setTitle(QtGui.QApplication.translate("DigitalWindow", "&File", None, QtGui.QApplication.UnicodeUTF8))
         self.actionExit.setText(QtGui.QApplication.translate("DigitalWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8))
 
index a0af196edc04e8a9e9b17f521fbc4fc72015b889..4b3857d87e21f0fe77a0890aba0bef8fe23f7770 100644 (file)
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>1019</width>
+    <width>1059</width>
     <height>754</height>
    </rect>
   </property>
    <string>MainWindow</string>
   </property>
   <widget class="QWidget" name="centralwidget">
-   <layout class="QGridLayout" name="gridLayout">
-    <item row="2" column="2">
-     <layout class="QVBoxLayout" name="verticalLayout_3">
+   <layout class="QVBoxLayout" name="verticalLayout_4">
+    <item>
+     <layout class="QHBoxLayout" name="sinkLayout"/>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
-       <widget class="QGroupBox" name="rxBox">
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <widget class="QGroupBox" name="sysBox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize">
+           <size>
+            <width>240</width>
+            <height>60</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>240</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="title">
+           <string>System Parameters</string>
+          </property>
+          <widget class="QWidget" name="formLayoutWidget">
+           <property name="geometry">
+            <rect>
+             <x>10</x>
+             <y>20</y>
+             <width>211</width>
+             <height>31</height>
+            </rect>
+           </property>
+           <layout class="QFormLayout" name="formLayout">
+            <property name="sizeConstraint">
+             <enum>QLayout::SetFixedSize</enum>
+            </property>
+            <property name="verticalSpacing">
+             <number>20</number>
+            </property>
+            <item row="0" column="1">
+             <widget class="QLineEdit" name="sampleRateEdit">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>60</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>80</width>
+                <height>26</height>
+               </size>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="0">
+             <widget class="QLabel" name="sampleRateLabel">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>0</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>16777215</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Sample Rate (sps)</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer_2">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Fixed</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>60</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="channelModeBox">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
         </property>
         <property name="minimumSize">
          <size>
-          <width>180</width>
-          <height>90</height>
+          <width>245</width>
+          <height>130</height>
          </size>
         </property>
         <property name="maximumSize">
          <size>
-          <width>180</width>
+          <width>245</width>
           <height>16777215</height>
          </size>
         </property>
         <property name="title">
-         <string>Receiver Parameters</string>
+         <string>Channel Model Parameters</string>
         </property>
-        <widget class="QWidget" name="formLayoutWidget_3">
+        <widget class="QWidget" name="formLayoutWidget_2">
          <property name="geometry">
           <rect>
            <x>10</x>
            <y>20</y>
-           <width>141</width>
-           <height>61</height>
+           <width>221</width>
+           <height>98</height>
           </rect>
          </property>
-         <layout class="QFormLayout" name="formLayout_3">
+         <layout class="QFormLayout" name="formLayout_2">
           <property name="sizeConstraint">
            <enum>QLayout::SetFixedSize</enum>
           </property>
+          <property name="fieldGrowthPolicy">
+           <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+          </property>
           <item row="0" column="0">
-           <widget class="QLabel" name="gainMuLabel">
+           <widget class="QLabel" name="snrLabel">
             <property name="text">
-             <string>Gain mu</string>
+             <string>SNR (dB)</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="snrEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
             </property>
            </widget>
           </item>
           <item row="1" column="0">
-           <widget class="QLabel" name="alphaLabel">
+           <widget class="QLabel" name="freqLabel">
             <property name="text">
-             <string>Alpha</string>
+             <string>Frequency Offset (Hz)</string>
             </property>
            </widget>
           </item>
-          <item row="0" column="1">
-           <widget class="QLineEdit" name="gainMuEdit">
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="freqEdit">
             <property name="minimumSize">
              <size>
               <width>60</width>
             </property>
            </widget>
           </item>
-          <item row="1" column="1">
-           <widget class="QLineEdit" name="alphaEdit">
+          <item row="2" column="0">
+           <widget class="QLabel" name="timeLabel">
+            <property name="text">
+             <string>Timing Offset</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="timeEdit">
             <property name="minimumSize">
              <size>
               <width>60</width>
           </item>
          </layout>
         </widget>
+        <zorder>formLayoutWidget_2</zorder>
+        <zorder>sysBox</zorder>
        </widget>
       </item>
       <item>
-       <spacer name="verticalSpacer_4">
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>20</width>
-          <height>30</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </item>
-    <item row="2" column="5">
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QPushButton" name="pauseButton">
-        <property name="minimumSize">
-         <size>
-          <width>80</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>80</width>
-          <height>16777215</height>
-         </size>
-        </property>
-        <property name="text">
-         <string>Pause</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="verticalSpacer">
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>20</width>
-          <height>60</height>
-         </size>
+       <widget class="QGroupBox" name="rxBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
         </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="closeButton">
         <property name="minimumSize">
          <size>
-          <width>80</width>
-          <height>0</height>
+          <width>220</width>
+          <height>130</height>
          </size>
         </property>
         <property name="maximumSize">
          <size>
-          <width>80</width>
+          <width>180</width>
           <height>16777215</height>
          </size>
         </property>
-        <property name="text">
-         <string>Close</string>
+        <property name="title">
+         <string>Receiver Parameters</string>
         </property>
+        <widget class="QWidget" name="formLayoutWidget_3">
+         <property name="geometry">
+          <rect>
+           <x>10</x>
+           <y>20</y>
+           <width>201</width>
+           <height>101</height>
+          </rect>
+         </property>
+         <layout class="QFormLayout" name="formLayout_3">
+          <property name="sizeConstraint">
+           <enum>QLayout::SetFixedSize</enum>
+          </property>
+          <item row="0" column="0">
+           <widget class="QLabel" name="gainMuLabel">
+            <property name="text">
+             <string>Gain mu</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="alphaLabel">
+            <property name="text">
+             <string>Alpha</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="gainMuEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="alphaEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
        </widget>
       </item>
-     </layout>
-    </item>
-    <item row="2" column="1">
-     <widget class="QGroupBox" name="channelModeBox">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize">
-       <size>
-        <width>245</width>
-        <height>130</height>
-       </size>
-      </property>
-      <property name="maximumSize">
-       <size>
-        <width>245</width>
-        <height>16777215</height>
-       </size>
-      </property>
-      <property name="title">
-       <string>Channel Model Parameters</string>
-      </property>
-      <widget class="QWidget" name="formLayoutWidget_2">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>20</y>
-         <width>221</width>
-         <height>98</height>
-        </rect>
-       </property>
-       <layout class="QFormLayout" name="formLayout_2">
-        <property name="sizeConstraint">
-         <enum>QLayout::SetFixedSize</enum>
-        </property>
-        <property name="fieldGrowthPolicy">
-         <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="snrLabel">
-          <property name="text">
-           <string>SNR (dB)</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QLineEdit" name="snrEdit">
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="freqLabel">
-          <property name="text">
-           <string>Frequency Offset (Hz)</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QLineEdit" name="freqEdit">
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="timeLabel">
-          <property name="text">
-           <string>Timing Offset</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="QLineEdit" name="timeEdit">
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </widget>
-    </item>
-    <item row="2" column="0">
-     <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
-       <widget class="QGroupBox" name="sysBox">
+       <widget class="QGroupBox" name="rxBox_2">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
         </property>
         <property name="minimumSize">
          <size>
-          <width>240</width>
-          <height>60</height>
+          <width>220</width>
+          <height>125</height>
          </size>
         </property>
         <property name="maximumSize">
          <size>
-          <width>240</width>
-          <height>16777215</height>
+          <width>265</width>
+          <height>125</height>
          </size>
         </property>
         <property name="title">
-         <string>System Parameters</string>
+         <string>Received Packet Info</string>
         </property>
-        <widget class="QWidget" name="formLayoutWidget">
+        <widget class="QWidget" name="formLayoutWidget_4">
          <property name="geometry">
           <rect>
            <x>10</x>
            <y>20</y>
-           <width>211</width>
-           <height>31</height>
+           <width>201</width>
+           <height>91</height>
           </rect>
          </property>
-         <layout class="QFormLayout" name="formLayout">
+         <layout class="QFormLayout" name="formLayout_4">
           <property name="sizeConstraint">
            <enum>QLayout::SetFixedSize</enum>
           </property>
-          <property name="verticalSpacing">
-           <number>20</number>
-          </property>
-          <item row="0" column="1">
-           <widget class="QLineEdit" name="sampleRateEdit">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
+          <item row="0" column="0">
+           <widget class="QLabel" name="pktsRcvdLabel">
+            <property name="text">
+             <string>Packets Rcvd.</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="pktsCorrectLabel">
+            <property name="text">
+             <string>Packets Correct</string>
             </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="perLabel">
+            <property name="text">
+             <string>PER</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="pktsRcvdEdit">
             <property name="minimumSize">
              <size>
               <width>60</width>
-              <height>26</height>
+              <height>0</height>
              </size>
             </property>
             <property name="maximumSize">
              <size>
               <width>80</width>
-              <height>26</height>
+              <height>16777215</height>
              </size>
             </property>
            </widget>
           </item>
-          <item row="0" column="0">
-           <widget class="QLabel" name="sampleRateLabel">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="pktsCorrectEdit">
             <property name="minimumSize">
              <size>
-              <width>0</width>
-              <height>20</height>
+              <width>60</width>
+              <height>0</height>
              </size>
             </property>
             <property name="maximumSize">
              <size>
-              <width>16777215</width>
-              <height>20</height>
+              <width>80</width>
+              <height>16777215</height>
              </size>
             </property>
-            <property name="text">
-             <string>Sample Rate (sps)</string>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="perEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
             </property>
            </widget>
           </item>
        </widget>
       </item>
       <item>
-       <spacer name="verticalSpacer_2">
+       <spacer name="horizontalSpacer">
         <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Fixed</enum>
+         <enum>Qt::Horizontal</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>20</width>
-          <height>60</height>
+          <height>20</height>
          </size>
         </property>
        </spacer>
       </item>
-     </layout>
-    </item>
-    <item row="2" column="3">
-     <widget class="QGroupBox" name="rxBox_2">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize">
-       <size>
-        <width>220</width>
-        <height>125</height>
-       </size>
-      </property>
-      <property name="maximumSize">
-       <size>
-        <width>265</width>
-        <height>125</height>
-       </size>
-      </property>
-      <property name="title">
-       <string>Received Packet Info</string>
-      </property>
-      <widget class="QWidget" name="formLayoutWidget_4">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>20</y>
-         <width>181</width>
-         <height>92</height>
-        </rect>
-       </property>
-       <layout class="QFormLayout" name="formLayout_4">
-        <property name="sizeConstraint">
-         <enum>QLayout::SetFixedSize</enum>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="pktsRcvdLabel">
-          <property name="text">
-           <string>Packets Rcvd.</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="pktsCorrectLabel">
-          <property name="text">
-           <string>Packets Correct</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="perLabel">
-          <property name="text">
-           <string>PER</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QLineEdit" name="pktsRcvdEdit">
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QPushButton" name="pauseButton">
           <property name="minimumSize">
            <size>
-            <width>60</width>
+            <width>80</width>
             <height>0</height>
            </size>
           </property>
             <height>16777215</height>
            </size>
           </property>
+          <property name="text">
+           <string>Pause</string>
+          </property>
          </widget>
         </item>
-        <item row="1" column="1">
-         <widget class="QLineEdit" name="pktsCorrectEdit">
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
+        <item>
+         <spacer name="verticalSpacer">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
           </property>
-          <property name="maximumSize">
+          <property name="sizeType">
+           <enum>QSizePolicy::Fixed</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
            <size>
-            <width>80</width>
-            <height>16777215</height>
+            <width>20</width>
+            <height>60</height>
            </size>
           </property>
-         </widget>
+         </spacer>
         </item>
-        <item row="2" column="1">
-         <widget class="QLineEdit" name="perEdit">
+        <item>
+         <widget class="QPushButton" name="closeButton">
           <property name="minimumSize">
            <size>
-            <width>60</width>
+            <width>80</width>
             <height>0</height>
            </size>
           </property>
             <height>16777215</height>
            </size>
           </property>
+          <property name="text">
+           <string>Close</string>
+          </property>
          </widget>
         </item>
        </layout>
-      </widget>
-     </widget>
-    </item>
-    <item row="2" column="4">
-     <spacer name="horizontalSpacer">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>20</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item row="0" column="0" colspan="6">
-     <layout class="QVBoxLayout" name="verticalLayout_5">
-      <item>
-       <widget class="QFrame" name="sinkFrame">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="minimumSize">
-         <size>
-          <width>500</width>
-          <height>550</height>
-         </size>
-        </property>
-        <property name="frameShape">
-         <enum>QFrame::StyledPanel</enum>
-        </property>
-        <property name="frameShadow">
-         <enum>QFrame::Raised</enum>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_2">
-         <item row="1" column="0">
-          <layout class="QHBoxLayout" name="sinkLayout"/>
-         </item>
-        </layout>
-       </widget>
       </item>
      </layout>
     </item>
    </layout>
-   <zorder>channelModeBox</zorder>
-   <zorder></zorder>
-   <zorder>rxBox_2</zorder>
-   <zorder>horizontalSpacer</zorder>
-   <zorder></zorder>
   </widget>
   <widget class="QMenuBar" name="menubar">
    <property name="geometry">
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>1019</width>
-     <height>25</height>
+     <width>1059</width>
+     <height>23</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">
index 98745dfe8d0be899af9099ec5fb164afb0e2e80b..2d10e3a7f06be33b73ff2a8b73c24e7a8934f5fc 100644 (file)
@@ -2,8 +2,8 @@
 
 # Form implementation generated from reading ui file 'qt_digital_window2.ui'
 #
-# Created: Sat Jan  2 16:42:30 2010
-#      by: PyQt4 UI code generator 4.4.3
+# Created: Tue May 11 20:55:10 2010
+#      by: PyQt4 UI code generator 4.6.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -12,30 +12,58 @@ from PyQt4 import QtCore, QtGui
 class Ui_DigitalWindow(object):
     def setupUi(self, DigitalWindow):
         DigitalWindow.setObjectName("DigitalWindow")
-        DigitalWindow.resize(1019, 754)
+        DigitalWindow.resize(1059, 751)
         self.centralwidget = QtGui.QWidget(DigitalWindow)
         self.centralwidget.setObjectName("centralwidget")
-        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
-        self.gridLayout.setObjectName("gridLayout")
-        self.verticalLayout_5 = QtGui.QVBoxLayout()
-        self.verticalLayout_5.setObjectName("verticalLayout_5")
-        self.sinkFrame = QtGui.QFrame(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sinkFrame.sizePolicy().hasHeightForWidth())
-        self.sinkFrame.setSizePolicy(sizePolicy)
-        self.sinkFrame.setMinimumSize(QtCore.QSize(500, 550))
-        self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
-        self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.sinkFrame.setObjectName("sinkFrame")
-        self.gridLayout_2 = QtGui.QGridLayout(self.sinkFrame)
-        self.gridLayout_2.setObjectName("gridLayout_2")
+        self.verticalLayout_3 = QtGui.QVBoxLayout(self.centralwidget)
+        self.verticalLayout_3.setObjectName("verticalLayout_3")
         self.sinkLayout = QtGui.QHBoxLayout()
         self.sinkLayout.setObjectName("sinkLayout")
-        self.gridLayout_2.addLayout(self.sinkLayout, 1, 0, 1, 1)
-        self.verticalLayout_5.addWidget(self.sinkFrame)
-        self.gridLayout.addLayout(self.verticalLayout_5, 0, 0, 1, 6)
+        self.verticalLayout_3.addLayout(self.sinkLayout)
+        self.horizontalLayout = QtGui.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.verticalLayout_2 = QtGui.QVBoxLayout()
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.sysBox = QtGui.QGroupBox(self.centralwidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
+        self.sysBox.setSizePolicy(sizePolicy)
+        self.sysBox.setMinimumSize(QtCore.QSize(240, 60))
+        self.sysBox.setMaximumSize(QtCore.QSize(240, 16777215))
+        self.sysBox.setObjectName("sysBox")
+        self.formLayoutWidget = QtGui.QWidget(self.sysBox)
+        self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 211, 31))
+        self.formLayoutWidget.setObjectName("formLayoutWidget")
+        self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
+        self.formLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+        self.formLayout.setVerticalSpacing(20)
+        self.formLayout.setObjectName("formLayout")
+        self.sampleRateEdit = QtGui.QLineEdit(self.formLayoutWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sampleRateEdit.sizePolicy().hasHeightForWidth())
+        self.sampleRateEdit.setSizePolicy(sizePolicy)
+        self.sampleRateEdit.setMinimumSize(QtCore.QSize(60, 26))
+        self.sampleRateEdit.setMaximumSize(QtCore.QSize(80, 26))
+        self.sampleRateEdit.setObjectName("sampleRateEdit")
+        self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.sampleRateEdit)
+        self.sampleRateLabel = QtGui.QLabel(self.formLayoutWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sampleRateLabel.sizePolicy().hasHeightForWidth())
+        self.sampleRateLabel.setSizePolicy(sizePolicy)
+        self.sampleRateLabel.setMinimumSize(QtCore.QSize(0, 20))
+        self.sampleRateLabel.setMaximumSize(QtCore.QSize(16777215, 20))
+        self.sampleRateLabel.setObjectName("sampleRateLabel")
+        self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.sampleRateLabel)
+        self.verticalLayout_2.addWidget(self.sysBox)
+        spacerItem = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        self.verticalLayout_2.addItem(spacerItem)
+        self.horizontalLayout.addLayout(self.verticalLayout_2)
         self.channelModeBox = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
@@ -76,22 +104,46 @@ class Ui_DigitalWindow(object):
         self.timeEdit.setMaximumSize(QtCore.QSize(80, 16777215))
         self.timeEdit.setObjectName("timeEdit")
         self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.timeEdit)
-        self.gridLayout.addWidget(self.channelModeBox, 2, 1, 1, 1)
-        self.verticalLayout = QtGui.QVBoxLayout()
-        self.verticalLayout.setObjectName("verticalLayout")
-        self.pauseButton = QtGui.QPushButton(self.centralwidget)
-        self.pauseButton.setMinimumSize(QtCore.QSize(80, 0))
-        self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.pauseButton.setObjectName("pauseButton")
-        self.verticalLayout.addWidget(self.pauseButton)
-        spacerItem = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout.addItem(spacerItem)
-        self.closeButton = QtGui.QPushButton(self.centralwidget)
-        self.closeButton.setMinimumSize(QtCore.QSize(80, 0))
-        self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.closeButton.setObjectName("closeButton")
-        self.verticalLayout.addWidget(self.closeButton)
-        self.gridLayout.addLayout(self.verticalLayout, 2, 5, 1, 1)
+        self.horizontalLayout.addWidget(self.channelModeBox)
+        self.rxBox = QtGui.QGroupBox(self.centralwidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.rxBox.sizePolicy().hasHeightForWidth())
+        self.rxBox.setSizePolicy(sizePolicy)
+        self.rxBox.setMinimumSize(QtCore.QSize(220, 130))
+        self.rxBox.setMaximumSize(QtCore.QSize(180, 16777215))
+        self.rxBox.setObjectName("rxBox")
+        self.formLayoutWidget_3 = QtGui.QWidget(self.rxBox)
+        self.formLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 201, 101))
+        self.formLayoutWidget_3.setObjectName("formLayoutWidget_3")
+        self.formLayout_3 = QtGui.QFormLayout(self.formLayoutWidget_3)
+        self.formLayout_3.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+        self.formLayout_3.setObjectName("formLayout_3")
+        self.gainClockLabel = QtGui.QLabel(self.formLayoutWidget_3)
+        self.gainClockLabel.setObjectName("gainClockLabel")
+        self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.gainClockLabel)
+        self.gainPhaseLabel = QtGui.QLabel(self.formLayoutWidget_3)
+        self.gainPhaseLabel.setObjectName("gainPhaseLabel")
+        self.formLayout_3.setWidget(2, QtGui.QFormLayout.LabelRole, self.gainPhaseLabel)
+        self.gainClockEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
+        self.gainClockEdit.setMinimumSize(QtCore.QSize(60, 0))
+        self.gainClockEdit.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.gainClockEdit.setObjectName("gainClockEdit")
+        self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.gainClockEdit)
+        self.gainFreqEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
+        self.gainFreqEdit.setMinimumSize(QtCore.QSize(60, 0))
+        self.gainFreqEdit.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.gainFreqEdit.setObjectName("gainFreqEdit")
+        self.formLayout_3.setWidget(2, QtGui.QFormLayout.FieldRole, self.gainFreqEdit)
+        self.gainPhaseEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
+        self.gainPhaseEdit.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.gainPhaseEdit.setObjectName("gainPhaseEdit")
+        self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.gainPhaseEdit)
+        self.gainPhaseLabel_2 = QtGui.QLabel(self.formLayoutWidget_3)
+        self.gainPhaseLabel_2.setObjectName("gainPhaseLabel_2")
+        self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.gainPhaseLabel_2)
+        self.horizontalLayout.addWidget(self.rxBox)
         self.rxBox_2 = QtGui.QGroupBox(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
@@ -102,7 +154,7 @@ class Ui_DigitalWindow(object):
         self.rxBox_2.setMaximumSize(QtCore.QSize(265, 125))
         self.rxBox_2.setObjectName("rxBox_2")
         self.formLayoutWidget_4 = QtGui.QWidget(self.rxBox_2)
-        self.formLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 248, 188))
+        self.formLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 201, 91))
         self.formLayoutWidget_4.setObjectName("formLayoutWidget_4")
         self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_4)
         self.formLayout_4.setSizeConstraint(QtGui.QLayout.SetFixedSize)
@@ -132,93 +184,28 @@ class Ui_DigitalWindow(object):
         self.perEdit.setMaximumSize(QtCore.QSize(80, 16777215))
         self.perEdit.setObjectName("perEdit")
         self.formLayout_4.setWidget(2, QtGui.QFormLayout.FieldRole, self.perEdit)
-        self.gridLayout.addWidget(self.rxBox_2, 2, 3, 1, 1)
+        self.horizontalLayout.addWidget(self.rxBox_2)
         spacerItem1 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.gridLayout.addItem(spacerItem1, 2, 4, 1, 1)
-        self.verticalLayout_2 = QtGui.QVBoxLayout()
-        self.verticalLayout_2.setObjectName("verticalLayout_2")
-        self.sysBox = QtGui.QGroupBox(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
-        self.sysBox.setSizePolicy(sizePolicy)
-        self.sysBox.setMinimumSize(QtCore.QSize(240, 60))
-        self.sysBox.setMaximumSize(QtCore.QSize(240, 16777215))
-        self.sysBox.setObjectName("sysBox")
-        self.formLayoutWidget = QtGui.QWidget(self.sysBox)
-        self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 211, 31))
-        self.formLayoutWidget.setObjectName("formLayoutWidget")
-        self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
-        self.formLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
-        self.formLayout.setVerticalSpacing(20)
-        self.formLayout.setObjectName("formLayout")
-        self.sampleRateEdit = QtGui.QLineEdit(self.formLayoutWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sampleRateEdit.sizePolicy().hasHeightForWidth())
-        self.sampleRateEdit.setSizePolicy(sizePolicy)
-        self.sampleRateEdit.setMinimumSize(QtCore.QSize(60, 26))
-        self.sampleRateEdit.setMaximumSize(QtCore.QSize(80, 26))
-        self.sampleRateEdit.setObjectName("sampleRateEdit")
-        self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.sampleRateEdit)
-        self.sampleRateLabel = QtGui.QLabel(self.formLayoutWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.sampleRateLabel.sizePolicy().hasHeightForWidth())
-        self.sampleRateLabel.setSizePolicy(sizePolicy)
-        self.sampleRateLabel.setMinimumSize(QtCore.QSize(0, 20))
-        self.sampleRateLabel.setMaximumSize(QtCore.QSize(16777215, 20))
-        self.sampleRateLabel.setObjectName("sampleRateLabel")
-        self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.sampleRateLabel)
-        self.verticalLayout_2.addWidget(self.sysBox)
+        self.horizontalLayout.addItem(spacerItem1)
+        self.verticalLayout = QtGui.QVBoxLayout()
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.pauseButton = QtGui.QPushButton(self.centralwidget)
+        self.pauseButton.setMinimumSize(QtCore.QSize(80, 0))
+        self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.pauseButton.setObjectName("pauseButton")
+        self.verticalLayout.addWidget(self.pauseButton)
         spacerItem2 = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout_2.addItem(spacerItem2)
-        self.gridLayout.addLayout(self.verticalLayout_2, 2, 0, 1, 1)
-        self.rxBox = QtGui.QGroupBox(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.rxBox.sizePolicy().hasHeightForWidth())
-        self.rxBox.setSizePolicy(sizePolicy)
-        self.rxBox.setMinimumSize(QtCore.QSize(180, 120))
-        self.rxBox.setMaximumSize(QtCore.QSize(180, 16777215))
-        self.rxBox.setObjectName("rxBox")
-        self.formLayoutWidget_3 = QtGui.QWidget(self.rxBox)
-        self.formLayoutWidget_3.setGeometry(QtCore.QRect(10, 10, 164, 101))
-        self.formLayoutWidget_3.setObjectName("formLayoutWidget_3")
-        self.formLayout_3 = QtGui.QFormLayout(self.formLayoutWidget_3)
-        self.formLayout_3.setSizeConstraint(QtGui.QLayout.SetFixedSize)
-        self.formLayout_3.setObjectName("formLayout_3")
-        self.gainClockLabel = QtGui.QLabel(self.formLayoutWidget_3)
-        self.gainClockLabel.setObjectName("gainClockLabel")
-        self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.gainClockLabel)
-        self.gainPhaseLabel = QtGui.QLabel(self.formLayoutWidget_3)
-        self.gainPhaseLabel.setObjectName("gainPhaseLabel")
-        self.formLayout_3.setWidget(2, QtGui.QFormLayout.LabelRole, self.gainPhaseLabel)
-        self.gainClockEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
-        self.gainClockEdit.setMinimumSize(QtCore.QSize(60, 0))
-        self.gainClockEdit.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.gainClockEdit.setObjectName("gainClockEdit")
-        self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.gainClockEdit)
-        self.gainFreqEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
-        self.gainFreqEdit.setMinimumSize(QtCore.QSize(60, 0))
-        self.gainFreqEdit.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.gainFreqEdit.setObjectName("gainFreqEdit")
-        self.formLayout_3.setWidget(2, QtGui.QFormLayout.FieldRole, self.gainFreqEdit)
-        self.gainPhaseEdit = QtGui.QLineEdit(self.formLayoutWidget_3)
-        self.gainPhaseEdit.setMaximumSize(QtCore.QSize(80, 16777215))
-        self.gainPhaseEdit.setObjectName("gainPhaseEdit")
-        self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.gainPhaseEdit)
-        self.gainPhaseLabel_2 = QtGui.QLabel(self.formLayoutWidget_3)
-        self.gainPhaseLabel_2.setObjectName("gainPhaseLabel_2")
-        self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.gainPhaseLabel_2)
-        self.gridLayout.addWidget(self.rxBox, 2, 2, 1, 1)
+        self.verticalLayout.addItem(spacerItem2)
+        self.closeButton = QtGui.QPushButton(self.centralwidget)
+        self.closeButton.setMinimumSize(QtCore.QSize(80, 0))
+        self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.closeButton.setObjectName("closeButton")
+        self.verticalLayout.addWidget(self.closeButton)
+        self.horizontalLayout.addLayout(self.verticalLayout)
+        self.verticalLayout_3.addLayout(self.horizontalLayout)
         DigitalWindow.setCentralWidget(self.centralwidget)
         self.menubar = QtGui.QMenuBar(DigitalWindow)
-        self.menubar.setGeometry(QtCore.QRect(0, 0, 1019, 24))
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 1059, 23))
         self.menubar.setObjectName("menubar")
         self.menuFile = QtGui.QMenu(self.menubar)
         self.menuFile.setObjectName("menuFile")
@@ -240,22 +227,22 @@ class Ui_DigitalWindow(object):
 
     def retranslateUi(self, DigitalWindow):
         DigitalWindow.setWindowTitle(QtGui.QApplication.translate("DigitalWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
+        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
+        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
         self.channelModeBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Channel Model Parameters", None, QtGui.QApplication.UnicodeUTF8))
         self.snrLabel.setText(QtGui.QApplication.translate("DigitalWindow", "SNR (dB)", None, QtGui.QApplication.UnicodeUTF8))
         self.freqLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Frequency Offset (Hz)", None, QtGui.QApplication.UnicodeUTF8))
         self.timeLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Timing Offset", None, QtGui.QApplication.UnicodeUTF8))
-        self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
-        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
-        self.rxBox_2.setTitle(QtGui.QApplication.translate("DigitalWindow", "Received Packet Info", None, QtGui.QApplication.UnicodeUTF8))
-        self.pktsRcvdLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Rcvd.", None, QtGui.QApplication.UnicodeUTF8))
-        self.pktsCorrectLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Correct", None, QtGui.QApplication.UnicodeUTF8))
-        self.perLabel.setText(QtGui.QApplication.translate("DigitalWindow", "PER", None, QtGui.QApplication.UnicodeUTF8))
-        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
         self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
         self.gainClockLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Clock Loop Gain", None, QtGui.QApplication.UnicodeUTF8))
         self.gainPhaseLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Freq. Loop Gain", None, QtGui.QApplication.UnicodeUTF8))
         self.gainPhaseLabel_2.setText(QtGui.QApplication.translate("DigitalWindow", "Phase Loop Gain", None, QtGui.QApplication.UnicodeUTF8))
+        self.rxBox_2.setTitle(QtGui.QApplication.translate("DigitalWindow", "Received Packet Info", None, QtGui.QApplication.UnicodeUTF8))
+        self.pktsRcvdLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Rcvd.", None, QtGui.QApplication.UnicodeUTF8))
+        self.pktsCorrectLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Packets Correct", None, QtGui.QApplication.UnicodeUTF8))
+        self.perLabel.setText(QtGui.QApplication.translate("DigitalWindow", "PER", None, QtGui.QApplication.UnicodeUTF8))
+        self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
+        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
         self.menuFile.setTitle(QtGui.QApplication.translate("DigitalWindow", "&File", None, QtGui.QApplication.UnicodeUTF8))
         self.actionExit.setText(QtGui.QApplication.translate("DigitalWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8))
 
index 4e87ff05838bd010c4bc9630f23528b30e537f3d..544704668467aba95c99395c34ce1d74985e7241 100644 (file)
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DigitalWindow</class>
- <widget class="QMainWindow" name="DigitalWindow" >
-  <property name="geometry" >
+ <widget class="QMainWindow" name="DigitalWindow">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>1019</width>
-    <height>754</height>
+    <width>1059</width>
+    <height>751</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>MainWindow</string>
   </property>
-  <widget class="QWidget" name="centralwidget" >
-   <layout class="QGridLayout" name="gridLayout" >
-    <item row="0" column="0" colspan="6" >
-     <layout class="QVBoxLayout" name="verticalLayout_5" >
-      <item>
-       <widget class="QFrame" name="sinkFrame" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="minimumSize" >
-         <size>
-          <width>500</width>
-          <height>550</height>
-         </size>
-        </property>
-        <property name="frameShape" >
-         <enum>QFrame::StyledPanel</enum>
-        </property>
-        <property name="frameShadow" >
-         <enum>QFrame::Raised</enum>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_2" >
-         <item row="1" column="0" >
-          <layout class="QHBoxLayout" name="sinkLayout" />
-         </item>
-        </layout>
-       </widget>
-      </item>
-     </layout>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout_3">
+    <item>
+     <layout class="QHBoxLayout" name="sinkLayout"/>
     </item>
-    <item row="2" column="1" >
-     <widget class="QGroupBox" name="channelModeBox" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize" >
-       <size>
-        <width>245</width>
-        <height>130</height>
-       </size>
-      </property>
-      <property name="maximumSize" >
-       <size>
-        <width>245</width>
-        <height>16777215</height>
-       </size>
-      </property>
-      <property name="title" >
-       <string>Channel Model Parameters</string>
-      </property>
-      <widget class="QWidget" name="formLayoutWidget_2" >
-       <property name="geometry" >
-        <rect>
-         <x>10</x>
-         <y>20</y>
-         <width>221</width>
-         <height>98</height>
-        </rect>
-       </property>
-       <layout class="QFormLayout" name="formLayout_2" >
-        <property name="sizeConstraint" >
-         <enum>QLayout::SetFixedSize</enum>
-        </property>
-        <property name="fieldGrowthPolicy" >
-         <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
-        </property>
-        <item row="0" column="0" >
-         <widget class="QLabel" name="snrLabel" >
-          <property name="text" >
-           <string>SNR (dB)</string>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <widget class="QGroupBox" name="sysBox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="1" >
-         <widget class="QLineEdit" name="snrEdit" >
-          <property name="minimumSize" >
+          <property name="minimumSize">
            <size>
-            <width>60</width>
-            <height>0</height>
+            <width>240</width>
+            <height>60</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
-            <width>80</width>
+            <width>240</width>
             <height>16777215</height>
            </size>
           </property>
-         </widget>
-        </item>
-        <item row="1" column="0" >
-         <widget class="QLabel" name="freqLabel" >
-          <property name="text" >
-           <string>Frequency Offset (Hz)</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1" >
-         <widget class="QLineEdit" name="freqEdit" >
-          <property name="minimumSize" >
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize" >
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
+          <property name="title">
+           <string>System Parameters</string>
           </property>
+          <widget class="QWidget" name="formLayoutWidget">
+           <property name="geometry">
+            <rect>
+             <x>10</x>
+             <y>20</y>
+             <width>211</width>
+             <height>31</height>
+            </rect>
+           </property>
+           <layout class="QFormLayout" name="formLayout">
+            <property name="sizeConstraint">
+             <enum>QLayout::SetFixedSize</enum>
+            </property>
+            <property name="verticalSpacing">
+             <number>20</number>
+            </property>
+            <item row="0" column="1">
+             <widget class="QLineEdit" name="sampleRateEdit">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>60</width>
+                <height>26</height>
+               </size>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>80</width>
+                <height>26</height>
+               </size>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="0">
+             <widget class="QLabel" name="sampleRateLabel">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>0</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>16777215</width>
+                <height>20</height>
+               </size>
+              </property>
+              <property name="text">
+               <string>Sample Rate (sps)</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
          </widget>
         </item>
-        <item row="2" column="0" >
-         <widget class="QLabel" name="timeLabel" >
-          <property name="text" >
-           <string>Timing Offset</string>
+        <item>
+         <spacer name="verticalSpacer_2">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
           </property>
-         </widget>
-        </item>
-        <item row="2" column="1" >
-         <widget class="QLineEdit" name="timeEdit" >
-          <property name="minimumSize" >
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
+          <property name="sizeType">
+           <enum>QSizePolicy::Fixed</enum>
           </property>
-          <property name="maximumSize" >
+          <property name="sizeHint" stdset="0">
            <size>
-            <width>80</width>
-            <height>16777215</height>
+            <width>20</width>
+            <height>60</height>
            </size>
           </property>
-         </widget>
+         </spacer>
         </item>
        </layout>
-      </widget>
-     </widget>
-    </item>
-    <item row="2" column="5" >
-     <layout class="QVBoxLayout" name="verticalLayout" >
+      </item>
       <item>
-       <widget class="QPushButton" name="pauseButton" >
-        <property name="minimumSize" >
+       <widget class="QGroupBox" name="channelModeBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
          <size>
-          <width>80</width>
-          <height>0</height>
+          <width>245</width>
+          <height>130</height>
          </size>
         </property>
-        <property name="maximumSize" >
+        <property name="maximumSize">
          <size>
-          <width>80</width>
+          <width>245</width>
           <height>16777215</height>
          </size>
         </property>
-        <property name="text" >
-         <string>Pause</string>
+        <property name="title">
+         <string>Channel Model Parameters</string>
         </property>
+        <widget class="QWidget" name="formLayoutWidget_2">
+         <property name="geometry">
+          <rect>
+           <x>10</x>
+           <y>20</y>
+           <width>221</width>
+           <height>98</height>
+          </rect>
+         </property>
+         <layout class="QFormLayout" name="formLayout_2">
+          <property name="sizeConstraint">
+           <enum>QLayout::SetFixedSize</enum>
+          </property>
+          <property name="fieldGrowthPolicy">
+           <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+          </property>
+          <item row="0" column="0">
+           <widget class="QLabel" name="snrLabel">
+            <property name="text">
+             <string>SNR (dB)</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="snrEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="freqLabel">
+            <property name="text">
+             <string>Frequency Offset (Hz)</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="freqEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="timeLabel">
+            <property name="text">
+             <string>Timing Offset</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="timeEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
        </widget>
       </item>
       <item>
-       <spacer name="verticalSpacer" >
-        <property name="orientation" >
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeType" >
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>20</width>
-          <height>60</height>
-         </size>
+       <widget class="QGroupBox" name="rxBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
         </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="closeButton" >
-        <property name="minimumSize" >
+        <property name="minimumSize">
          <size>
-          <width>80</width>
-          <height>0</height>
+          <width>220</width>
+          <height>130</height>
          </size>
         </property>
-        <property name="maximumSize" >
+        <property name="maximumSize">
          <size>
-          <width>80</width>
+          <width>180</width>
           <height>16777215</height>
          </size>
         </property>
-        <property name="text" >
-         <string>Close</string>
+        <property name="title">
+         <string>Receiver Parameters</string>
         </property>
+        <widget class="QWidget" name="formLayoutWidget_3">
+         <property name="geometry">
+          <rect>
+           <x>10</x>
+           <y>20</y>
+           <width>201</width>
+           <height>101</height>
+          </rect>
+         </property>
+         <layout class="QFormLayout" name="formLayout_3">
+          <property name="sizeConstraint">
+           <enum>QLayout::SetFixedSize</enum>
+          </property>
+          <item row="0" column="0">
+           <widget class="QLabel" name="gainClockLabel">
+            <property name="text">
+             <string>Clock Loop Gain</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="gainPhaseLabel">
+            <property name="text">
+             <string>Freq. Loop Gain</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="gainClockEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="gainFreqEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="gainPhaseEdit">
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="gainPhaseLabel_2">
+            <property name="text">
+             <string>Phase Loop Gain</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
        </widget>
       </item>
-     </layout>
-    </item>
-    <item row="2" column="3" >
-     <widget class="QGroupBox" name="rxBox_2" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize" >
-       <size>
-        <width>220</width>
-        <height>125</height>
-       </size>
-      </property>
-      <property name="maximumSize" >
-       <size>
-        <width>265</width>
-        <height>125</height>
-       </size>
-      </property>
-      <property name="title" >
-       <string>Received Packet Info</string>
-      </property>
-      <widget class="QWidget" name="formLayoutWidget_4" >
-       <property name="geometry" >
-        <rect>
-         <x>10</x>
-         <y>20</y>
-         <width>248</width>
-         <height>188</height>
-        </rect>
-       </property>
-       <layout class="QFormLayout" name="formLayout_4" >
-        <property name="sizeConstraint" >
-         <enum>QLayout::SetFixedSize</enum>
-        </property>
-        <property name="fieldGrowthPolicy" >
-         <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
-        </property>
-        <item row="0" column="0" >
-         <widget class="QLabel" name="pktsRcvdLabel" >
-          <property name="text" >
-           <string>Packets Rcvd.</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1" >
-         <widget class="QLineEdit" name="pktsRcvdEdit" >
-          <property name="minimumSize" >
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize" >
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0" >
-         <widget class="QLabel" name="pktsCorrectLabel" >
-          <property name="text" >
-           <string>Packets Correct</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1" >
-         <widget class="QLineEdit" name="pktsCorrectEdit" >
-          <property name="minimumSize" >
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize" >
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0" >
-         <widget class="QLabel" name="perLabel" >
-          <property name="text" >
-           <string>PER</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1" >
-         <widget class="QLineEdit" name="perEdit" >
-          <property name="minimumSize" >
-           <size>
-            <width>60</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize" >
-           <size>
-            <width>80</width>
-            <height>16777215</height>
-           </size>
-          </property>
-         </widget>
-        </item>
-       </layout>
-       <zorder>pktsRcvdLabel</zorder>
-       <zorder>pktsCorrectLabel</zorder>
-       <zorder>perLabel</zorder>
-       <zorder>pktsRcvdEdit</zorder>
-       <zorder>pktsCorrectEdit</zorder>
-       <zorder>perEdit</zorder>
-      </widget>
-     </widget>
-    </item>
-    <item row="2" column="4" >
-     <spacer name="horizontalSpacer" >
-      <property name="orientation" >
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0" >
-       <size>
-        <width>20</width>
-        <height>20</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item row="2" column="0" >
-     <layout class="QVBoxLayout" name="verticalLayout_2" >
       <item>
-       <widget class="QGroupBox" name="sysBox" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+       <widget class="QGroupBox" name="rxBox_2">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="minimumSize" >
+        <property name="minimumSize">
          <size>
-          <width>240</width>
-          <height>60</height>
+          <width>220</width>
+          <height>125</height>
          </size>
         </property>
-        <property name="maximumSize" >
+        <property name="maximumSize">
          <size>
-          <width>240</width>
-          <height>16777215</height>
+          <width>265</width>
+          <height>125</height>
          </size>
         </property>
-        <property name="title" >
-         <string>System Parameters</string>
+        <property name="title">
+         <string>Received Packet Info</string>
         </property>
-        <widget class="QWidget" name="formLayoutWidget>
-         <property name="geometry" >
+        <widget class="QWidget" name="formLayoutWidget_4">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>20</y>
-           <width>211</width>
-           <height>31</height>
+           <width>201</width>
+           <height>91</height>
           </rect>
          </property>
-         <layout class="QFormLayout" name="formLayout>
-          <property name="sizeConstraint" >
+         <layout class="QFormLayout" name="formLayout_4">
+          <property name="sizeConstraint">
            <enum>QLayout::SetFixedSize</enum>
           </property>
-          <property name="verticalSpacing" >
-           <number>20</number>
+          <property name="fieldGrowthPolicy">
+           <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
           </property>
-          <item row="0" column="1" >
-           <widget class="QLineEdit" name="sampleRateEdit" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
+          <item row="0" column="0">
+           <widget class="QLabel" name="pktsRcvdLabel">
+            <property name="text">
+             <string>Packets Rcvd.</string>
             </property>
-            <property name="minimumSize" >
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="pktsRcvdEdit">
+            <property name="minimumSize">
              <size>
               <width>60</width>
-              <height>26</height>
+              <height>0</height>
              </size>
             </property>
-            <property name="maximumSize" >
+            <property name="maximumSize">
              <size>
               <width>80</width>
-              <height>26</height>
+              <height>16777215</height>
              </size>
             </property>
            </widget>
           </item>
-          <item row="0" column="0" >
-           <widget class="QLabel" name="sampleRateLabel" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
+          <item row="1" column="0">
+           <widget class="QLabel" name="pktsCorrectLabel">
+            <property name="text">
+             <string>Packets Correct</string>
             </property>
-            <property name="minimumSize" >
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="pktsCorrectEdit">
+            <property name="minimumSize">
              <size>
-              <width>0</width>
-              <height>20</height>
+              <width>60</width>
+              <height>0</height>
              </size>
             </property>
-            <property name="maximumSize" >
+            <property name="maximumSize">
              <size>
-              <width>16777215</width>
-              <height>20</height>
+              <width>80</width>
+              <height>16777215</height>
              </size>
             </property>
-            <property name="text" >
-             <string>Sample Rate (sps)</string>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="perLabel">
+            <property name="text">
+             <string>PER</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="perEdit">
+            <property name="minimumSize">
+             <size>
+              <width>60</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
             </property>
            </widget>
           </item>
          </layout>
+         <zorder>pktsRcvdLabel</zorder>
+         <zorder>pktsCorrectLabel</zorder>
+         <zorder>perLabel</zorder>
+         <zorder>pktsRcvdEdit</zorder>
+         <zorder>pktsCorrectEdit</zorder>
+         <zorder>perEdit</zorder>
         </widget>
        </widget>
       </item>
       <item>
-       <spacer name="verticalSpacer_2" >
-        <property name="orientation" >
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeType" >
-         <enum>QSizePolicy::Fixed</enum>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>20</width>
-          <height>60</height>
+          <height>20</height>
          </size>
         </property>
        </spacer>
       </item>
-     </layout>
-    </item>
-    <item row="2" column="2" >
-     <widget class="QGroupBox" name="rxBox" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize" >
-       <size>
-        <width>180</width>
-        <height>120</height>
-       </size>
-      </property>
-      <property name="maximumSize" >
-       <size>
-        <width>180</width>
-        <height>16777215</height>
-       </size>
-      </property>
-      <property name="title" >
-       <string>Receiver Parameters</string>
-      </property>
-      <widget class="QWidget" name="formLayoutWidget_3" >
-       <property name="geometry" >
-        <rect>
-         <x>10</x>
-         <y>10</y>
-         <width>164</width>
-         <height>101</height>
-        </rect>
-       </property>
-       <layout class="QFormLayout" name="formLayout_3" >
-        <property name="sizeConstraint" >
-         <enum>QLayout::SetFixedSize</enum>
-        </property>
-        <item row="0" column="0" >
-         <widget class="QLabel" name="gainClockLabel" >
-          <property name="text" >
-           <string>Clock Loop Gain</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0" >
-         <widget class="QLabel" name="gainPhaseLabel" >
-          <property name="text" >
-           <string>Freq. Loop Gain</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1" >
-         <widget class="QLineEdit" name="gainClockEdit" >
-          <property name="minimumSize" >
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QPushButton" name="pauseButton">
+          <property name="minimumSize">
            <size>
-            <width>60</width>
+            <width>80</width>
             <height>0</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>80</width>
             <height>16777215</height>
            </size>
           </property>
+          <property name="text">
+           <string>Pause</string>
+          </property>
          </widget>
         </item>
-        <item row="2" column="1" >
-         <widget class="QLineEdit" name="gainFreqEdit" >
-          <property name="minimumSize" >
+        <item>
+         <spacer name="verticalSpacer">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Fixed</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
            <size>
-            <width>60</width>
-            <height>0</height>
+            <width>20</width>
+            <height>60</height>
            </size>
           </property>
-          <property name="maximumSize" >
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="closeButton">
+          <property name="minimumSize">
            <size>
             <width>80</width>
-            <height>16777215</height>
+            <height>0</height>
            </size>
           </property>
-         </widget>
-        </item>
-        <item row="1" column="1" >
-         <widget class="QLineEdit" name="gainPhaseEdit" >
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>80</width>
             <height>16777215</height>
            </size>
           </property>
-         </widget>
-        </item>
-        <item row="1" column="0" >
-         <widget class="QLabel" name="gainPhaseLabel_2" >
-          <property name="text" >
-           <string>Phase Loop Gain</string>
+          <property name="text">
+           <string>Close</string>
           </property>
          </widget>
         </item>
        </layout>
-      </widget>
-     </widget>
+      </item>
+     </layout>
     </item>
    </layout>
-   <zorder>channelModeBox</zorder>
-   <zorder></zorder>
-   <zorder>rxBox_2</zorder>
-   <zorder>horizontalSpacer</zorder>
-   <zorder></zorder>
-   <zorder>rxBox</zorder>
   </widget>
-  <widget class="QMenuBar" name="menubar" >
-   <property name="geometry" >
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>1019</width>
-     <height>24</height>
+     <width>1059</width>
+     <height>23</height>
     </rect>
    </property>
-   <widget class="QMenu" name="menuFile" >
-    <property name="title" >
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
      <string>&amp;File</string>
     </property>
-    <addaction name="actionExit" />
+    <addaction name="actionExit"/>
    </widget>
-   <addaction name="menuFile" />
+   <addaction name="menuFile"/>
   </widget>
-  <widget class="QStatusBar" name="statusbar" />
-  <action name="actionExit" >
-   <property name="text" >
+  <widget class="QStatusBar" name="statusbar"/>
+  <action name="actionExit">
+   <property name="text">
     <string>E&amp;xit</string>
    </property>
   </action>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>322</x>
      <y>623</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>66</x>
      <y>561</y>
     </hint>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>-1</x>
      <y>-1</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>617</x>
      <y>327</y>
     </hint>
index 60e1a6e3790339bc2dfc656bc3f5ab29af267540..e2488eb3d3e456dcb3d21ca5e37310803f40ce1f 100644 (file)
@@ -2,8 +2,8 @@
 
 # Form implementation generated from reading ui file 'qt_rx_window.ui'
 #
-# Created: Fri Jul  3 01:03:19 2009
-#      by: PyQt4 UI code generator 4.4.3
+# Created: Tue May 11 21:03:07 2010
+#      by: PyQt4 UI code generator 4.6.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -12,29 +12,14 @@ from PyQt4 import QtCore, QtGui
 class Ui_DigitalWindow(object):
     def setupUi(self, DigitalWindow):
         DigitalWindow.setObjectName("DigitalWindow")
-        DigitalWindow.resize(1000, 816)
+        DigitalWindow.resize(999, 519)
         self.centralwidget = QtGui.QWidget(DigitalWindow)
         self.centralwidget.setObjectName("centralwidget")
-        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
-        self.gridLayout.setObjectName("gridLayout")
-        self.sinkFrame = QtGui.QFrame(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(1)
-        sizePolicy.setHeightForWidth(self.sinkFrame.sizePolicy().hasHeightForWidth())
-        self.sinkFrame.setSizePolicy(sizePolicy)
-        self.sinkFrame.setMinimumSize(QtCore.QSize(800, 500))
-        self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
-        self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.sinkFrame.setObjectName("sinkFrame")
-        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.sinkFrame)
-        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+        self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
+        self.verticalLayout.setObjectName("verticalLayout")
         self.sinkLayout = QtGui.QHBoxLayout()
         self.sinkLayout.setObjectName("sinkLayout")
-        self.horizontalLayout_2.addLayout(self.sinkLayout)
-        self.gridLayout.addWidget(self.sinkFrame, 0, 0, 1, 1)
-        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
+        self.verticalLayout.addLayout(self.sinkLayout)
         self.horizontalLayout = QtGui.QHBoxLayout()
         self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
         self.horizontalLayout.setObjectName("horizontalLayout")
@@ -113,15 +98,15 @@ class Ui_DigitalWindow(object):
         self.perEdit.setGeometry(QtCore.QRect(120, 90, 113, 23))
         self.perEdit.setObjectName("perEdit")
         self.verticalLayout_3.addWidget(self.rxPacketBox)
-        spacerItem1 = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        self.verticalLayout_3.addItem(spacerItem1)
+        spacerItem = QtGui.QSpacerItem(20, 60, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        self.verticalLayout_3.addItem(spacerItem)
         self.horizontalLayout.addLayout(self.verticalLayout_3)
-        spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout.addItem(spacerItem2)
+        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout.addItem(spacerItem1)
         self.verticalLayout_5 = QtGui.QVBoxLayout()
         self.verticalLayout_5.setObjectName("verticalLayout_5")
-        spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_5.addItem(spacerItem3)
+        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_5.addItem(spacerItem2)
         self.closeButton = QtGui.QPushButton(self.centralwidget)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
@@ -133,10 +118,10 @@ class Ui_DigitalWindow(object):
         self.closeButton.setObjectName("closeButton")
         self.verticalLayout_5.addWidget(self.closeButton)
         self.horizontalLayout.addLayout(self.verticalLayout_5)
-        self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 1)
+        self.verticalLayout.addLayout(self.horizontalLayout)
         DigitalWindow.setCentralWidget(self.centralwidget)
         self.menubar = QtGui.QMenuBar(DigitalWindow)
-        self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 24))
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 999, 23))
         self.menubar.setObjectName("menubar")
         self.menuFile = QtGui.QMenu(self.menubar)
         self.menuFile.setObjectName("menuFile")
index 4631b77827c7ec7ceb35b482ea90019239c4d408..f5a074876dd17825c3a9228ecd98e121dfa94996 100644 (file)
@@ -1,92 +1,53 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DigitalWindow</class>
- <widget class="QMainWindow" name="DigitalWindow" >
-  <property name="geometry" >
+ <widget class="QMainWindow" name="DigitalWindow">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>1000</width>
-    <height>816</height>
+    <width>999</width>
+    <height>519</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>MainWindow</string>
   </property>
-  <widget class="QWidget" name="centralwidget" >
-   <layout class="QGridLayout" name="gridLayout" >
-    <item row="0" column="0" >
-     <widget class="QFrame" name="sinkFrame" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-        <horstretch>0</horstretch>
-        <verstretch>1</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize" >
-       <size>
-        <width>800</width>
-        <height>500</height>
-       </size>
-      </property>
-      <property name="frameShape" >
-       <enum>QFrame::StyledPanel</enum>
-      </property>
-      <property name="frameShadow" >
-       <enum>QFrame::Raised</enum>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_2" >
-       <item>
-        <layout class="QHBoxLayout" name="sinkLayout" />
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="1" column="0" >
-     <spacer name="verticalSpacer" >
-      <property name="orientation" >
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeType" >
-       <enum>QSizePolicy::Fixed</enum>
-      </property>
-      <property name="sizeHint" stdset="0" >
-       <size>
-        <width>20</width>
-        <height>40</height>
-       </size>
-      </property>
-     </spacer>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="sinkLayout"/>
     </item>
-    <item row="2" column="0" >
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="sizeConstraint" >
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="sizeConstraint">
        <enum>QLayout::SetFixedSize</enum>
       </property>
       <item>
-       <widget class="QGroupBox" name="rxBox" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+       <widget class="QGroupBox" name="rxBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="minimumSize" >
+        <property name="minimumSize">
          <size>
           <width>250</width>
           <height>190</height>
          </size>
         </property>
-        <property name="maximumSize" >
+        <property name="maximumSize">
          <size>
           <width>250</width>
           <height>190</height>
          </size>
         </property>
-        <property name="title" >
+        <property name="title">
          <string>Receiver Parameters</string>
         </property>
-        <widget class="QLineEdit" name="gainMuEdit" >
-         <property name="geometry" >
+        <widget class="QLineEdit" name="gainMuEdit">
+         <property name="geometry">
           <rect>
            <x>120</x>
            <y>120</y>
@@ -95,8 +56,8 @@
           </rect>
          </property>
         </widget>
-        <widget class="QLabel" name="gainMuLabel" >
-         <property name="geometry" >
+        <widget class="QLabel" name="gainMuLabel">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>120</y>
            <height>20</height>
           </rect>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>mu's gain</string>
          </property>
         </widget>
-        <widget class="QLineEdit" name="alphaEdit" >
-         <property name="geometry" >
+        <widget class="QLineEdit" name="alphaEdit">
+         <property name="geometry">
           <rect>
            <x>120</x>
            <y>150</y>
           </rect>
          </property>
         </widget>
-        <widget class="QLabel" name="alphaLabel" >
-         <property name="geometry" >
+        <widget class="QLabel" name="alphaLabel">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>150</y>
            <height>20</height>
           </rect>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Alpha</string>
          </property>
         </widget>
-        <widget class="QLabel" name="gainLabel" >
-         <property name="geometry" >
+        <widget class="QLabel" name="gainLabel">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>60</y>
            <height>17</height>
           </rect>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Gain (dB)</string>
          </property>
         </widget>
-        <widget class="QLineEdit" name="freqEdit" >
-         <property name="geometry" >
+        <widget class="QLineEdit" name="freqEdit">
+         <property name="geometry">
           <rect>
            <x>120</x>
            <y>30</y>
           </rect>
          </property>
         </widget>
-        <widget class="QLabel" name="freqLabel" >
-         <property name="geometry" >
+        <widget class="QLabel" name="freqLabel">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>30</y>
            <height>17</height>
           </rect>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Frequency (Hz)</string>
          </property>
         </widget>
-        <widget class="QLineEdit" name="gainEdit" >
-         <property name="geometry" >
+        <widget class="QLineEdit" name="gainEdit">
+         <property name="geometry">
           <rect>
            <x>120</x>
            <y>60</y>
           </rect>
          </property>
         </widget>
-        <widget class="QLabel" name="decimLabel" >
-         <property name="geometry" >
+        <widget class="QLabel" name="decimLabel">
+         <property name="geometry">
           <rect>
            <x>10</x>
            <y>90</y>
            <height>17</height>
           </rect>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Decimation</string>
          </property>
         </widget>
-        <widget class="QLineEdit" name="decimEdit" >
-         <property name="geometry" >
+        <widget class="QLineEdit" name="decimEdit">
+         <property name="geometry">
           <rect>
            <x>120</x>
            <y>90</y>
        </widget>
       </item>
       <item>
-       <layout class="QVBoxLayout" name="verticalLayout_3" >
+       <layout class="QVBoxLayout" name="verticalLayout_3">
         <item>
-         <widget class="QGroupBox" name="rxPacketBox" >
-          <property name="enabled" >
+         <widget class="QGroupBox" name="rxPacketBox">
+          <property name="enabled">
            <bool>true</bool>
           </property>
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="minimumSize" >
+          <property name="minimumSize">
            <size>
             <width>250</width>
             <height>130</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>250</width>
             <height>130</height>
            </size>
           </property>
-          <property name="font" >
+          <property name="font">
            <font>
             <weight>50</weight>
             <bold>false</bold>
            </font>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Received Packet Info</string>
           </property>
-          <widget class="QLineEdit" name="pktsRcvdEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="pktsRcvdEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>30</y>
             </rect>
            </property>
           </widget>
-          <widget class="QLabel" name="pktsRcvdLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="pktsRcvdLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>30</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>Packets Rcvd.</string>
            </property>
           </widget>
-          <widget class="QLineEdit" name="pktsCorrectEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="pktsCorrectEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>60</y>
             </rect>
            </property>
           </widget>
-          <widget class="QLabel" name="pktsCorrectLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="pktsCorrectLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>60</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>Packets Correct</string>
            </property>
           </widget>
-          <widget class="QLabel" name="perLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="perLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>90</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>PER</string>
            </property>
           </widget>
-          <widget class="QLineEdit" name="perEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="perEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>90</y>
             </rect>
            </property>
           </widget>
-          <zorder>pktsRcvdEdit</zorder>
-          <zorder>pktsRcvdLabel</zorder>
-          <zorder>pktsCorrectEdit</zorder>
-          <zorder>pktsCorrectLabel</zorder>
-          <zorder>perLabel</zorder>
-          <zorder>perEdit</zorder>
-          <zorder>rxBox</zorder>
-          <zorder>verticalLayoutWidget</zorder>
          </widget>
         </item>
         <item>
-         <spacer name="verticalSpacer_2" >
-          <property name="orientation" >
+         <spacer name="verticalSpacer_2">
+          <property name="orientation">
            <enum>Qt::Vertical</enum>
           </property>
-          <property name="sizeType" >
+          <property name="sizeType">
            <enum>QSizePolicy::Fixed</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>20</width>
             <height>60</height>
        </layout>
       </item>
       <item>
-       <spacer name="horizontalSpacer" >
-        <property name="orientation" >
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>20</height>
        </spacer>
       </item>
       <item>
-       <layout class="QVBoxLayout" name="verticalLayout_5" >
+       <layout class="QVBoxLayout" name="verticalLayout_5">
         <item>
-         <spacer name="verticalSpacer_3" >
-          <property name="orientation" >
+         <spacer name="verticalSpacer_3">
+          <property name="orientation">
            <enum>Qt::Vertical</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>20</width>
             <height>40</height>
          </spacer>
         </item>
         <item>
-         <widget class="QPushButton" name="closeButton" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+         <widget class="QPushButton" name="closeButton">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="minimumSize" >
+          <property name="minimumSize">
            <size>
             <width>80</width>
             <height>30</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>80</width>
             <height>30</height>
            </size>
           </property>
-          <property name="text" >
+          <property name="text">
            <string>Close</string>
           </property>
          </widget>
      </layout>
     </item>
    </layout>
-   <zorder>closeButton</zorder>
-   <zorder>sinkFrame</zorder>
-   <zorder>rxBox</zorder>
-   <zorder>rxPacketBox</zorder>
-   <zorder>verticalLayoutWidget</zorder>
-   <zorder>verticalSpacer</zorder>
-   <zorder>horizontalLayoutWidget_2</zorder>
   </widget>
-  <widget class="QMenuBar" name="menubar" >
-   <property name="geometry" >
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>1000</width>
-     <height>24</height>
+     <width>999</width>
+     <height>23</height>
     </rect>
    </property>
-   <widget class="QMenu" name="menuFile" >
-    <property name="title" >
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
      <string>&amp;File</string>
     </property>
-    <addaction name="actionExit" />
+    <addaction name="actionExit"/>
    </widget>
-   <addaction name="menuFile" />
+   <addaction name="menuFile"/>
   </widget>
-  <widget class="QStatusBar" name="statusbar" />
-  <action name="actionExit" >
-   <property name="text" >
+  <widget class="QStatusBar" name="statusbar"/>
+  <action name="actionExit">
+   <property name="text">
     <string>E&amp;xit</string>
    </property>
   </action>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>-1</x>
      <y>-1</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>617</x>
      <y>327</y>
     </hint>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>960</x>
      <y>694</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>66</x>
      <y>561</y>
     </hint>
index 14c961ab2b73d4ab77d1abc7701bdafb1eadffc7..2fd719ce1bb5c641d3f8227da3d4b97275d9e92c 100644 (file)
@@ -2,8 +2,8 @@
 
 # Form implementation generated from reading ui file 'qt_rx_window2.ui'
 #
-# Created: Sat Jan  2 12:54:51 2010
-#      by: PyQt4 UI code generator 4.4.3
+# Created: Tue May 11 21:01:39 2010
+#      by: PyQt4 UI code generator 4.6.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -12,11 +12,14 @@ from PyQt4 import QtCore, QtGui
 class Ui_DigitalWindow(object):
     def setupUi(self, DigitalWindow):
         DigitalWindow.setObjectName("DigitalWindow")
-        DigitalWindow.resize(1000, 816)
+        DigitalWindow.resize(1000, 523)
         self.centralwidget = QtGui.QWidget(DigitalWindow)
         self.centralwidget.setObjectName("centralwidget")
-        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
-        self.gridLayout.setObjectName("gridLayout")
+        self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.sinkLayout = QtGui.QHBoxLayout()
+        self.sinkLayout.setObjectName("sinkLayout")
+        self.verticalLayout.addLayout(self.sinkLayout)
         self.horizontalLayout = QtGui.QHBoxLayout()
         self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
         self.horizontalLayout.setObjectName("horizontalLayout")
@@ -123,26 +126,10 @@ class Ui_DigitalWindow(object):
         self.closeButton.setObjectName("closeButton")
         self.verticalLayout_5.addWidget(self.closeButton)
         self.horizontalLayout.addLayout(self.verticalLayout_5)
-        self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
-        self.sinkFrame = QtGui.QFrame(self.centralwidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(1)
-        sizePolicy.setHeightForWidth(self.sinkFrame.sizePolicy().hasHeightForWidth())
-        self.sinkFrame.setSizePolicy(sizePolicy)
-        self.sinkFrame.setMinimumSize(QtCore.QSize(800, 500))
-        self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
-        self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.sinkFrame.setObjectName("sinkFrame")
-        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.sinkFrame)
-        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
-        self.sinkLayout = QtGui.QHBoxLayout()
-        self.sinkLayout.setObjectName("sinkLayout")
-        self.horizontalLayout_2.addLayout(self.sinkLayout)
-        self.gridLayout.addWidget(self.sinkFrame, 0, 0, 1, 1)
+        self.verticalLayout.addLayout(self.horizontalLayout)
         DigitalWindow.setCentralWidget(self.centralwidget)
         self.menubar = QtGui.QMenuBar(DigitalWindow)
-        self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 24))
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 23))
         self.menubar.setObjectName("menubar")
         self.menuFile = QtGui.QMenu(self.menubar)
         self.menuFile.setObjectName("menuFile")
index 5a83471b8bdd7c37f49e1ba2cad490753408173c..745af8fb81c5b063099cfeb26a387628d37d8044 100644 (file)
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DigitalWindow</class>
- <widget class="QMainWindow" name="DigitalWindow" >
-  <property name="geometry" >
+ <widget class="QMainWindow" name="DigitalWindow">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>1000</width>
-    <height>816</height>
+    <height>523</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>MainWindow</string>
   </property>
-  <widget class="QWidget" name="centralwidget" >
-   <layout class="QGridLayout" name="gridLayout" >
-    <item row="1" column="0" >
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="sizeConstraint" >
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="sinkLayout"/>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="sizeConstraint">
        <enum>QLayout::SetFixedSize</enum>
       </property>
       <item>
-       <widget class="QGroupBox" name="rxBox" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+       <widget class="QGroupBox" name="rxBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="minimumSize" >
+        <property name="minimumSize">
          <size>
           <width>250</width>
           <height>190</height>
          </size>
         </property>
-        <property name="maximumSize" >
+        <property name="maximumSize">
          <size>
           <width>250</width>
           <height>250</height>
          </size>
         </property>
-        <property name="title" >
+        <property name="title">
          <string>Receiver Parameters</string>
         </property>
-        <layout class="QFormLayout" name="formLayout" >
-         <item row="0" column="0" >
-          <widget class="QLabel" name="freqLabel" >
-           <property name="text" >
+        <layout class="QFormLayout" name="formLayout">
+         <item row="0" column="0">
+          <widget class="QLabel" name="freqLabel">
+           <property name="text">
             <string>Frequency (Hz)</string>
            </property>
           </widget>
          </item>
-         <item row="0" column="1" >
-          <widget class="QLineEdit" name="freqEdit" />
+         <item row="0" column="1">
+          <widget class="QLineEdit" name="freqEdit"/>
          </item>
-         <item row="1" column="0" >
-          <widget class="QLabel" name="gainLabel" >
-           <property name="text" >
+         <item row="1" column="0">
+          <widget class="QLabel" name="gainLabel">
+           <property name="text">
             <string>Gain (dB)</string>
            </property>
           </widget>
          </item>
-         <item row="1" column="1" >
-          <widget class="QLineEdit" name="gainEdit" />
+         <item row="1" column="1">
+          <widget class="QLineEdit" name="gainEdit"/>
          </item>
-         <item row="2" column="0" >
-          <widget class="QLabel" name="decimLabel" >
-           <property name="text" >
+         <item row="2" column="0">
+          <widget class="QLabel" name="decimLabel">
+           <property name="text">
             <string>Decimation</string>
            </property>
           </widget>
          </item>
-         <item row="2" column="1" >
-          <widget class="QLineEdit" name="decimEdit" />
+         <item row="2" column="1">
+          <widget class="QLineEdit" name="decimEdit"/>
          </item>
-         <item row="3" column="0" >
-          <widget class="QLabel" name="gainClockLabel" >
-           <property name="text" >
+         <item row="3" column="0">
+          <widget class="QLabel" name="gainClockLabel">
+           <property name="text">
             <string>Clock Loop Gain</string>
            </property>
           </widget>
          </item>
-         <item row="3" column="1" >
-          <widget class="QLineEdit" name="gainClockEdit" />
+         <item row="3" column="1">
+          <widget class="QLineEdit" name="gainClockEdit"/>
          </item>
-         <item row="4" column="0" >
-          <widget class="QLabel" name="gainPhaseLabel" >
-           <property name="text" >
+         <item row="4" column="0">
+          <widget class="QLabel" name="gainPhaseLabel">
+           <property name="text">
             <string>Phase Loop Gain</string>
            </property>
           </widget>
          </item>
-         <item row="4" column="1" >
-          <widget class="QLineEdit" name="gainPhaseEdit" />
+         <item row="4" column="1">
+          <widget class="QLineEdit" name="gainPhaseEdit"/>
          </item>
-         <item row="5" column="1" >
-          <widget class="QLineEdit" name="gainFreqEdit" />
+         <item row="5" column="1">
+          <widget class="QLineEdit" name="gainFreqEdit"/>
          </item>
-         <item row="5" column="0" >
-          <widget class="QLabel" name="gainFreqLabel" >
-           <property name="text" >
+         <item row="5" column="0">
+          <widget class="QLabel" name="gainFreqLabel">
+           <property name="text">
             <string>Freq. Loop Gain</string>
            </property>
           </widget>
        </widget>
       </item>
       <item>
-       <layout class="QVBoxLayout" name="verticalLayout_3" >
+       <layout class="QVBoxLayout" name="verticalLayout_3">
         <item>
-         <widget class="QGroupBox" name="rxPacketBox" >
-          <property name="enabled" >
+         <widget class="QGroupBox" name="rxPacketBox">
+          <property name="enabled">
            <bool>true</bool>
           </property>
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="minimumSize" >
+          <property name="minimumSize">
            <size>
             <width>250</width>
             <height>130</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>250</width>
             <height>130</height>
            </size>
           </property>
-          <property name="font" >
+          <property name="font">
            <font>
             <weight>50</weight>
             <bold>false</bold>
            </font>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Received Packet Info</string>
           </property>
-          <widget class="QLineEdit" name="pktsRcvdEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="pktsRcvdEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>30</y>
             </rect>
            </property>
           </widget>
-          <widget class="QLabel" name="pktsRcvdLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="pktsRcvdLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>30</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>Packets Rcvd.</string>
            </property>
           </widget>
-          <widget class="QLineEdit" name="pktsCorrectEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="pktsCorrectEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>60</y>
             </rect>
            </property>
           </widget>
-          <widget class="QLabel" name="pktsCorrectLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="pktsCorrectLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>60</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>Packets Correct</string>
            </property>
           </widget>
-          <widget class="QLabel" name="perLabel" >
-           <property name="geometry" >
+          <widget class="QLabel" name="perLabel">
+           <property name="geometry">
             <rect>
              <x>10</x>
              <y>90</y>
              <height>20</height>
             </rect>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>PER</string>
            </property>
           </widget>
-          <widget class="QLineEdit" name="perEdit" >
-           <property name="geometry" >
+          <widget class="QLineEdit" name="perEdit">
+           <property name="geometry">
             <rect>
              <x>120</x>
              <y>90</y>
          </widget>
         </item>
         <item>
-         <spacer name="verticalSpacer_2" >
-          <property name="orientation" >
+         <spacer name="verticalSpacer_2">
+          <property name="orientation">
            <enum>Qt::Vertical</enum>
           </property>
-          <property name="sizeType" >
+          <property name="sizeType">
            <enum>QSizePolicy::Fixed</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>20</width>
             <height>60</height>
        </layout>
       </item>
       <item>
-       <spacer name="horizontalSpacer" >
-        <property name="orientation" >
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>20</height>
        </spacer>
       </item>
       <item>
-       <layout class="QVBoxLayout" name="verticalLayout_5" >
+       <layout class="QVBoxLayout" name="verticalLayout_5">
         <item>
-         <spacer name="verticalSpacer_3" >
-          <property name="orientation" >
+         <spacer name="verticalSpacer_3">
+          <property name="orientation">
            <enum>Qt::Vertical</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>20</width>
             <height>40</height>
          </spacer>
         </item>
         <item>
-         <widget class="QPushButton" name="closeButton" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+         <widget class="QPushButton" name="closeButton">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="minimumSize" >
+          <property name="minimumSize">
            <size>
             <width>80</width>
             <height>30</height>
            </size>
           </property>
-          <property name="maximumSize" >
+          <property name="maximumSize">
            <size>
             <width>80</width>
             <height>30</height>
            </size>
           </property>
-          <property name="text" >
+          <property name="text">
            <string>Close</string>
           </property>
          </widget>
       </item>
      </layout>
     </item>
-    <item row="0" column="0" >
-     <widget class="QFrame" name="sinkFrame" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-        <horstretch>0</horstretch>
-        <verstretch>1</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize" >
-       <size>
-        <width>800</width>
-        <height>500</height>
-       </size>
-      </property>
-      <property name="frameShape" >
-       <enum>QFrame::StyledPanel</enum>
-      </property>
-      <property name="frameShadow" >
-       <enum>QFrame::Raised</enum>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_2" >
-       <item>
-        <layout class="QHBoxLayout" name="sinkLayout" />
-       </item>
-      </layout>
-     </widget>
-    </item>
    </layout>
-   <zorder>sinkFrame</zorder>
-   <zorder>verticalSpacer</zorder>
   </widget>
-  <widget class="QMenuBar" name="menubar" >
-   <property name="geometry" >
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
     <rect>
      <x>0</x>
      <y>0</y>
      <width>1000</width>
-     <height>24</height>
+     <height>23</height>
     </rect>
    </property>
-   <widget class="QMenu" name="menuFile" >
-    <property name="title" >
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
      <string>&amp;File</string>
     </property>
-    <addaction name="actionExit" />
+    <addaction name="actionExit"/>
    </widget>
-   <addaction name="menuFile" />
+   <addaction name="menuFile"/>
   </widget>
-  <widget class="QStatusBar" name="statusbar" />
-  <action name="actionExit" >
-   <property name="text" >
+  <widget class="QStatusBar" name="statusbar"/>
+  <action name="actionExit">
+   <property name="text">
     <string>E&amp;xit</string>
    </property>
   </action>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>-1</x>
      <y>-1</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>617</x>
      <y>327</y>
     </hint>
    <receiver>DigitalWindow</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>960</x>
      <y>694</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>66</x>
      <y>561</y>
     </hint>
index 80bf4503f50fb3edb6ca17a06d01c931cf8b1201..e8e6288f5bf7c6924296e1473ba59ccd624a4c2c 100644 (file)
@@ -26,8 +26,8 @@ public:
 protected:
   virtual QwtText trackerText( const QwtDoublePoint& p ) const 
   {
-    QwtText t(QString("Sample %1, %2 V").arg(p.x(), 0, 'f', 0).arg(p.y(), 0, 'f', 4));
-
+    QwtText t(QString("(%1, %2)").arg(p.x(), 0, 'f', 4).
+             arg(p.y(), 0, 'f', 4));
     return t;
   }
 };
@@ -39,8 +39,6 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent)
 
   resize(parent->width(), parent->height());
 
-  _displayIntervalTime = (1.0/10.0); // 1/10 of a second between updates
-
   _numPoints = 1024;
   _penSize = 5;
   _realDataPoints = new double[_numPoints];
@@ -58,12 +56,10 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent)
   canvas()->setPalette(palette);  
 
   setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine);
-  //setAxisScale(QwtPlot::xBottom, -1.0, 1.0);
   set_xaxis(-2.0, 2.0);
   setAxisTitle(QwtPlot::xBottom, "In-phase");
 
   setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
-  //setAxisScale(QwtPlot::yLeft, -1.0, 1.0);
   set_yaxis(-2.0, 2.0);
   setAxisTitle(QwtPlot::yLeft, "Quadrature");
 
@@ -148,19 +144,9 @@ ConstellationDisplayPlot::set_axis(double xmin, double xmax,
   set_yaxis(ymin, ymax);
 }
 
-void ConstellationDisplayPlot::replot(){
-
-  const timespec startTime = get_highres_clock();
-  
+void ConstellationDisplayPlot::replot()
+{
   QwtPlot::replot();
-
-  double differenceTime = (diff_timespec(get_highres_clock(), startTime));
-
-  differenceTime *= 99.0;
-  // Require at least a 10% duty cycle
-  if(differenceTime > (1.0/10.0)){
-    _displayIntervalTime = differenceTime;
-  }
 }
 
 void
@@ -171,10 +157,12 @@ ConstellationDisplayPlot::resizeSlot( QSize *s )
 
 void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints,
                                           const double* imagDataPoints,
-                                          const int64_t numDataPoints)
+                                          const int64_t numDataPoints,
+                                          const double timeInterval)
 {
-  if(numDataPoints > 0){
-
+  if((numDataPoints > 0) && 
+     (diff_timespec(get_highres_clock(), _lastReplot) > timeInterval)) {
+    
     if(numDataPoints != _numPoints){
       _numPoints = numDataPoints;
 
@@ -185,17 +173,12 @@ void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints,
       
       _plot_curve->setRawData(_realDataPoints, _imagDataPoints, _numPoints);
     }
+
     memcpy(_realDataPoints, realDataPoints, numDataPoints*sizeof(double));
     memcpy(_imagDataPoints, imagDataPoints, numDataPoints*sizeof(double));
 
-  }
-
-  // Allow at least a 50% duty cycle
-  if(diff_timespec(get_highres_clock(), _lastReplot) > _displayIntervalTime){
-    // Only replot the screen if it is visible
-    if(isVisible()){
-      replot();
-    }
+    replot();
+    
     _lastReplot = get_highres_clock();
   }
 }
index 99ae566e0a8eca90a3ff210064b6a22dc86343bb..a441a8bfe81168a2f1e60c6c9e52b7eebedb8f0a 100644 (file)
@@ -24,7 +24,8 @@ public:
 
   void PlotNewData(const double* realDataPoints, 
                   const double* imagDataPoints, 
-                  const int64_t numDataPoints);
+                  const int64_t numDataPoints,
+                  const double timeInterval);
     
   virtual void replot();
 
@@ -55,8 +56,6 @@ private:
 
   int64_t _numPoints;
   int64_t _penSize;
-
-  double _displayIntervalTime;
 };
 
 #endif /* CONSTELLATION_DISPLAY_PLOT_HPP */
index 7deff85436e6f9cac600c8bf01b1d0ec68dce073..f2cde322efd1569f2ccaf8d1a5c46bee6fdebb5a 100644 (file)
@@ -73,15 +73,22 @@ public:
     updateDisplay();
   }
 
+  void SetUnitType(const std::string &type)
+  {
+    _unitType = type;
+  }
+
 protected:
   virtual QwtText trackerText( const QwtDoublePoint& p ) const 
   {
-    QString strunits = (GetFrequencyPrecision() == 0) ? "Hz" : "kHz";
-    QwtText t(QString("%1 %2, %3 dB").arg(p.x(), 0, 'f', 
-                                         GetFrequencyPrecision()).arg(strunits).arg(p.y(), 0, 'f', 2));
-
+    QwtText t(QString("%1 %2, %3 dB").
+             arg(p.x(), 0, 'f', GetFrequencyPrecision()).
+             arg(_unitType.c_str()).arg(p.y(), 0, 'f', 2));
     return t;
   }
+
+private:
+  std::string _unitType;
 };
 
 FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
@@ -94,8 +101,6 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
 
   resize(parent->width(), parent->height());
   
-  _displayIntervalTime = (1.0/10.0); // 1/10 of a second between updates
-
   _useCenterFrequencyFlag = false;
 
   _numPoints = 1024;
@@ -115,9 +120,8 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
   palette.setColor(canvas()->backgroundRole(), QColor("white"));
   canvas()->setPalette(palette);  
 
-  setAxisScaleDraw(QwtPlot::xBottom, new FreqDisplayScaleDraw(0));
-  setAxisScale(QwtPlot::xBottom, _startFrequency, _stopFrequency);
   setAxisTitle(QwtPlot::xBottom, "Frequency (Hz)");
+  setAxisScaleDraw(QwtPlot::xBottom, new FreqDisplayScaleDraw(0));
 
   _minYAxis = -120;
   _maxYAxis = 10;
@@ -150,7 +154,7 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
 
   _upper_intensity_marker = new QwtPlotMarker();
   _upper_intensity_marker->setLineStyle(QwtPlotMarker::HLine);
-  _upper_intensity_marker->setLinePen(QPen(Qt::green));
+  _upper_intensity_marker->setLinePen(QPen(Qt::green, 0, Qt::DotLine));
   _upper_intensity_marker->attach(this);
 
   memset(_dataPoints, 0x0, _numPoints*sizeof(double));
@@ -161,9 +165,6 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
     _maxFFTPoints[number] = -280.0;
   }
 
-  _resetXAxisPoints();
-
-
   // set up peak marker
   QwtSymbol symbol;
 
@@ -213,6 +214,9 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
   const QColor c(Qt::darkRed);
   _zoomer->setRubberBandPen(c);
   _zoomer->setTrackerPen(c);
+
+  // Do this after the zoomer has been built
+  _resetXAxisPoints();
 }
 
 FrequencyDisplayPlot::~FrequencyDisplayPlot()
@@ -258,21 +262,26 @@ FrequencyDisplayPlot::SetFrequencyRange(const double constStartFreq,
     stopFreq = (stopFreq + centerFreq);
   }
 
-  _startFrequency = startFreq;
-  _stopFrequency = stopFreq;
-  _resetXAxisPoints();
-
-  double display_units = ceil(log10(units)/2.0);
-  setAxisScale(QwtPlot::xBottom, _startFrequency, _stopFrequency);
-  setAxisScaleDraw(QwtPlot::xBottom, new FreqDisplayScaleDraw(display_units));
-  setAxisTitle(QwtPlot::xBottom, QString("Frequency (%1)").arg(strunits.c_str()));
-  ((FreqDisplayZoomer*)_zoomer)->SetFrequencyPrecision(display_units);
-
-  // Load up the new base zoom settings
-  _zoomer->setZoomBase();
-  
-  // Zooms back to the base and clears any other zoom levels
-  _zoomer->zoom(0);
+  bool reset = false;
+  if((startFreq != _startFrequency) || (stopFreq != _stopFrequency))
+    reset = true;
+
+  if(stopFreq > startFreq) {
+    _startFrequency = startFreq;
+    _stopFrequency = stopFreq;
+    
+    if((axisScaleDraw(QwtPlot::xBottom) != NULL) && (_zoomer != NULL)){
+      double display_units = ceil(log10(units)/2.0);
+      setAxisScaleDraw(QwtPlot::xBottom, new FreqDisplayScaleDraw(display_units));
+      setAxisTitle(QwtPlot::xBottom, QString("Frequency (%1)").arg(strunits.c_str()));
+
+      if(reset)
+       _resetXAxisPoints();
+      
+      ((FreqDisplayZoomer*)_zoomer)->SetFrequencyPrecision(display_units);
+      ((FreqDisplayZoomer*)_zoomer)->SetUnitType(strunits);
+    }
+  }
 }
 
 
@@ -291,8 +300,6 @@ FrequencyDisplayPlot::GetStopFrequency() const
 void
 FrequencyDisplayPlot::replot()
 {
-  const timespec startTime = get_highres_clock();
-
   _markerNoiseFloorAmplitude->setYValue(_noiseFloorAmplitude);
   
   // Make sure to take into account the start frequency
@@ -305,14 +312,6 @@ FrequencyDisplayPlot::replot()
   _markerPeakAmplitude->setYValue(_peakAmplitude);
   
   QwtPlot::replot();
-
-  double differenceTime = (diff_timespec(get_highres_clock(), startTime));
-
-  differenceTime *= 99.0;
-  // Require at least a 10% duty cycle
-  if(differenceTime > (1.0/10.0)){
-    _displayIntervalTime = differenceTime;
-  }
 }
  
 void
@@ -324,13 +323,15 @@ FrequencyDisplayPlot::resizeSlot( QSize *s )
 void
 FrequencyDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints,
                                  const double noiseFloorAmplitude, const double peakFrequency,
-                                 const double peakAmplitude)
+                                 const double peakAmplitude, const double timeInterval)
 {
-  if(numDataPoints > 0){
-
-    if(numDataPoints != _numPoints){
+  // Only update plot if there is data and if the time interval has elapsed
+  if((numDataPoints > 0) && 
+     (diff_timespec(get_highres_clock(), _lastReplot) > timeInterval)) {
+    
+    if(numDataPoints != _numPoints) {
       _numPoints = numDataPoints;
-
+      
       delete[] _dataPoints;
       delete[] _minFFTPoints;
       delete[] _maxFFTPoints;
@@ -343,12 +344,12 @@ FrequencyDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDat
       _fft_plot_curve->setRawData(_xAxisPoints, _dataPoints, _numPoints);
       _min_fft_plot_curve->setRawData(_xAxisPoints, _minFFTPoints, _numPoints);
       _max_fft_plot_curve->setRawData(_xAxisPoints, _maxFFTPoints, _numPoints);
-
+      
       _resetXAxisPoints();
       ClearMaxData();
       ClearMinData();
     }
-
+    
     memcpy(_dataPoints, dataPoints, numDataPoints*sizeof(double));
     for(int64_t point = 0; point < numDataPoints; point++){
       if(dataPoints[point] < _minFFTPoints[point]){
@@ -363,14 +364,10 @@ FrequencyDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDat
     _peakFrequency = peakFrequency;
     _peakAmplitude = peakAmplitude;
 
-  }
+    SetUpperIntensityLevel(_peakAmplitude);
 
-  // Allow at least a 50% duty cycle
-  if(diff_timespec(get_highres_clock(), _lastReplot) > _displayIntervalTime){
-    // Only replot the screen if it is visible
-    if(isVisible()){
-      replot();
-    }
+    replot();
+    
     _lastReplot = get_highres_clock();
   }
 }
@@ -412,6 +409,17 @@ FrequencyDisplayPlot::_resetXAxisPoints()
     _xAxisPoints[loc] = freqValue;
     freqValue += fft_bin_size;
   }
+
+  setAxisScale(QwtPlot::xBottom, _startFrequency, _stopFrequency);
+
+  // Set up zoomer base for maximum unzoom x-axis
+  // and reset to maximum unzoom level
+  QwtDoubleRect zbase = _zoomer->zoomBase();
+  zbase.setLeft(_startFrequency);
+  zbase.setRight(_stopFrequency);
+  _zoomer->zoom(zbase);
+  _zoomer->setZoomBase(zbase);
+  _zoomer->zoom(0);
 }
 
 void
index 785efe694b531729e699d868b29c3921bd92e3a3..c78e1667ea55ec99e929fedd8bd8af8d9cdc4a38 100644 (file)
@@ -30,7 +30,7 @@ public:
 
   void PlotNewData(const double* dataPoints, const int64_t numDataPoints,
                   const double noiseFloorAmplitude, const double peakFrequency,
-                  const double peakAmplitude);
+                  const double peakAmplitude, const double timeInterval);
   
   void ClearMaxData();
   void ClearMinData();
@@ -86,8 +86,6 @@ private:
   timespec _lastReplot;
 
   bool _useCenterFrequencyFlag;
-
-  double _displayIntervalTime;
 };
 
 #endif /* FREQUENCY_DISPLAY_PLOT_HPP */
index 4cb71a31a055e5f7c227d6eba79be8993a026a41..8c1b3670300f16bc5ec230a11898c8482b07bcc2 100644 (file)
@@ -111,7 +111,7 @@ SpectrumGUIClass::OpenSpectrumWindow(QWidget* parent,
   timespec_reset(&_lastGUIUpdateTime);
 
   // Draw Blank Display
-  UpdateWindow(false, NULL, 0, NULL, 0, NULL, 0, 1.0, get_highres_clock(), true);
+  UpdateWindow(false, NULL, 0, NULL, 0, NULL, 0, get_highres_clock(), true);
 
   // Set up the initial frequency axis settings
   SetFrequencyRange(_centerFrequency, _startFrequency, _stopFrequency);
@@ -220,7 +220,6 @@ SpectrumGUIClass::UpdateWindow(const bool updateDisplayFlag,
                               const uint64_t realTimeDomainDataSize,
                               const float* complexTimeDomainData,
                               const uint64_t complexTimeDomainDataSize,
-                              const double timePerFFT,
                               const timespec timestamp,
                               const bool lastOfMultipleFFTUpdateFlag)
 {
@@ -277,7 +276,7 @@ SpectrumGUIClass::UpdateWindow(const bool updateDisplayFlag,
   const timespec currentTime = get_highres_clock();
   const timespec lastUpdateGUITime = GetLastGUIUpdateTime();
 
-  if((diff_timespec(currentTime, lastUpdateGUITime) > (4*timePerFFT)) &&
+  if((diff_timespec(currentTime, lastUpdateGUITime) > (4*_updateTime)) &&
      (GetPendingGUIUpdateEvents() > 0) && !timespec_empty(&lastUpdateGUITime)) {
     // Do not update the display if too much data is pending to be displayed
     _droppedEntriesCount++;
@@ -290,7 +289,7 @@ SpectrumGUIClass::UpdateWindow(const bool updateDisplayFlag,
                                            _realTimeDomainPoints,
                                            _imagTimeDomainPoints,
                                            timeDomainBufferSize,
-                                           timePerFFT, timestamp,
+                                           timestamp,
                                            repeatDataFlag,
                                            lastOfMultipleFFTUpdateFlag,
                                            currentTime,
@@ -460,4 +459,12 @@ SpectrumGUIClass::SetFrequencyAxis(double min, double max)
   _spectrumDisplayForm->SetFrequencyAxis(min, max);
 }
 
+void
+SpectrumGUIClass::SetUpdateTime(double t)
+{
+  _updateTime = t;
+  _spectrumDisplayForm->SetUpdateTime(_updateTime);
+}
+
+
 #endif /* SPECTRUM_GUI_CLASS_CPP */
index d8dcb27691ade1396a58319b0f75e0755332c0a4..17d3a54c1af48601a368a72b6e03de89a03f5fa7 100644 (file)
@@ -47,7 +47,7 @@ public:
   void UpdateWindow(const bool, const std::complex<float>*,
                    const uint64_t, const float*,
                    const uint64_t, const float*,
-                   const uint64_t, const double,
+                   const uint64_t,
                    const timespec, const bool);
 
   float GetPowerValue()const;
@@ -79,6 +79,8 @@ public:
   void SetConstellationPenSize(int size);
   void SetFrequencyAxis(double min, double max);
 
+  void SetUpdateTime(double t);
+
 protected:
 
 private:
@@ -98,6 +100,7 @@ private:
   unsigned int _pendingGUIUpdateEventsCount;
   int _droppedEntriesCount;
   bool _fftBuffersCreatedFlag;
+  double _updateTime;
 
   SpectrumDisplayForm* _spectrumDisplayForm;
 
index cb18b44184db14dfdb1f2e4301bf56cfff112908..c299f83a4a09ea56f6b39df9d039cbfc1c96c794 100644 (file)
@@ -7,10 +7,37 @@
 #include <qwt_legend.h>
 
 
-class TimeDomainDisplayZoomer: public QwtPlotZoomer
+class TimePrecisionClass
 {
 public:
-  TimeDomainDisplayZoomer(QwtPlotCanvas* canvas):QwtPlotZoomer(canvas)
+  TimePrecisionClass(const int timePrecision)
+  {
+    _timePrecision = timePrecision;
+  }
+
+  virtual ~TimePrecisionClass()
+  {
+  }
+
+  virtual unsigned int GetTimePrecision() const
+  {
+    return _timePrecision;
+  }
+
+  virtual void SetTimePrecision(const unsigned int newPrecision)
+  {
+    _timePrecision = newPrecision;
+  }
+protected:
+  unsigned int _timePrecision;
+};
+
+
+class TimeDomainDisplayZoomer: public QwtPlotZoomer, public TimePrecisionClass
+{
+public:
+  TimeDomainDisplayZoomer(QwtPlotCanvas* canvas, const unsigned int timePrecision)
+    : QwtPlotZoomer(canvas),TimePrecisionClass(timePrecision)
   {
     setTrackerMode(QwtPicker::AlwaysOn);
   }
@@ -23,28 +50,37 @@ public:
     updateDisplay();
   }
 
+  void SetUnitType(const std::string &type)
+  {
+    _unitType = type;
+  }
+
 protected:
   virtual QwtText trackerText( const QwtDoublePoint& p ) const 
   {
-    QwtText t(QString("Sample %1, %2 V").arg(p.x(), 0, 'f', 0).arg(p.y(), 0, 'f', 4));
+    QwtText t(QString("%1 %2, %3 V").arg(p.x(), 0, 'f', GetTimePrecision()).
+             arg(_unitType.c_str()).
+             arg(p.y(), 0, 'f', 4));
 
     return t;
   }
+
+private:
+  std::string _unitType;
 };
 
-TimeDomainDisplayPlot::TimeDomainDisplayPlot(QWidget* parent):QwtPlot(parent){
+TimeDomainDisplayPlot::TimeDomainDisplayPlot(QWidget* parent):QwtPlot(parent)
+{
   timespec_reset(&_lastReplot);
 
   resize(parent->width(), parent->height());
 
-  _displayIntervalTime = (1.0/10.0); // 1/10 of a second between updates
-
   _numPoints = 1024;
   _realDataPoints = new double[_numPoints];
   _imagDataPoints = new double[_numPoints];
   _xAxisPoints = new double[_numPoints];
 
-  _zoomer = new TimeDomainDisplayZoomer(canvas());
+  _zoomer = new TimeDomainDisplayZoomer(canvas(), 0);
 
   // Disable polygon clipping
   QwtPainter::setDeviceClipping(false);
@@ -59,7 +95,7 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(QWidget* parent):QwtPlot(parent){
 
   setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine);
   set_xaxis(0, _numPoints);
-  setAxisTitle(QwtPlot::xBottom, "Sample Number");
+  setAxisTitle(QwtPlot::xBottom, "Time (sec)");
 
   setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
   set_yaxis(-2.0, 2.0);
@@ -81,6 +117,7 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(QWidget* parent):QwtPlot(parent){
   memset(_imagDataPoints, 0x0, _numPoints*sizeof(double));
   memset(_xAxisPoints, 0x0, _numPoints*sizeof(double));
 
+  _sampleRate = 1;
   _resetXAxisPoints();
 
   replot();
@@ -114,7 +151,8 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(QWidget* parent):QwtPlot(parent){
   legendDisplay->setItemMode(QwtLegend::CheckableItem);
   insertLegend(legendDisplay);
 
-  connect(this, SIGNAL( legendChecked(QwtPlotItem *, bool ) ), this, SLOT( LegendEntryChecked(QwtPlotItem *, bool ) ));
+  connect(this, SIGNAL( legendChecked(QwtPlotItem *, bool ) ), 
+         this, SLOT( LegendEntryChecked(QwtPlotItem *, bool ) ));
 }
 
 TimeDomainDisplayPlot::~TimeDomainDisplayPlot(){
@@ -143,17 +181,7 @@ TimeDomainDisplayPlot::set_xaxis(double min, double max)
 
 void TimeDomainDisplayPlot::replot()
 {
-  const timespec startTime = get_highres_clock();
-  
   QwtPlot::replot();
-
-  double differenceTime = (diff_timespec(get_highres_clock(), startTime));
-
-  differenceTime *= 99.0;
-  // Require at least a 10% duty cycle
-  if(differenceTime > (1.0/10.0)){
-    _displayIntervalTime = differenceTime;
-  }
 }
 
 void
@@ -164,10 +192,12 @@ TimeDomainDisplayPlot::resizeSlot( QSize *s )
 
 void TimeDomainDisplayPlot::PlotNewData(const double* realDataPoints,
                                        const double* imagDataPoints,
-                                       const int64_t numDataPoints)
+                                       const int64_t numDataPoints,
+                                       const double timeInterval)
 {
-  if(numDataPoints > 0){
-
+  if((numDataPoints > 0) && 
+     (diff_timespec(get_highres_clock(), _lastReplot) > timeInterval)) {
+  
     if(numDataPoints != _numPoints){
       _numPoints = numDataPoints;
 
@@ -185,34 +215,61 @@ void TimeDomainDisplayPlot::PlotNewData(const double* realDataPoints,
 
       _resetXAxisPoints();
     }
+
     memcpy(_realDataPoints, realDataPoints, numDataPoints*sizeof(double));
     memcpy(_imagDataPoints, imagDataPoints, numDataPoints*sizeof(double));
 
-  }
+    replot();
 
-  // Allow at least a 50% duty cycle
-  if(diff_timespec(get_highres_clock(), _lastReplot) > _displayIntervalTime){
-    // Only replot the screen if it is visible
-    if(isVisible()){
-      replot();
-    }
     _lastReplot = get_highres_clock();
   }
 }
 
-void TimeDomainDisplayPlot::SetImaginaryDataVisible(const bool visibleFlag){
+void TimeDomainDisplayPlot::SetImaginaryDataVisible(const bool visibleFlag)
+{
   _imag_plot_curve->setVisible(visibleFlag);
 }
 
-void TimeDomainDisplayPlot::_resetXAxisPoints(){
+void TimeDomainDisplayPlot::_resetXAxisPoints()
+{
+  double delt = 1.0/_sampleRate;
   for(long loc = 0; loc < _numPoints; loc++){
-    _xAxisPoints[loc] = loc;
+    _xAxisPoints[loc] = loc*delt;
   }
-  setAxisScale(QwtPlot::xBottom, 0, _numPoints);
+  setAxisScale(QwtPlot::xBottom, 0, _numPoints*delt);
+
+  // Set up zoomer base for maximum unzoom x-axis
+  // and reset to maximum unzoom level
+  QwtDoubleRect zbase = _zoomer->zoomBase();
+  zbase.setLeft(0);
+  zbase.setRight(_numPoints*delt);
+  _zoomer->zoom(zbase);
+  _zoomer->setZoomBase(zbase);
+  _zoomer->zoom(0);
 }
 
-void TimeDomainDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on){
+void TimeDomainDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on)
+{
   plotItem->setVisible(!on);
 }
 
+void
+TimeDomainDisplayPlot::SetSampleRate(double sr, double units,
+                                    const std::string &strunits)
+{
+  double newsr = sr/units;
+  if(newsr != _sampleRate) {
+    _sampleRate = sr/units;
+    _resetXAxisPoints();
+    
+    // While we could change the displayed sigfigs based on the unit being
+    // displayed, I think it looks better by just setting it to 4 regardless.
+    //double display_units = ceil(log10(units)/2.0);
+    double display_units = 4;
+    setAxisTitle(QwtPlot::xBottom, QString("Time (%1)").arg(strunits.c_str()));
+    ((TimeDomainDisplayZoomer*)_zoomer)->SetTimePrecision(display_units);
+    ((TimeDomainDisplayZoomer*)_zoomer)->SetUnitType(strunits);
+  }
+}
+
 #endif /* TIME_DOMAIN_DISPLAY_PLOT_C */
index 8d98abac6d422ee99881c665cfe76ae73f427a49..5525bbabe956bc2379c33426f0f28449056aff92 100644 (file)
@@ -21,7 +21,8 @@ public:
   TimeDomainDisplayPlot(QWidget*);
   virtual ~TimeDomainDisplayPlot();
 
-  void PlotNewData(const double* realDataPoints, const double* imagDataPoints, const int64_t numDataPoints);
+  void PlotNewData(const double* realDataPoints, const double* imagDataPoints, 
+                  const int64_t numDataPoints, const double timeInterval);
     
   void SetImaginaryDataVisible(const bool);
                                   
@@ -32,6 +33,8 @@ public:
 
 public slots:
   void resizeSlot( QSize *s );
+  void SetSampleRate(double sr, double units, 
+                    const std::string &strunits);
 
 protected slots:
   void LegendEntryChecked(QwtPlotItem *plotItem, bool on);
@@ -51,11 +54,11 @@ private:
   double* _imagDataPoints;
   double* _xAxisPoints;
 
+  double _sampleRate;
+
   timespec _lastReplot;
 
   int64_t _numPoints;
-
-  double _displayIntervalTime;
 };
 
 #endif /* TIME_DOMAIN_DISPLAY_PLOT_HPP */
index f6d0cc0ba77c5e67e3cad8b44cb68b37a3f5424d..e0804fa64083bcbd379d81c1fa3fa8892d11a849 100644 (file)
@@ -66,8 +66,7 @@ public:
 
   QwtText label(double value) const
   {
-    return QString("%1").arg((value + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 
-                            0, 'f', GetFrequencyPrecision());
+    return QString("%1").arg(value, 0, 'f', GetFrequencyPrecision());
   }
 
   virtual void initiateUpdate()
@@ -161,7 +160,8 @@ private:
 
 };
 
-class WaterfallZoomer: public QwtPlotZoomer, public TimeScaleData, public FreqOffsetAndPrecisionClass
+class WaterfallZoomer: public QwtPlotZoomer, public TimeScaleData, 
+                      public FreqOffsetAndPrecisionClass
 {
 public:
   WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision)
@@ -180,6 +180,11 @@ public:
     updateDisplay();
   }
 
+  void SetUnitType(const std::string &type)
+  {
+    _unitType = type;
+  }
+
 protected:
   virtual QwtText trackerText( const QwtDoublePoint& p ) const 
   {
@@ -193,10 +198,14 @@ protected:
                                  timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min,
                                  timeTm.tm_sec, lineTime.tv_nsec/1000000));
 
-    QwtText t(QString("%1 %2, %3").arg((p.x() + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 0, 'f', GetFrequencyPrecision()).arg( (GetFrequencyPrecision() == 0) ? "Hz" : "kHz").arg(yLabel));
-
+    QwtText t(QString("%1 %2, %3").
+             arg(p.x(), 0, 'f', GetFrequencyPrecision()).
+             arg(_unitType.c_str()).arg(yLabel));
     return t;
   }
+
+private:
+  std::string _unitType;
 };
 
 
@@ -216,8 +225,6 @@ WaterfallDisplayPlot::WaterfallDisplayPlot(QWidget* parent)
   resize(parent->width(), parent->height());
   _numPoints = 1024;
 
-  _displayIntervalTime = (1.0/5.0); // 1/5 of a second between updates
-
   _waterfallData = new WaterfallData(_startFrequency, _stopFrequency, _numPoints, 200);
 
   QPalette palette;
@@ -282,6 +289,7 @@ WaterfallDisplayPlot::WaterfallDisplayPlot(QWidget* parent)
 WaterfallDisplayPlot::~WaterfallDisplayPlot()
 {
   delete _waterfallData;
+  delete d_spectrogram;
 }
 
 void 
@@ -290,6 +298,8 @@ WaterfallDisplayPlot::Reset()
   _waterfallData->ResizeData(_startFrequency, _stopFrequency, _numPoints);
   _waterfallData->Reset();
 
+  setAxisScale(QwtPlot::xBottom, _startFrequency, _stopFrequency);
+
   // Load up the new base zoom settings
   QwtDoubleRect newSize = _zoomer->zoomBase();
   newSize.setLeft(_startFrequency);
@@ -310,27 +320,32 @@ WaterfallDisplayPlot::SetFrequencyRange(const double constStartFreq,
   double stopFreq = constStopFreq / units;
   double centerFreq = constCenterFreq / units;
 
-  if(stopFreq > startFreq) {
-    _startFrequency = 1000*startFreq;
-    _stopFrequency = 1000*stopFreq;
+  _useCenterFrequencyFlag = useCenterFrequencyFlag;
 
-    setAxisScale(QwtPlot::xBottom, _startFrequency, _stopFrequency);
+  if(_useCenterFrequencyFlag){
+    startFreq = (startFreq + centerFreq);
+    stopFreq = (stopFreq + centerFreq);
+  }
 
-    if((axisScaleDraw(QwtPlot::xBottom) != NULL) && (_zoomer != NULL)){
-      WaterfallFreqDisplayScaleDraw* freqScale = ((WaterfallFreqDisplayScaleDraw*)axisScaleDraw(QwtPlot::xBottom));
-      freqScale->SetCenterFrequency(centerFreq);
-      ((WaterfallZoomer*)_zoomer)->SetCenterFrequency(centerFreq);
+  bool reset = false;
+  if((startFreq != _startFrequency) || (stopFreq != _stopFrequency))
+    reset = true;
 
-      freqScale->SetFrequencyPrecision( 2 );
-      ((WaterfallZoomer*)_zoomer)->SetFrequencyPrecision( 2 );
+  if(stopFreq > startFreq) {
+    _startFrequency = startFreq;
+    _stopFrequency = stopFreq;
+    if((axisScaleDraw(QwtPlot::xBottom) != NULL) && (_zoomer != NULL)){
+      double display_units = ceil(log10(units)/2.0);
+      setAxisScaleDraw(QwtPlot::xBottom, new WaterfallFreqDisplayScaleDraw(display_units));
       setAxisTitle(QwtPlot::xBottom, QString("Frequency (%1)").arg(strunits.c_str()));
-    }
 
-    Reset();
+      if(reset) {
+       Reset();
+      }
 
-    // Only replot if screen is visible
-    if(isVisible()){
-      replot();
+      ((WaterfallZoomer*)_zoomer)->SetFrequencyPrecision(display_units);
+      ((WaterfallZoomer*)_zoomer)->SetUnitType(strunits);
     }
   }
 }
@@ -350,50 +365,46 @@ WaterfallDisplayPlot::GetStopFrequency() const
 
 void
 WaterfallDisplayPlot::PlotNewData(const double* dataPoints, 
-                                      const int64_t numDataPoints,
-                                      const double timePerFFT,
-                                      const timespec timestamp,
-                                      const int droppedFrames)
+                                 const int64_t numDataPoints,
+                                 const double timePerFFT,
+                                 const timespec timestamp,
+                                 const int droppedFrames)
 {
   if(numDataPoints > 0){
     if(numDataPoints != _numPoints){
       _numPoints = numDataPoints;
-
+      
       Reset();
-
+      
       d_spectrogram->invalidateCache();
       d_spectrogram->itemChanged();
-
+      
       if(isVisible()){
        replot();
       }
-
+      
       _lastReplot = get_highres_clock();
     }
 
-    _waterfallData->addFFTData(dataPoints, numDataPoints, droppedFrames);
-    _waterfallData->IncrementNumLinesToUpdate();
-
-    QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft);
-    timeScale->SetSecondsPerLine(timePerFFT);
-    timeScale->SetZeroTime(timestamp);
-
-    ((WaterfallZoomer*)_zoomer)->SetSecondsPerLine(timePerFFT);
-    ((WaterfallZoomer*)_zoomer)->SetZeroTime(timestamp);
-  }
-
-  // Allow at least a 50% duty cycle
-  if(diff_timespec(get_highres_clock(), _lastReplot) > _displayIntervalTime){
-
-    d_spectrogram->invalidateCache();
-    d_spectrogram->itemChanged();
-
-    // Only update when window is visible
-    if(isVisible()){
+    if(diff_timespec(get_highres_clock(), _lastReplot) > timePerFFT) {
+      //FIXME: We may want to average the data between these updates to smooth display
+      _waterfallData->addFFTData(dataPoints, numDataPoints, droppedFrames);
+      _waterfallData->IncrementNumLinesToUpdate();
+      
+      QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft);
+      timeScale->SetSecondsPerLine(timePerFFT);
+      timeScale->SetZeroTime(timestamp);
+      
+      ((WaterfallZoomer*)_zoomer)->SetSecondsPerLine(timePerFFT);
+      ((WaterfallZoomer*)_zoomer)->SetZeroTime(timestamp);
+      
+      d_spectrogram->invalidateCache();
+      d_spectrogram->itemChanged();
+      
       replot();
-    }
 
-    _lastReplot = get_highres_clock();
+      _lastReplot = get_highres_clock();
+    }
   }
 }
 
@@ -412,8 +423,6 @@ WaterfallDisplayPlot::SetIntensityRange(const double minIntensity,
 void
 WaterfallDisplayPlot::replot()
 {
-  const timespec startTime = get_highres_clock();
-
   QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft);
   timeScale->initiateUpdate();
 
@@ -435,14 +444,6 @@ WaterfallDisplayPlot::replot()
   }
 
   QwtPlot::replot();
-
-  double differenceTime = (diff_timespec(get_highres_clock(), startTime));
-  
-  // Require at least a 5% duty cycle
-  differenceTime *= 19.0;
-  if(differenceTime > (1.0/5.0)){
-    _displayIntervalTime = differenceTime;
-  }
 }
 
 void
index bb87fb09f4944fbcd7474db0b4b798eb9e10e89e..a5ccaec401c1c961f880bfcd1193aef522800794 100644 (file)
@@ -69,9 +69,9 @@ private:
 
   timespec _lastReplot;
 
-  int64_t _numPoints;
+  bool _useCenterFrequencyFlag;
 
-  double _displayIntervalTime;
+  int64_t _numPoints;
 
   int _intensityColorMapType;
   QColor _userDefinedLowIntensityColor;
index 7340141a697b599f78f866f6153ac7a18a0618c4..a148cf50119343ad52b6ecbfa273890900cd01cc 100644 (file)
@@ -88,7 +88,7 @@ qtgui_sink_c::qtgui_sink_c (int fftsize, int wintype,
 
 qtgui_sink_c::~qtgui_sink_c()
 {
-  delete d_object;
+  delete d_main_gui;
   delete [] d_residbuf;
   delete d_fft;
 }
@@ -145,6 +145,9 @@ qtgui_sink_c::initialize(const bool opengl)
                                 d_plotconst,
                                 opengl);
 
+  // initialize update time to 10 times a second
+  set_update_time(0.1);
+
   d_object = new qtgui_obj(d_qApplication);
   qApp->postEvent(d_object, new qtgui_event(&d_pmutex));
 }
@@ -207,6 +210,13 @@ qtgui_sink_c::set_frequency_axis(double min, double max)
   d_main_gui->SetFrequencyAxis(min, max);
 }
 
+void
+qtgui_sink_c::set_update_time(double t)
+{
+  d_update_time = t;
+  d_main_gui->SetUpdateTime(d_update_time);
+}
+
 void
 qtgui_sink_c::fft(const gr_complex *data_in, int size)
 {
@@ -300,7 +310,7 @@ qtgui_sink_c::general_work (int noutput_items,
       
       d_main_gui->UpdateWindow(true, d_fft->get_outbuf(), d_fftsize,
                               NULL, 0, (float*)d_residbuf, d_fftsize,
-                              1.0/4.0, currentTime, true);
+                              currentTime, true);
     }
     // Otherwise, copy what we received into the residbuf for next time
     else {
index 91c6b03e61e146816b642b0f8596695a0a20b9d9..1f6c284738981bf6abe8225d8c7984d6ecd28dcc 100644 (file)
@@ -86,6 +86,8 @@ private:
 
   bool d_plotfreq, d_plotwaterfall, d_plotwaterfall3d, d_plottime, d_plotconst;
   
+  double d_update_time;
+
   QWidget *d_parent;
   SpectrumGUIClass *d_main_gui;
 
@@ -111,6 +113,8 @@ public:
   void set_constellation_pen_size(int size);
   void set_frequency_axis(double min, double max);
 
+  void set_update_time(double t);
+
   QApplication *d_qApplication;
   qtgui_obj *d_object;
 
index 6fbb2f381ce26e251320602f42ab91f41bddeb83..8eb0a0347ff65f07552e9251df9e05257d138975 100644 (file)
@@ -88,7 +88,7 @@ qtgui_sink_f::qtgui_sink_f (int fftsize, int wintype,
 
 qtgui_sink_f::~qtgui_sink_f()
 {
-  delete d_object;
+  delete d_main_gui;
   delete [] d_residbuf;
   delete d_fft;
 }
@@ -140,6 +140,9 @@ qtgui_sink_f::initialize(const bool opengl)
                                 d_plotconst,
                                 opengl);
 
+  // initialize update time to 10 times a second
+  set_update_time(0.1);
+
   d_object = new qtgui_obj(d_qApplication);
   qApp->postEvent(d_object, new qtgui_event(&d_pmutex));
 }
@@ -201,6 +204,13 @@ qtgui_sink_f::set_frequency_axis(double min, double max)
   d_main_gui->SetFrequencyAxis(min, max);
 }
 
+void
+qtgui_sink_f::set_update_time(double t)
+{
+  d_update_time = t;
+  d_main_gui->SetUpdateTime(d_update_time);
+}
+
 void
 qtgui_sink_f::fft(const float *data_in, int size)
 {
@@ -295,7 +305,7 @@ qtgui_sink_f::general_work (int noutput_items,
       
       d_main_gui->UpdateWindow(true, d_fft->get_outbuf(), d_fftsize,
                               (float*)d_residbuf, d_fftsize, NULL, 0,
-                              1.0/4.0, currentTime, true);
+                              currentTime, true);
     }
     // Otherwise, copy what we received into the residbuf for next time
     else {
index 47c928d17ce55e0ab508b506ff26471c8c6bc8ee..f603da7b6ac990f2e0b4756b9ca9d22653d3367f 100644 (file)
@@ -84,6 +84,8 @@ private:
 
   bool d_plotfreq, d_plotwaterfall, d_plotwaterfall3d, d_plottime, d_plotconst;
 
+  double d_update_time;
+
   QWidget *d_parent;
   SpectrumGUIClass *d_main_gui; 
 
@@ -109,6 +111,8 @@ public:
   void set_constellation_pen_size(int size);
   void set_frequency_axis(double min, double max);
 
+  void set_update_time(double t);
+
   QApplication *d_qApplication;
   qtgui_obj *d_object;
 
index 2da37d350e7db7ca8d475c8617ad5bbe3b2103ac..53a205fb78b1da79c8e865262b064ca5cc4f96c5 100644 (file)
@@ -8,7 +8,6 @@ SpectrumUpdateEvent::SpectrumUpdateEvent(const std::complex<float>* fftPoints,
                                         const double* realTimeDomainPoints,
                                         const double* imagTimeDomainPoints,
                                         const uint64_t numTimeDomainDataPoints,
-                                        const double timePerFFT,
                                         const timespec dataTimestamp,
                                         const bool repeatDataFlag,
                                         const bool lastOfMultipleUpdateFlag,
@@ -16,15 +15,19 @@ SpectrumUpdateEvent::SpectrumUpdateEvent(const std::complex<float>* fftPoints,
                                         const int droppedFFTFrames)
   : QEvent(QEvent::Type(10005))
 {
-  _numFFTDataPoints = numFFTDataPoints;
-  if(_numFFTDataPoints < 1){
+  if(numFFTDataPoints < 1) {
     _numFFTDataPoints = 1;
   }
+  else {
+    _numFFTDataPoints = numFFTDataPoints;
+  }
 
-  _numTimeDomainDataPoints = numTimeDomainDataPoints;
-  if(_numTimeDomainDataPoints < 1){
+  if(numTimeDomainDataPoints < 1) {
     _numTimeDomainDataPoints = 1;
   }
+  else {
+    _numTimeDomainDataPoints = numTimeDomainDataPoints;
+  }
 
   _fftPoints = new std::complex<float>[_numFFTDataPoints];
   _fftPoints[0] = std::complex<float>(0,0);
@@ -32,26 +35,26 @@ SpectrumUpdateEvent::SpectrumUpdateEvent(const std::complex<float>* fftPoints,
 
   _realDataTimeDomainPoints = new double[_numTimeDomainDataPoints];
   memset(_realDataTimeDomainPoints, 0x0, _numTimeDomainDataPoints*sizeof(double));
-  if(numTimeDomainDataPoints > 0){
+  if(numTimeDomainDataPoints > 0) {
     memcpy(_realDataTimeDomainPoints, realTimeDomainPoints,
           numTimeDomainDataPoints*sizeof(double));
   }
 
   _imagDataTimeDomainPoints = new double[_numTimeDomainDataPoints];
   memset(_imagDataTimeDomainPoints, 0x0, _numTimeDomainDataPoints*sizeof(double));
-  if(numTimeDomainDataPoints > 0){
+  if(numTimeDomainDataPoints > 0) {
     memcpy(_imagDataTimeDomainPoints, imagTimeDomainPoints,
           numTimeDomainDataPoints*sizeof(double));
   }
   _dataTimestamp = dataTimestamp;
-  _timePerFFT = timePerFFT;
   _repeatDataFlag = repeatDataFlag;
   _lastOfMultipleUpdateFlag = lastOfMultipleUpdateFlag;
   _eventGeneratedTimestamp = generatedTimestamp;
   _droppedFFTFrames = droppedFFTFrames;
 }
 
-SpectrumUpdateEvent::~SpectrumUpdateEvent(){
+SpectrumUpdateEvent::~SpectrumUpdateEvent()
+{
   delete[] _fftPoints;
   delete[] _realDataTimeDomainPoints;
   delete[] _imagDataTimeDomainPoints;
@@ -87,12 +90,6 @@ SpectrumUpdateEvent::getNumTimeDomainDataPoints() const
   return _numTimeDomainDataPoints;
 }
 
-double
-SpectrumUpdateEvent::getTimePerFFT() const
-{
-  return _timePerFFT;
-}
-
 timespec
 SpectrumUpdateEvent::getDataTimestamp() const
 {
index 75fa273243a62fcde60f674011dbeda64d46cda7..ccc072c3e3387e43243d3066e08ac819d638be31 100644 (file)
 class SpectrumUpdateEvent:public QEvent{
 
 public:
-  SpectrumUpdateEvent(const std::complex<float>* fftPoints, const uint64_t numFFTDataPoints, const double* realTimeDomainPoints, const double* imagTimeDomainPoints, const uint64_t numTimeDomainDataPoints, const double timePerFFT, const timespec dataTimestamp, const bool repeatDataFlag, const bool lastOfMultipleUpdateFlag, const timespec generatedTimestamp, const int droppedFFTFrames);
+  SpectrumUpdateEvent(const std::complex<float>* fftPoints,
+                     const uint64_t numFFTDataPoints,
+                     const double* realTimeDomainPoints,
+                     const double* imagTimeDomainPoints,
+                     const uint64_t numTimeDomainDataPoints,
+                     const timespec dataTimestamp,
+                     const bool repeatDataFlag,
+                     const bool lastOfMultipleUpdateFlag,
+                     const timespec generatedTimestamp,
+                     const int droppedFFTFrames);
+
   ~SpectrumUpdateEvent();
-  const std::complex<float>* getFFTPoints()const;
-  const double* getRealTimeDomainPoints()const;
-  const double* getImagTimeDomainPoints()const;
-  uint64_t getNumFFTDataPoints()const;
-  uint64_t getNumTimeDomainDataPoints()const;
-  double getTimePerFFT()const;
-  timespec getDataTimestamp()const;
-  bool getRepeatDataFlag()const;
-  bool getLastOfMultipleUpdateFlag()const;
-  timespec getEventGeneratedTimestamp()const;
-  int getDroppedFFTFrames()const;
+
+  const std::complex<float>* getFFTPoints() const;
+  const double* getRealTimeDomainPoints() const;
+  const double* getImagTimeDomainPoints() const;
+  uint64_t getNumFFTDataPoints() const;
+  uint64_t getNumTimeDomainDataPoints() const;
+  timespec getDataTimestamp() const;
+  bool getRepeatDataFlag() const;
+  bool getLastOfMultipleUpdateFlag() const;
+  timespec getEventGeneratedTimestamp() const;
+  int getDroppedFFTFrames() const;
 
 protected:
 
@@ -32,7 +42,6 @@ private:
   double* _imagDataTimeDomainPoints;
   uint64_t _numFFTDataPoints;
   uint64_t _numTimeDomainDataPoints;
-  double _timePerFFT;
   timespec _dataTimestamp;
   bool _repeatDataFlag;
   bool _lastOfMultipleUpdateFlag;
index b2729219382d10b6462da1be71afb5a0737fbb47..f52a63d1f0a85c0ff555a8036b19fd0530e90567 100644 (file)
Binary files a/gr-qtgui/src/lib/spectrumdisplayform.cc and b/gr-qtgui/src/lib/spectrumdisplayform.cc differ
index d89141f1ed096132b231a9cffc5f13a91c43a483..bf2af703354439780aaa8f426b1eb22b6108a9cf 100644 (file)
@@ -13,6 +13,7 @@ class SpectrumGUIClass;
 #include <TimeDomainDisplayPlot.h>
 #include <ConstellationDisplayPlot.h>
 #include <QValidator>
+#include <QTimer>
 #include <vector>
 
 class SpectrumDisplayForm : public QWidget, public Ui::SpectrumDisplayForm
@@ -43,7 +44,6 @@ public slots:
   void MaxHoldResetBtn_clicked();
   void TabChanged(int index);
 
-  void PowerLineEdit_textChanged( const QString& valueString );
   void SetFrequencyRange( const double newCenterFrequency,
                          const double newStartFrequency,
                          const double newStopFrequency );
@@ -71,9 +71,11 @@ public slots:
                            double ymin, double ymax);
   void SetConstellationPenSize(int size);
   void SetFrequencyAxis(double min, double max);
+  void SetUpdateTime(double t);
 
 private slots:
   void newFrequencyData( const SpectrumUpdateEvent* );
+  void UpdateGuiTimer();
 
 protected:
 
@@ -111,6 +113,9 @@ private:
   int d_plot_waterfall3d;
   int d_plot_time;
   int d_plot_constellation;
+
+  QTimer *displayTimer;
+  double d_update_time;
 };
 
 #endif /* SPECTRUM_DISPLAY_FORM_H */
index cb7b4f996771a566adf621842874559823b5b160..0e652d8337d78b90a31f95c1c777a63df9455367 100644 (file)
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>657</width>
+    <width>712</width>
     <height>543</height>
    </rect>
   </property>
            <property name="minimumSize">
             <size>
              <width>400</width>
-             <height>332</height>
+             <height>350</height>
             </size>
            </property>
            <property name="sizeIncrement">
              </property>
             </widget>
            </item>
-           <item row="1" column="3">
-            <widget class="QLabel" name="PowerLabel">
-             <property name="minimumSize">
-              <size>
-               <width>50</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>50</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>Power</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-             <property name="wordWrap">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
            <item row="1" column="1">
             <widget class="QPushButton" name="MaxHoldResetBtn">
              <property name="sizePolicy">
              </property>
             </widget>
            </item>
-           <item row="1" column="4">
+           <item row="1" column="3">
             <widget class="QLabel" name="AvgLabel">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
              </property>
             </widget>
            </item>
-           <item row="2" column="4">
-            <widget class="QSpinBox" name="AvgLineEdit"/>
-           </item>
            <item row="2" column="3">
-            <widget class="QLineEdit" name="PowerLineEdit">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>50</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>50</width>
-               <height>16777215</height>
-              </size>
-             </property>
-             <property name="text">
-              <string>1</string>
-             </property>
-            </widget>
+            <widget class="QSpinBox" name="AvgLineEdit"/>
            </item>
            <item row="1" column="2">
             <spacer name="horizontalSpacer_2">
     </hint>
    </hints>
   </connection>
-  <connection>
-   <sender>PowerLineEdit</sender>
-   <signal>textChanged(QString)</signal>
-   <receiver>SpectrumDisplayForm</receiver>
-   <slot>PowerLineEdit_textChanged(QString)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>482</x>
-     <y>344</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-   </hints>
-  </connection>
   <connection>
    <sender>WindowComboBox</sender>
    <signal>activated(int)</signal>
index 4fa8cdd92510cc9451136329bed9d914c4659ab6..7c0cfc6983d89f6ead8de1219a6a7bb70aef8d8e 100755 (executable)
@@ -131,9 +131,9 @@ class my_top_block(gr.top_block):
 
         # Wrap the pointer as a PyQt SIP object
         # This can now be manipulated as a PyQt4.QtGui.QWidget
-        pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
+        self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
 
-        self.main_box = dialog_box(pyWin, self.ctrl_win)
+        self.main_box = dialog_box(self.pyWin, self.ctrl_win)
 
         self.main_box.show()
         
index 46fe07e0d89cf5f934a46f6587e648b32ace09fb..4e36ccca5ff19ed728f323da5f7c10dca6a1eb0e 100755 (executable)
@@ -130,9 +130,9 @@ class my_top_block(gr.top_block):
 
         # Wrap the pointer as a PyQt SIP object
         # This can now be manipulated as a PyQt4.QtGui.QWidget
-        pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
+        self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
 
-        self.main_box = dialog_box(pyWin, self.ctrl_win)
+        self.main_box = dialog_box(self.pyWin, self.ctrl_win)
 
         self.main_box.show()
         
index ceb492c8d072a57db6264562d5621efbd4d1a26e..679f144eff7c6857e39efc475aaf999894e36a5c 100755 (executable)
@@ -139,7 +139,7 @@ class my_top_block(gr.top_block):
 
         self.qapp = QtGui.QApplication(sys.argv)
 
-        self._sample_rate = 200e3
+        self._sample_rate = 2000e3
 
         self.sps = 2
         self.excess_bw = 0.35
@@ -182,11 +182,13 @@ class my_top_block(gr.top_block):
         self.to = 1.0
         self.channel = gr.channel_model(noise, self.fo, self.to)
 
-        self.thr = gr.throttle(gr.sizeof_char, 10*fftsize)
-        self.snk_tx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS, 0, 1,
+        self.thr = gr.throttle(gr.sizeof_char, self._sample_rate)
+        self.snk_tx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS, 
+                                   0, self._sample_rate*self.sps,
                                    "Tx", True, True, False, True, True)
 
-        self.snk_rx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS, 0, 1,
+        self.snk_rx = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS,
+                                   0, self._sample_rate,
                                    "Rx", True, True, False, True, True)
 
         self.connect(self.src, self.thr, self.mod, self.channel, self.snk_tx)
index 9e4c57a8922aa8a87dd528426f07a6bc9d433d77..50dd53a923e3d46cd5ec8704d62eb2a52432d826 100644 (file)
@@ -2,8 +2,8 @@
 
 # Form implementation generated from reading ui file 'qt_digital_window.ui'
 #
-# Created: Thu Jun 18 07:57:58 2009
-#      by: PyQt4 UI code generator 4.4.3
+# Created: Sat May  1 20:14:02 2010
+#      by: PyQt4 UI code generator 4.6.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -12,73 +12,118 @@ from PyQt4 import QtCore, QtGui
 class Ui_DigitalWindow(object):
     def setupUi(self, DigitalWindow):
         DigitalWindow.setObjectName("DigitalWindow")
-        DigitalWindow.resize(1236, 739)
+        DigitalWindow.resize(1236, 741)
         self.centralwidget = QtGui.QWidget(DigitalWindow)
         self.centralwidget.setObjectName("centralwidget")
-        self.closeButton = QtGui.QPushButton(self.centralwidget)
-        self.closeButton.setGeometry(QtCore.QRect(1120, 650, 101, 31))
-        self.closeButton.setObjectName("closeButton")
+        self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
+        self.verticalLayout.setObjectName("verticalLayout")
         self.sinkFrame = QtGui.QFrame(self.centralwidget)
-        self.sinkFrame.setGeometry(QtCore.QRect(10, 10, 1221, 501))
+        self.sinkFrame.setMinimumSize(QtCore.QSize(0, 550))
         self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
         self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
         self.sinkFrame.setObjectName("sinkFrame")
-        self.horizontalLayoutWidget = QtGui.QWidget(self.sinkFrame)
-        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 1201, 481))
-        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
-        self.sinkLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
+        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.sinkFrame)
+        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+        self.sinkLayout = QtGui.QHBoxLayout()
         self.sinkLayout.setObjectName("sinkLayout")
-        self.channelModeBox = QtGui.QGroupBox(self.centralwidget)
-        self.channelModeBox.setGeometry(QtCore.QRect(290, 520, 291, 161))
-        self.channelModeBox.setObjectName("channelModeBox")
-        self.timeLabel = QtGui.QLabel(self.channelModeBox)
-        self.timeLabel.setGeometry(QtCore.QRect(10, 90, 101, 17))
-        self.timeLabel.setObjectName("timeLabel")
-        self.timeEdit = QtGui.QLineEdit(self.channelModeBox)
-        self.timeEdit.setGeometry(QtCore.QRect(160, 90, 113, 23))
-        self.timeEdit.setObjectName("timeEdit")
-        self.snrEdit = QtGui.QLineEdit(self.channelModeBox)
-        self.snrEdit.setGeometry(QtCore.QRect(160, 30, 113, 23))
-        self.snrEdit.setObjectName("snrEdit")
-        self.snrLabel = QtGui.QLabel(self.channelModeBox)
-        self.snrLabel.setGeometry(QtCore.QRect(10, 30, 111, 20))
-        self.snrLabel.setObjectName("snrLabel")
-        self.freqEdit = QtGui.QLineEdit(self.channelModeBox)
-        self.freqEdit.setGeometry(QtCore.QRect(160, 60, 113, 23))
-        self.freqEdit.setObjectName("freqEdit")
-        self.freqLabel = QtGui.QLabel(self.channelModeBox)
-        self.freqLabel.setGeometry(QtCore.QRect(10, 60, 141, 17))
-        self.freqLabel.setObjectName("freqLabel")
-        self.rxBox = QtGui.QGroupBox(self.centralwidget)
-        self.rxBox.setGeometry(QtCore.QRect(590, 520, 251, 161))
-        self.rxBox.setObjectName("rxBox")
-        self.gainMuEdit = QtGui.QLineEdit(self.rxBox)
-        self.gainMuEdit.setGeometry(QtCore.QRect(120, 30, 113, 23))
-        self.gainMuEdit.setObjectName("gainMuEdit")
-        self.gainMuLabel = QtGui.QLabel(self.rxBox)
-        self.gainMuLabel.setGeometry(QtCore.QRect(10, 30, 111, 20))
-        self.gainMuLabel.setObjectName("gainMuLabel")
-        self.alphaEdit = QtGui.QLineEdit(self.rxBox)
-        self.alphaEdit.setGeometry(QtCore.QRect(120, 60, 113, 23))
-        self.alphaEdit.setObjectName("alphaEdit")
-        self.alphaLabel = QtGui.QLabel(self.rxBox)
-        self.alphaLabel.setGeometry(QtCore.QRect(10, 60, 111, 20))
-        self.alphaLabel.setObjectName("alphaLabel")
+        self.horizontalLayout_2.addLayout(self.sinkLayout)
+        self.verticalLayout.addWidget(self.sinkFrame)
+        self.horizontalLayout = QtGui.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
         self.sysBox = QtGui.QGroupBox(self.centralwidget)
-        self.sysBox.setGeometry(QtCore.QRect(20, 520, 261, 161))
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
+        self.sysBox.setSizePolicy(sizePolicy)
+        self.sysBox.setMinimumSize(QtCore.QSize(0, 0))
+        self.sysBox.setMaximumSize(QtCore.QSize(16777215, 120))
+        self.sysBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
         self.sysBox.setObjectName("sysBox")
+        self.gridLayout_2 = QtGui.QGridLayout(self.sysBox)
+        self.gridLayout_2.setObjectName("gridLayout_2")
         self.sampleRateEdit = QtGui.QLineEdit(self.sysBox)
-        self.sampleRateEdit.setGeometry(QtCore.QRect(140, 30, 113, 23))
+        self.sampleRateEdit.setMaximumSize(QtCore.QSize(100, 16777215))
         self.sampleRateEdit.setObjectName("sampleRateEdit")
+        self.gridLayout_2.addWidget(self.sampleRateEdit, 0, 3, 1, 1)
         self.sampleRateLabel = QtGui.QLabel(self.sysBox)
-        self.sampleRateLabel.setGeometry(QtCore.QRect(10, 30, 121, 20))
         self.sampleRateLabel.setObjectName("sampleRateLabel")
+        self.gridLayout_2.addWidget(self.sampleRateLabel, 0, 2, 1, 1)
+        self.horizontalLayout.addWidget(self.sysBox)
+        self.rxBox = QtGui.QGroupBox(self.centralwidget)
+        self.rxBox.setMaximumSize(QtCore.QSize(16777215, 120))
+        self.rxBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+        self.rxBox.setObjectName("rxBox")
+        self.gridLayout_3 = QtGui.QGridLayout(self.rxBox)
+        self.gridLayout_3.setObjectName("gridLayout_3")
+        self.alphaLabel = QtGui.QLabel(self.rxBox)
+        self.alphaLabel.setObjectName("alphaLabel")
+        self.gridLayout_3.addWidget(self.alphaLabel, 1, 0, 1, 1)
+        self.alphaEdit = QtGui.QLineEdit(self.rxBox)
+        self.alphaEdit.setMaximumSize(QtCore.QSize(100, 16777215))
+        self.alphaEdit.setObjectName("alphaEdit")
+        self.gridLayout_3.addWidget(self.alphaEdit, 1, 1, 1, 1)
+        self.gainMuLabel = QtGui.QLabel(self.rxBox)
+        self.gainMuLabel.setObjectName("gainMuLabel")
+        self.gridLayout_3.addWidget(self.gainMuLabel, 0, 0, 1, 1)
+        self.gainMuEdit = QtGui.QLineEdit(self.rxBox)
+        self.gainMuEdit.setMaximumSize(QtCore.QSize(100, 16777215))
+        self.gainMuEdit.setObjectName("gainMuEdit")
+        self.gridLayout_3.addWidget(self.gainMuEdit, 0, 1, 1, 1)
+        self.horizontalLayout.addWidget(self.rxBox)
+        self.channelModeBox = QtGui.QGroupBox(self.centralwidget)
+        self.channelModeBox.setMaximumSize(QtCore.QSize(16777215, 120))
+        self.channelModeBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+        self.channelModeBox.setObjectName("channelModeBox")
+        self.gridLayout = QtGui.QGridLayout(self.channelModeBox)
+        self.gridLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize)
+        self.gridLayout.setObjectName("gridLayout")
+        self.snrLabel = QtGui.QLabel(self.channelModeBox)
+        self.snrLabel.setObjectName("snrLabel")
+        self.gridLayout.addWidget(self.snrLabel, 0, 1, 1, 1)
+        self.snrEdit = QtGui.QLineEdit(self.channelModeBox)
+        self.snrEdit.setMaximumSize(QtCore.QSize(100, 16777215))
+        self.snrEdit.setObjectName("snrEdit")
+        self.gridLayout.addWidget(self.snrEdit, 0, 2, 1, 1)
+        self.freqLabel = QtGui.QLabel(self.channelModeBox)
+        self.freqLabel.setObjectName("freqLabel")
+        self.gridLayout.addWidget(self.freqLabel, 1, 1, 1, 1)
+        self.freqEdit = QtGui.QLineEdit(self.channelModeBox)
+        self.freqEdit.setMaximumSize(QtCore.QSize(100, 16777215))
+        self.freqEdit.setObjectName("freqEdit")
+        self.gridLayout.addWidget(self.freqEdit, 1, 2, 1, 1)
+        self.timeLabel = QtGui.QLabel(self.channelModeBox)
+        self.timeLabel.setObjectName("timeLabel")
+        self.gridLayout.addWidget(self.timeLabel, 2, 1, 1, 1)
+        self.timeEdit = QtGui.QLineEdit(self.channelModeBox)
+        self.timeEdit.setMaximumSize(QtCore.QSize(100, 16777215))
+        self.timeEdit.setObjectName("timeEdit")
+        self.gridLayout.addWidget(self.timeEdit, 2, 2, 1, 1)
+        self.horizontalLayout.addWidget(self.channelModeBox)
+        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout.addItem(spacerItem)
+        self.verticalLayout_2 = QtGui.QVBoxLayout()
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_2.addItem(spacerItem1)
         self.pauseButton = QtGui.QPushButton(self.centralwidget)
-        self.pauseButton.setGeometry(QtCore.QRect(1120, 520, 101, 31))
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.pauseButton.sizePolicy().hasHeightForWidth())
+        self.pauseButton.setSizePolicy(sizePolicy)
+        self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
         self.pauseButton.setObjectName("pauseButton")
+        self.verticalLayout_2.addWidget(self.pauseButton)
+        self.closeButton = QtGui.QPushButton(self.centralwidget)
+        self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
+        self.closeButton.setObjectName("closeButton")
+        self.verticalLayout_2.addWidget(self.closeButton)
+        self.horizontalLayout.addLayout(self.verticalLayout_2)
+        self.verticalLayout.addLayout(self.horizontalLayout)
         DigitalWindow.setCentralWidget(self.centralwidget)
         self.menubar = QtGui.QMenuBar(DigitalWindow)
-        self.menubar.setGeometry(QtCore.QRect(0, 0, 1236, 25))
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 1236, 23))
         self.menubar.setObjectName("menubar")
         self.menuFile = QtGui.QMenu(self.menubar)
         self.menuFile.setObjectName("menuFile")
@@ -95,23 +140,22 @@ class Ui_DigitalWindow(object):
         QtCore.QObject.connect(self.closeButton, QtCore.SIGNAL("clicked()"), DigitalWindow.close)
         QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL("triggered()"), DigitalWindow.close)
         QtCore.QMetaObject.connectSlotsByName(DigitalWindow)
-        DigitalWindow.setTabOrder(self.closeButton, self.snrEdit)
         DigitalWindow.setTabOrder(self.snrEdit, self.freqEdit)
         DigitalWindow.setTabOrder(self.freqEdit, self.timeEdit)
 
     def retranslateUi(self, DigitalWindow):
         DigitalWindow.setWindowTitle(QtGui.QApplication.translate("DigitalWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
-        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
+        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
+        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
+        self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
+        self.alphaLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Alpha", None, QtGui.QApplication.UnicodeUTF8))
+        self.gainMuLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Gain mu", None, QtGui.QApplication.UnicodeUTF8))
         self.channelModeBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Channel Model Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.timeLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Timing Offset", None, QtGui.QApplication.UnicodeUTF8))
         self.snrLabel.setText(QtGui.QApplication.translate("DigitalWindow", "SNR (dB)", None, QtGui.QApplication.UnicodeUTF8))
         self.freqLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Frequency Offset (Hz)", None, QtGui.QApplication.UnicodeUTF8))
-        self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.gainMuLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Gain mu", None, QtGui.QApplication.UnicodeUTF8))
-        self.alphaLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Alpha", None, QtGui.QApplication.UnicodeUTF8))
-        self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
-        self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
+        self.timeLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Timing Offset", None, QtGui.QApplication.UnicodeUTF8))
         self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
+        self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
         self.menuFile.setTitle(QtGui.QApplication.translate("DigitalWindow", "&File", None, QtGui.QApplication.UnicodeUTF8))
         self.actionExit.setText(QtGui.QApplication.translate("DigitalWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8))
 
index 79ba0128657dfee5da3338fc5b509d35fbf94118..96725218150e8834180626491d07a6a00491c49c 100644 (file)
     <x>0</x>
     <y>0</y>
     <width>1236</width>
-    <height>739</height>
+    <height>741</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
   <widget class="QWidget" name="centralwidget">
-   <widget class="QPushButton" name="closeButton">
-    <property name="geometry">
-     <rect>
-      <x>1120</x>
-      <y>650</y>
-      <width>101</width>
-      <height>31</height>
-     </rect>
-    </property>
-    <property name="text">
-     <string>Close</string>
-    </property>
-   </widget>
-   <widget class="QFrame" name="sinkFrame">
-    <property name="geometry">
-     <rect>
-      <x>10</x>
-      <y>10</y>
-      <width>1221</width>
-      <height>501</height>
-     </rect>
-    </property>
-    <property name="frameShape">
-     <enum>QFrame::StyledPanel</enum>
-    </property>
-    <property name="frameShadow">
-     <enum>QFrame::Raised</enum>
-    </property>
-    <widget class="QWidget" name="horizontalLayoutWidget">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>10</y>
-       <width>1201</width>
-       <height>481</height>
-      </rect>
-     </property>
-     <layout class="QHBoxLayout" name="sinkLayout"/>
-    </widget>
-   </widget>
-   <widget class="QGroupBox" name="channelModeBox">
-    <property name="geometry">
-     <rect>
-      <x>290</x>
-      <y>520</y>
-      <width>291</width>
-      <height>161</height>
-     </rect>
-    </property>
-    <property name="title">
-     <string>Channel Model Parameters</string>
-    </property>
-    <widget class="QLabel" name="timeLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>90</y>
-       <width>101</width>
-       <height>17</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>Timing Offset</string>
-     </property>
-    </widget>
-    <widget class="QLineEdit" name="timeEdit">
-     <property name="geometry">
-      <rect>
-       <x>160</x>
-       <y>90</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLineEdit" name="snrEdit">
-     <property name="geometry">
-      <rect>
-       <x>160</x>
-       <y>30</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLabel" name="snrLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>30</y>
-       <width>111</width>
-       <height>20</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>SNR (dB)</string>
-     </property>
-    </widget>
-    <widget class="QLineEdit" name="freqEdit">
-     <property name="geometry">
-      <rect>
-       <x>160</x>
-       <y>60</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLabel" name="freqLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>60</y>
-       <width>141</width>
-       <height>17</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>Frequency Offset (Hz)</string>
-     </property>
-    </widget>
-   </widget>
-   <widget class="QGroupBox" name="rxBox">
-    <property name="geometry">
-     <rect>
-      <x>590</x>
-      <y>520</y>
-      <width>251</width>
-      <height>161</height>
-     </rect>
-    </property>
-    <property name="title">
-     <string>Receiver Parameters</string>
-    </property>
-    <widget class="QLineEdit" name="gainMuEdit">
-     <property name="geometry">
-      <rect>
-       <x>120</x>
-       <y>30</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLabel" name="gainMuLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>30</y>
-       <width>111</width>
-       <height>20</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>Gain mu</string>
-     </property>
-    </widget>
-    <widget class="QLineEdit" name="alphaEdit">
-     <property name="geometry">
-      <rect>
-       <x>120</x>
-       <y>60</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLabel" name="alphaLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>60</y>
-       <width>111</width>
-       <height>20</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>Alpha</string>
-     </property>
-    </widget>
-   </widget>
-   <widget class="QGroupBox" name="sysBox">
-    <property name="geometry">
-     <rect>
-      <x>20</x>
-      <y>520</y>
-      <width>261</width>
-      <height>161</height>
-     </rect>
-    </property>
-    <property name="title">
-     <string>System Parameters</string>
-    </property>
-    <widget class="QLineEdit" name="sampleRateEdit">
-     <property name="geometry">
-      <rect>
-       <x>140</x>
-       <y>30</y>
-       <width>113</width>
-       <height>23</height>
-      </rect>
-     </property>
-    </widget>
-    <widget class="QLabel" name="sampleRateLabel">
-     <property name="geometry">
-      <rect>
-       <x>10</x>
-       <y>30</y>
-       <width>121</width>
-       <height>20</height>
-      </rect>
-     </property>
-     <property name="text">
-      <string>Sample Rate (sps)</string>
-     </property>
-    </widget>
-   </widget>
-   <widget class="QPushButton" name="pauseButton">
-    <property name="geometry">
-     <rect>
-      <x>1120</x>
-      <y>520</y>
-      <width>101</width>
-      <height>31</height>
-     </rect>
-    </property>
-    <property name="text">
-     <string>Pause</string>
-    </property>
-   </widget>
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QFrame" name="sinkFrame">
+      <property name="minimumSize">
+       <size>
+        <width>0</width>
+        <height>550</height>
+       </size>
+      </property>
+      <property name="frameShape">
+       <enum>QFrame::StyledPanel</enum>
+      </property>
+      <property name="frameShadow">
+       <enum>QFrame::Raised</enum>
+      </property>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <layout class="QHBoxLayout" name="sinkLayout"/>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QGroupBox" name="sysBox">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>120</height>
+         </size>
+        </property>
+        <property name="title">
+         <string>System Parameters</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_2">
+         <item row="0" column="3">
+          <widget class="QLineEdit" name="sampleRateEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="2">
+          <widget class="QLabel" name="sampleRateLabel">
+           <property name="text">
+            <string>Sample Rate (sps)</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="rxBox">
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>120</height>
+         </size>
+        </property>
+        <property name="title">
+         <string>Receiver Parameters</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_3">
+         <item row="1" column="0">
+          <widget class="QLabel" name="alphaLabel">
+           <property name="text">
+            <string>Alpha</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <widget class="QLineEdit" name="alphaEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="gainMuLabel">
+           <property name="text">
+            <string>Gain mu</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QLineEdit" name="gainMuEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="channelModeBox">
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>120</height>
+         </size>
+        </property>
+        <property name="title">
+         <string>Channel Model Parameters</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        </property>
+        <layout class="QGridLayout" name="gridLayout">
+         <property name="sizeConstraint">
+          <enum>QLayout::SetMinimumSize</enum>
+         </property>
+         <item row="0" column="1">
+          <widget class="QLabel" name="snrLabel">
+           <property name="text">
+            <string>SNR (dB)</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="2">
+          <widget class="QLineEdit" name="snrEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <widget class="QLabel" name="freqLabel">
+           <property name="text">
+            <string>Frequency Offset (Hz)</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="2">
+          <widget class="QLineEdit" name="freqEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="1">
+          <widget class="QLabel" name="timeLabel">
+           <property name="text">
+            <string>Timing Offset</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="2">
+          <widget class="QLineEdit" name="timeEdit">
+           <property name="maximumSize">
+            <size>
+             <width>100</width>
+             <height>16777215</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <spacer name="verticalSpacer">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pauseButton">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>80</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>Pause</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="closeButton">
+          <property name="maximumSize">
+           <size>
+            <width>80</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>Close</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </item>
+   </layout>
   </widget>
   <widget class="QMenuBar" name="menubar">
    <property name="geometry">
      <x>0</x>
      <y>0</y>
      <width>1236</width>
-     <height>25</height>
+     <height>23</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">
   </action>
  </widget>
  <tabstops>
-  <tabstop>closeButton</tabstop>
   <tabstop>snrEdit</tabstop>
   <tabstop>freqEdit</tabstop>
   <tabstop>timeEdit</tabstop>
index 46ebfe94ab0c69927d3138febef71f085ed4d2fb..75d374c2bd393ea970e7e7189da69279935a2498 100755 (executable)
@@ -171,9 +171,9 @@ class my_top_block(gr.top_block):
                           help="select Ethernet interface, default is eth0")
         parser.add_option("-m", "--mac-addr", type="string", default="",
                           help="select USRP by MAC address, default is auto-select")
-        parser.add_option("-W", "--bw", type="float", default=1e6,
+        parser.add_option("-W", "--bw", type="eng_float", default=1e6,
                           help="set bandwidth of receiver [default=%default]")
-        parser.add_option("-f", "--freq", type="eng_float", default=None,
+        parser.add_option("-f", "--freq", type="eng_float", default=2412e6,
                           help="set frequency to FREQ", metavar="FREQ")
         parser.add_option("-g", "--gain", type="eng_float", default=None,
                           help="set gain in dB (default is midpoint)")