class BG7(QThread): def __init__(self, freq, sport='/dev/ttyUSB0'): QThread.__init__(self) self.freq = freq self.timeout_timer = QTimer() self.timeout_timer.setInterval(3000) #self.connect(self.timeout_timer, QtCore.SIGNAL('timeout()'), self.timeout_serial) self.fp = None self.restart = False self.do_debug = False self.sport = sport try: self.reconnect() except Exception as e: print(e) self.empty_buffer() def empty_buffer(self): pass def timeout_serial(self): print('Timeout serial') self.timeout_timer.stop() self.reconnect() self.run() def reconnect(self): if self.fp is not None: try: self.fp.close() except Exception as e: print(e) try: self.fp = serial.Serial(self.sport, 57600, timeout=4) except Exception as e: print(e) raise e def __del__(self): self.wait() def run(self): if self.fp is not None: if self.restart: self.restart = False #self.freq = self.freq while self.fp.inWaiting() > 0: pants = self.fp.read(self.fp.inWaiting()) time.sleep(1.5) print('BG7: trying to empty buff', self.fp.inWaiting()) print('BG7: Finished empty_buffer') print('Sending command', self.freq) self.fp.write('\x8f' + 'f' + format(int(self.freq/10.0), '09'))
class LoggerDialog(QDialog): def __init__(self): QDialog.__init__(self) self.setWindowTitle("Data Logger") self.groupbox1 = DataSetEditGroupBox("Parametres de lock",Loggerdataset,show_button = False) self.groupbox1.dataset.parent = self self.values = self.groupbox1.dataset self.groupbox1.dataset.parent = self lay = QVBoxLayout() lay.addWidget(self.groupbox1) self.setLayout(lay) self.resize(800,300) self.timer = QTimer() self.timer.timeout.connect(self.log) #self.timer.timeout.connect(self.update_values) self.timer.setInterval(100) #ms self.show() def transform_number(self): self.values.next = self.values.next*self.values.mult + self.values.add self.groupbox1.get() def log(self): self.groupbox1.set() if not vsa.on_screen.meas_done(): return if vsa.on_screen.current_average()<self.values.next: vsa.on_screen.resume() return if self.values.save: self.manual() else: vsa.on_screen.resume() self.transform_number() #vsa.on_screen.set_average(self.values.next) def manual(self): vsa.on_screen.pause() try: df = load(self.values.filename) except IOError: df = matched_df() append_one_av(df) df.save(self.values.filename) vsa.on_screen.resume() def start(self): print "starting" vsa.on_screen.set_average(self.values.next) vsa.on_screen.restart() self.timer.start()
class BG7(QThread): def __init__(self, freq, sport='/dev/ttyUSB0'): QThread.__init__(self) self.freq = freq self.timeout_timer = QTimer() self.timeout_timer.setInterval(3000) #self.connect(self.timeout_timer, QtCore.SIGNAL('timeout()'), self.timeout_serial) self.fp = None self.restart = False self.do_debug = False self.sport = sport try: self.reconnect() except Exception, e: print e self.empty_buffer()