Beispiel #1
0
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()
Beispiel #3
0
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()