class dialog_box(QtGui.QMainWindow): def __init__(self, snkRxIn, snkRx, fg, parent=None): QtGui.QWidget.__init__(self, parent) self.gui = Ui_DigitalWindow() self.gui.setupUi(self) self.fg = fg self.set_frequency(self.fg.frequency()) self.set_gain(self.fg.gain()) self.set_decim(self.fg.decim()) self.set_gain_mu(self.fg.rx_gain_mu()) self.set_alpha(self.fg.rx_alpha()) # Add the qtsnk widgets to the hlayout box self.gui.sinkLayout.addWidget(snkRxIn) self.gui.sinkLayout.addWidget(snkRx) # Connect up some signals self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"), self.freqEditText) self.connect(self.gui.gainEdit, QtCore.SIGNAL("editingFinished()"), self.gainEditText) self.connect(self.gui.decimEdit, QtCore.SIGNAL("editingFinished()"), self.decimEditText) self.connect(self.gui.gainMuEdit, QtCore.SIGNAL("editingFinished()"), self.gainMuEditText) self.connect(self.gui.alphaEdit, QtCore.SIGNAL("editingFinished()"), self.alphaEditText) # 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) # Accessor functions for Gui to manipulate receiver parameters def set_frequency(self, fo): self.gui.freqEdit.setText(QtCore.QString("%1").arg(fo)) def set_gain(self, gain): self.gui.gainEdit.setText(QtCore.QString("%1").arg(gain)) def set_decim(self, decim): self.gui.decimEdit.setText(QtCore.QString("%1").arg(decim)) def set_gain_mu(self, gain): self.gui.gainMuEdit.setText(QtCore.QString("%1").arg(gain)) def set_alpha(self, alpha): self.gui.alphaEdit.setText(QtCore.QString("%1").arg(alpha)) def freqEditText(self): try: freq = self.gui.freqEdit.text().toDouble()[0] self.fg.set_freq(freq) except RuntimeError: pass def gainEditText(self): try: gain = self.gui.gainEdit.text().toDouble()[0] self.fg.set_gain(gain) except RuntimeError: pass def decimEditText(self): try: decim = self.gui.decimEdit.text().toInt()[0] self.fg.set_decim(decim) except RuntimeError: pass def alphaEditText(self): try: alpha = self.gui.alphaEdit.text().toDouble()[0] self.fg.set_rx_alpha(alpha) except RuntimeError: pass def gainMuEditText(self): try: gain = self.gui.gainMuEdit.text().toDouble()[0] self.fg.set_rx_gain_mu(gain) except RuntimeError: pass # Accessor function for packet error reporting def updatePacketInfo(self): # Pull these globals in from the main thread global n_rcvd, n_right, pktno per = float(n_rcvd - n_right)/float(pktno) 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))