Esempio n. 1
0
    def __init__(self, snkTx, snkRx, fg, parent=None):

        QtGui.QWidget.__init__(self, parent)
        self.gui = Ui_DigitalWindow()
        self.gui.setupUi(self)

        self.fg = fg

        self.set_sample_rate(self.fg.sample_rate())

        self.set_snr(self.fg.snr())
        self.set_frequency(self.fg.frequency_offset())
        self.set_time_offset(self.fg.timing_offset())

        self.set_gain_clock(self.fg.rx_gain_clock())
        self.set_gain_phase(self.fg.rx_gain_phase())
        self.set_gain_freq(self.fg.rx_gain_freq())

        # Add the qtsnk widgets to the hlayout box
        self.gui.sinkLayout.addWidget(snkTx)
        self.gui.sinkLayout.addWidget(snkRx)

        # Connect up some signals
        self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
                     self.pauseFg)

        self.connect(self.gui.sampleRateEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.sampleRateEditText)

        self.connect(self.gui.snrEdit, QtCore.SIGNAL("editingFinished()"),
                     self.snrEditText)
        self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.freqEditText)
        self.connect(self.gui.timeEdit, QtCore.SIGNAL("editingFinished()"),
                     self.timeEditText)

        self.connect(self.gui.gainClockEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.gainClockEditText)
        self.connect(self.gui.gainPhaseEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.gainPhaseEditText)
        self.connect(self.gui.gainFreqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainFreqEditText)

        # Build a timer to update the packet number and PER fields
        self.update_delay = 250  # time between updating packet rate fields
        self.pkt_timer = QtCore.QTimer(self)
        self.connect(self.pkt_timer, QtCore.SIGNAL("timeout()"),
                     self.updatePacketInfo)
        self.pkt_timer.start(self.update_delay)
    def __init__(self, snkTx, snkRx, fg, parent=None):

        QtGui.QWidget.__init__(self, parent)
        self.gui = Ui_DigitalWindow()
        self.gui.setupUi(self)

        self.fg = fg

        self.set_sample_rate(self.fg.sample_rate())

        self.set_snr(self.fg.snr())
        self.set_frequency(self.fg.frequency_offset())
        self.set_time_offset(self.fg.timing_offset())

        self.set_gain_clock(self.fg.rx_gain_clock())
        self.set_gain_phase(self.fg.rx_gain_phase())
        self.set_gain_freq(self.fg.rx_gain_freq())

        # Add the qtsnk widgets to the hlayout box
        self.gui.sinkLayout.addWidget(snkTx)
        self.gui.sinkLayout.addWidget(snkRx)


        # Connect up some signals
        self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
                     self.pauseFg)

        self.connect(self.gui.sampleRateEdit, QtCore.SIGNAL("editingFinished()"),
                     self.sampleRateEditText)

        self.connect(self.gui.snrEdit, QtCore.SIGNAL("editingFinished()"),
                     self.snrEditText)
        self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.freqEditText)
        self.connect(self.gui.timeEdit, QtCore.SIGNAL("editingFinished()"),
                     self.timeEditText)

        self.connect(self.gui.gainClockEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainClockEditText)
        self.connect(self.gui.gainPhaseEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainPhaseEditText)
        self.connect(self.gui.gainFreqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainFreqEditText)

        # Build a timer to update the packet number and PER fields
        self.update_delay = 250  # time between updating packet rate fields
        self.pkt_timer = QtCore.QTimer(self)
        self.connect(self.pkt_timer, QtCore.SIGNAL("timeout()"),
                     self.updatePacketInfo)
        self.pkt_timer.start(self.update_delay)
class dialog_box(QtGui.QMainWindow):
    def __init__(self, snkTx, snkRx, fg, parent=None):

        QtGui.QWidget.__init__(self, parent)
        self.gui = Ui_DigitalWindow()
        self.gui.setupUi(self)

        self.fg = fg

        self.set_sample_rate(self.fg.sample_rate())

        self.set_snr(self.fg.snr())
        self.set_frequency(self.fg.frequency_offset())
        self.set_time_offset(self.fg.timing_offset())

        self.set_gain_clock(self.fg.rx_gain_clock())
        self.set_gain_phase(self.fg.rx_gain_phase())
        self.set_gain_freq(self.fg.rx_gain_freq())

        # Add the qtsnk widgets to the hlayout box
        self.gui.sinkLayout.addWidget(snkTx)
        self.gui.sinkLayout.addWidget(snkRx)


        # Connect up some signals
        self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
                     self.pauseFg)

        self.connect(self.gui.sampleRateEdit, QtCore.SIGNAL("editingFinished()"),
                     self.sampleRateEditText)

        self.connect(self.gui.snrEdit, QtCore.SIGNAL("editingFinished()"),
                     self.snrEditText)
        self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.freqEditText)
        self.connect(self.gui.timeEdit, QtCore.SIGNAL("editingFinished()"),
                     self.timeEditText)

        self.connect(self.gui.gainClockEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainClockEditText)
        self.connect(self.gui.gainPhaseEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainPhaseEditText)
        self.connect(self.gui.gainFreqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainFreqEditText)

        # Build a timer to update the packet number and PER fields
        self.update_delay = 250  # time between updating packet rate fields
        self.pkt_timer = QtCore.QTimer(self)
        self.connect(self.pkt_timer, QtCore.SIGNAL("timeout()"),
                     self.updatePacketInfo)
        self.pkt_timer.start(self.update_delay)

    def pauseFg(self):
        if(self.gui.pauseButton.text() == "Pause"):
            self.fg.stop()
            self.fg.wait()
            self.gui.pauseButton.setText("Unpause")
        else:
            self.fg.start()
            self.gui.pauseButton.setText("Pause")

    # Accessor functions for Gui to manipulate system parameters
    def set_sample_rate(self, sr):
        ssr = eng_notation.num_to_str(sr)
        self.gui.sampleRateEdit.setText(QtCore.QString("%1").arg(ssr))

    def sampleRateEditText(self):
        try:
            rate = self.gui.sampleRateEdit.text().toAscii()
            srate = eng_notation.str_to_num(rate)
            #self.fg.set_sample_rate(srate)
        except RuntimeError:
            pass


    # Accessor functions for Gui to manipulate channel model
    def set_snr(self, snr):
        self.gui.snrEdit.setText(QtCore.QString("%1").arg(snr))

    def set_frequency(self, fo):
        self.gui.freqEdit.setText(QtCore.QString("%1").arg(fo))

    def set_time_offset(self, to):
        self.gui.timeEdit.setText(QtCore.QString("%1").arg(to))

    def snrEditText(self):
        try:
            snr = self.gui.snrEdit.text().toDouble()[0]
            self.fg.set_snr(snr)
        except RuntimeError:
            pass

    def freqEditText(self):
        try:
            freq = self.gui.freqEdit.text().toDouble()[0]
            self.fg.set_frequency_offset(freq)
        except RuntimeError:
            pass

    def timeEditText(self):
        try:
            to = self.gui.timeEdit.text().toDouble()[0]
            self.fg.set_timing_offset(to)
        except RuntimeError:
            pass


    # Accessor functions for Gui to manipulate receiver parameters
    def set_gain_clock(self, gain):
        self.gui.gainClockEdit.setText(QtCore.QString("%1").arg(gain))

    def set_gain_phase(self, gain_phase):
        self.gui.gainPhaseEdit.setText(QtCore.QString("%1").arg(gain_phase))

    def set_gain_freq(self, gain_freq):
        self.gui.gainFreqEdit.setText(QtCore.QString("%1").arg(gain_freq))
        

    def set_alpha_time(self, alpha):
        self.gui.alphaTimeEdit.setText(QtCore.QString("%1").arg(alpha))

    def set_beta_time(self, beta):
        self.gui.betaTimeEdit.setText(QtCore.QString("%1").arg(beta))

    def set_alpha_phase(self, alpha):
        self.gui.alphaPhaseEdit.setText(QtCore.QString("%1").arg(alpha))

    def gainPhaseEditText(self):
        try:
            gain_phase = self.gui.gainPhaseEdit.text().toDouble()[0]
            self.fg.set_rx_gain_phase(gain_phase)
        except RuntimeError:
            pass

    def gainClockEditText(self):
        try:
            gain = self.gui.gainClockEdit.text().toDouble()[0]
            self.fg.set_rx_gain_clock(gain)
        except RuntimeError:
            pass

    def gainFreqEditText(self):
        try:
            gain = self.gui.gainFreqEdit.text().toDouble()[0]
            self.fg.set_rx_gain_freq(gain)
        except RuntimeError:
            pass

    # Accessor functions for packet error reporting
    def updatePacketInfo(self):
        # Pull these globals in from the main thread
        global n_rcvd, n_right, 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(float(per), 0, 'e', 4))
Esempio n. 4
0
class dialog_box(QtGui.QMainWindow):
    def __init__(self, snkTx, snkRx, fg, parent=None):

        QtGui.QWidget.__init__(self, parent)
        self.gui = Ui_DigitalWindow()
        self.gui.setupUi(self)

        self.fg = fg

        self.set_sample_rate(self.fg.sample_rate())

        self.set_snr(self.fg.snr())
        self.set_frequency(self.fg.frequency_offset())
        self.set_time_offset(self.fg.timing_offset())

        self.set_gain_clock(self.fg.rx_gain_clock())
        self.set_gain_phase(self.fg.rx_gain_phase())
        self.set_gain_freq(self.fg.rx_gain_freq())

        # Add the qtsnk widgets to the hlayout box
        self.gui.sinkLayout.addWidget(snkTx)
        self.gui.sinkLayout.addWidget(snkRx)

        # Connect up some signals
        self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
                     self.pauseFg)

        self.connect(self.gui.sampleRateEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.sampleRateEditText)

        self.connect(self.gui.snrEdit, QtCore.SIGNAL("editingFinished()"),
                     self.snrEditText)
        self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.freqEditText)
        self.connect(self.gui.timeEdit, QtCore.SIGNAL("editingFinished()"),
                     self.timeEditText)

        self.connect(self.gui.gainClockEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.gainClockEditText)
        self.connect(self.gui.gainPhaseEdit,
                     QtCore.SIGNAL("editingFinished()"),
                     self.gainPhaseEditText)
        self.connect(self.gui.gainFreqEdit, QtCore.SIGNAL("editingFinished()"),
                     self.gainFreqEditText)

        # Build a timer to update the packet number and PER fields
        self.update_delay = 250  # time between updating packet rate fields
        self.pkt_timer = QtCore.QTimer(self)
        self.connect(self.pkt_timer, QtCore.SIGNAL("timeout()"),
                     self.updatePacketInfo)
        self.pkt_timer.start(self.update_delay)

    def pauseFg(self):
        if (self.gui.pauseButton.text() == "Pause"):
            self.fg.stop()
            self.fg.wait()
            self.gui.pauseButton.setText("Unpause")
        else:
            self.fg.start()
            self.gui.pauseButton.setText("Pause")

    # Accessor functions for Gui to manipulate system parameters
    def set_sample_rate(self, sr):
        ssr = eng_notation.num_to_str(sr)
        self.gui.sampleRateEdit.setText(QtCore.QString("%1").arg(ssr))

    def sampleRateEditText(self):
        try:
            rate = self.gui.sampleRateEdit.text().toAscii()
            srate = eng_notation.str_to_num(rate)
            #self.fg.set_sample_rate(srate)
        except RuntimeError:
            pass

    # Accessor functions for Gui to manipulate channel model
    def set_snr(self, snr):
        self.gui.snrEdit.setText(QtCore.QString("%1").arg(snr))

    def set_frequency(self, fo):
        self.gui.freqEdit.setText(QtCore.QString("%1").arg(fo))

    def set_time_offset(self, to):
        self.gui.timeEdit.setText(QtCore.QString("%1").arg(to))

    def snrEditText(self):
        try:
            snr = self.gui.snrEdit.text().toDouble()[0]
            self.fg.set_snr(snr)
        except RuntimeError:
            pass

    def freqEditText(self):
        try:
            freq = self.gui.freqEdit.text().toDouble()[0]
            self.fg.set_frequency_offset(freq)
        except RuntimeError:
            pass

    def timeEditText(self):
        try:
            to = self.gui.timeEdit.text().toDouble()[0]
            self.fg.set_timing_offset(to)
        except RuntimeError:
            pass

    # Accessor functions for Gui to manipulate receiver parameters
    def set_gain_clock(self, gain):
        self.gui.gainClockEdit.setText(QtCore.QString("%1").arg(gain))

    def set_gain_phase(self, gain_phase):
        self.gui.gainPhaseEdit.setText(QtCore.QString("%1").arg(gain_phase))

    def set_gain_freq(self, gain_freq):
        self.gui.gainFreqEdit.setText(QtCore.QString("%1").arg(gain_freq))

    def set_alpha_time(self, alpha):
        self.gui.alphaTimeEdit.setText(QtCore.QString("%1").arg(alpha))

    def set_beta_time(self, beta):
        self.gui.betaTimeEdit.setText(QtCore.QString("%1").arg(beta))

    def set_alpha_phase(self, alpha):
        self.gui.alphaPhaseEdit.setText(QtCore.QString("%1").arg(alpha))

    def gainPhaseEditText(self):
        try:
            gain_phase = self.gui.gainPhaseEdit.text().toDouble()[0]
            self.fg.set_rx_gain_phase(gain_phase)
        except RuntimeError:
            pass

    def gainClockEditText(self):
        try:
            gain = self.gui.gainClockEdit.text().toDouble()[0]
            self.fg.set_rx_gain_clock(gain)
        except RuntimeError:
            pass

    def gainFreqEditText(self):
        try:
            gain = self.gui.gainFreqEdit.text().toDouble()[0]
            self.fg.set_rx_gain_freq(gain)
        except RuntimeError:
            pass

    # Accessor functions for packet error reporting
    def updatePacketInfo(self):
        # Pull these globals in from the main thread
        global n_rcvd, n_right, 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(float(per), 0, 'e', 4))