Пример #1
0
    def __init__(self,cam=None,confpath=None,**kwds):
        self.isConnected=False
        super(ROPPER, self).__init__()
        p = pathlib.Path(__file__)
        sepa=os.sep
        self.conf=QtCore.QSettings(confpath, QtCore.QSettings.IniFormat)
        
        self.icon=str(p.parent) + sepa+'icons' +sepa
        self.configMotorPath="./fichiersConfig/"
        self.configMotName='configMoteurRSAI.ini'
        self.confMotorPath=self.configMotorPath+self.configMotName
        self.confMot=QtCore.QSettings(str(p.parent / self.confMotorPath), QtCore.QSettings.IniFormat)
        self.confpath=confpath
        
        
        self.kwds=kwds
        self.kwds["conf"]=self.conf
        self.kwds["confMot"]=self.confMot
        
        self.setWindowIcon(QIcon(self.icon+'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        self.iconPlay=pathlib.Path(self.icon+'Play.svg')
        self.iconPlay=pathlib.PurePosixPath(self.iconPlay)
        self.iconStop=pathlib.Path(self.icon+'Stop.svg')
        self.iconStop=pathlib.PurePosixPath(self.iconStop)
        self.rot=0
        
#        if camID==None: # si None on prend la première...
#            camID=0
#        if camID==0:
#            self.cam="cam0"
#        if camID==1:
#            self.cam="cam1"
#        if camID==2:
#            self.cam="cam1"
#        self.camID=int(camID)
#        print(self.camID)
        
        self.cam=cam
        if self.cam==None:
            self.cam="camDefault"
            
        self.nbcam=self.cam
        
        self.ccdName=self.conf.value(self.nbcam+"/nameCDD")
        
        self.kwds["name"]=self.nbcam
        
        self.initCam()
        self.setup()
        self.itrig=0
        self.actionButton()
        self.camIsRunnig=False
Пример #2
0
    def __init__(self,
                 cam='choose',
                 confFile='confCamera.ini',
                 motLat='camLat',
                 motorTypeName0='RSAI',
                 motVert='camVert',
                 motorTypeName1='RSAI',
                 configMotorPath="./fichiersConfig/",
                 **kwds):
        super(CAMERAMOTOR, self).__init__()
        self.cam = cam

        p = pathlib.Path(__file__)
        self.nbcam = cam
        self.kwds = kwds

        if "affLight" in kwds:
            self.light = kwds["affLight"]
        else:
            self.light = True
        if "multi" in kwds:
            self.multi = kwds["multi"]
        else:
            self.multi = False
        # self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5()) # qdarkstyle :  black windows style

        if "confPath" in kwds:
            self.conf = QtCore.QSettings(kwds["confPath"],
                                         QtCore.QSettings.IniFormat)

        else:
            self.conf = QtCore.QSettings(str(
                p.parent / confFile), QtCore.QSettings.IniFormat)  # ini file
        # self.confPath=str(p.parent / confFile) # ini file path

        if "conf" in kwds:
            self.conf = kwds["conf"]

        self.kwds["conf"] = self.conf
        sepa = os.sep

        self.configPathMotor = configMotorPath  #str(p.parent)+"/fichiersConfig/"
        self.configMotName = 'configMoteurRSAI.ini'
        self.confMotorPath = self.configPathMotor + self.configMotName
        self.confMot = QtCore.QSettings(str(p.parent / self.confMotorPath),
                                        QtCore.QSettings.IniFormat)

        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))

        self.setup()
        self.actionButton()
Пример #3
0
    def __init__(self,conf=None,name='VISU'):
        
        
        
        super().__init__()
        
        p = pathlib.Path(__file__)
        
        if conf==None:
            self.conf=QtCore.QSettings(str(p.parent / 'confVisu.ini'), QtCore.QSettings.IniFormat)
            print(str(p.parent))
        else :
            self.conf=conf
        self.name=name
        sepa=os.sep
        self.icon=str(p.parent) + sepa+'icons' +sepa
        self.isWinOpen=False
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
       
        self.setWindowTitle('Preferences visualisation')
        self.setWindowIcon(QIcon(self.icon+'LOA.png'))
        
        self.stepX=float(self.conf.value(self.name+"/stepX"))
        self.stepY=float(self.conf.value(self.name+"/stepY"))
        self.server=str(self.conf.value(self.name+"/server"))
        self.serverPort=str(self.conf.value(self.name+"/serverPort"))
        self.rotateValue=int(self.conf.value(self.name+"/rotation"))

        self.setup()
        self.actionButton()
Пример #4
0
    def __init__(self, symbol=True, title='Plot3D', conf=None, name='VISU'):
        super(GRAPH3D, self).__init__()
        p = pathlib.Path(__file__)
        sepa = os.sep
        self.title = title
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.left = 100
        self.top = 30
        self.width = 800
        self.height = 800
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.isWinOpen = False
        self.symbol = symbol

        self.path = None
        self.axisOn = False
        if conf == None:
            self.conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        self.name = name
        self.setup()
        self.setWindowTitle(self.title)
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
Пример #5
0
    def __init__(self, conf=None, name='VISU'):

        super().__init__()

        p = pathlib.Path(__file__)

        self.data1 = []
        self.data2 = []

        if conf == None:
            self.conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        self.name = name
        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.isWinOpen = False
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())

        self.setWindowTitle('Math operations')
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))

        self.path = self.conf.value(self.name + "/path")
        self.setup()
        self.actionButton()
Пример #6
0
    def read_settings(self):
        """Read settings using QSettings. This method has to be called after all signals are connected to gurantee
        accordance among the values."""
        settings = QtCore.QSettings()

        settings.beginGroup("processingconfig")
        triggers_processed = settings.value("triggers_processed", 1, type=int)
        self.triggers_processed.setValue(triggers_processed)
        min_samples = settings.value("min_samples", 3, type=int)
        self.min_samples.setValue(min_samples)
        epsilon = settings.value("epsilon", 2.0, type=float)
        self.epsilon.setValue(epsilon)
        tot_threshold = settings.value("tot_threshold", 0, type=int)
        self.tot_threshold.setValue(tot_threshold)

        number_processes = settings.value("number_processes", 4, type=str)
        self.number_processes.setText(number_processes)
        self.number_processes.returnPressed.emit()

        event_window = settings.value("mineventwindow", 0.0,
                                      type=float), settings.value(
                                          "maxeventwindow",
                                          10_000 / EVENT_WINDOW_FACTOR,
                                          type=float)
        self.init_event_window(event_window)
        settings.endGroup()
Пример #7
0
 def __init__(self,title='Full Screen',conf=None,nbcam='cam1'):
     super(FULLSCREEN, self).__init__()
     
     p = pathlib.Path(__file__)
     sepa=os.sep
     self.nbcam=nbcam
     self.title=title
     self.icon=str(p.parent) + sepa+'icons' +sepa
     
     self.isWinOpen=False
     
     
     self.setWindowTitle(self.title)
     self.setWindowIcon(QIcon(self.icon+'LOA.png'))
     self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
     self.vLine = pg.InfiniteLine(angle=90, movable=False,pen='y')
     self.hLine = pg.InfiniteLine(angle=0, movable=False,pen='y')
     self.cutData=[]
     
     self.bloqq=1
     if conf==None:
         self.confCCD=QtCore.QSettings(str(p.parent / 'confImgSource.ini'), QtCore.QSettings.IniFormat)
     else :
         self.confCCD=conf
     
     self.setup()
Пример #8
0
    def __init__(self, conf=None, name='VISU'):

        super().__init__()

        p = pathlib.Path(__file__)

        if conf == None:
            self.conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        self.name = name
        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.isWinOpen = False
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())

        self.setWindowTitle('Options Auto Save & visualisation')
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))

        # self.stepX=float(self.conf.value(self.name+"/stepX"))
        # self.stepY=float(self.conf.value(self.name+"/stepY"))
        self.shoot = int(self.conf.value(self.name + "/tirNumber"))
        self.setup()
        self.pathAutoSave = self.conf.value(self.name + "/path")
        self.pathBg = self.conf.value(self.name + "/pathBg")
        self.actionButton()
        self.dataBgExist = False
        self.rotateValue = 0
Пример #9
0
    def __init__(self,
                 parent=None,
                 conf=None,
                 name='VISU',
                 confMot=None,
                 **kwds):

        super().__init__()
        self.parent = parent
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        p = pathlib.Path(__file__)
        sepa = os.sep
        if conf == None:
            self.conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        self.confMot = confMot
        self.name = name
        self.shoot = 0
        self.nbHistory = 20  # maximum file to  be displayed in history log

        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.isWinOpen = False
        self.setup()
        self.setWindowTitle('History')

        self.nomFichier = ''

        self.path = self.conf.value(self.name + "/path")

        self.labelsVert = []

        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))
Пример #10
0
    def closeEvent(self,event):
        print("closing")
        settings = QtCore.QSettings("foo","foo")
        if self.timetrace_filename:
            settings.setValue("filename", self.timetrace_filename)

        if self.parameters:
            self.save_state(self.params_filename, self.parameters.saveState())
Пример #11
0
    def __init__(self, parent=None):

        super(ThreadRunAuto, self).__init__(parent)
        self.stopRunAcq = False
        self.config = QtCore.QSettings('confSave.ini',
                                       QtCore.QSettings.IniFormat)
        self.nbShoot = 0
        self.parent = parent
        self.sepa = os.sep
Пример #12
0
    def __init__(self,conf=None,name='VISU'):
        
        super().__init__()
        self.name=name
        p = pathlib.Path(__file__)
        if conf==None:
            self.conf=QtCore.QSettings(str(p.parent / 'confVisu.ini'), QtCore.QSettings.IniFormat)
        else :
            self.conf=conf
        
        sepa=os.sep
        self.icon=str(p.parent) + sepa+'icons' +sepa

        self.isWinOpen=False
        self.setWindowTitle('Encercled')
        self.setWindowIcon(QIcon(self.icon+'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        self.left=100
        self.top=30
        self.width=800
        self.height=800
        self.setGeometry(self.left,self.top,self.width,self.height)
        self.dimx=1200
        self.dimy=900
        self.bloqq=1
        self.xec=int(self.conf.value(self.name+"/xec"))
        self.yec=int(self.conf.value(self.name+"/yec"))
        self.r1x=int(self.conf.value(self.name+"/r1x"))
        self.r1y=int(self.conf.value(self.name+"/r1y"))
        self.r2=int(self.conf.value(self.name+"/r2x"))
        self.r2=int(self.conf.value(self.name+"/r2y"))
        
        self.kE=0 # variable pour la courbe E fct du nb shoot
        
        self.Xec=[]
        self.Yec=[]
        self.fwhmX=100
        self.fwhmY=100
        self.setWindowIcon(QIcon('./icons/LOA.png'))
        self.E = []
        
        #self.E=np.array([2,3,5])
        self.Xec=[]
        self.Yec=[]
        
        # Create x and y indices
        x = np.arange(0,self.dimx)
        y = np.arange(0,self.dimy)
        y,x = np.meshgrid(y, x)
    
        self.data=(40*np.random.rand(self.dimx,self.dimy)).round()
        
        self.setup()
        self.ActionButton()
        self.Display(self.data)
Пример #13
0
    def __read_settings(self):
        settings = QtCore.QSettings()

        settings.beginGroup("acqconfig")
        path = settings.value("path")
        self.path_name.setText(path)
        prefix = settings.value("prefix")
        self.file_prefix.setText(prefix)
        config_file = settings.value("sophyconfig")
        self.sophy_config.setText(config_file)
        settings.endGroup()
Пример #14
0
 def __init__(self, parent = None):
     super().__init__()
     self.params_filename = "params.dat"
     self.loaded_data = None
     self.parameters = None
     self.setupUi()
     self.setupParameterTree()
     #self.timetrace_filename = ""
     settings = QtCore.QSettings("foo","foo")
     self.timetrace_filename = settings.value('filename', type=str)#.toString()
     if self.timetrace_filename:
         self.load_data(self.timetrace_filename)
Пример #15
0
    def __init__(self, file=None, path=None, conf=None, name='VISU'):

        super(SEEFFT, self).__init__()
        p = pathlib.Path(__file__)
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        if conf == None:
            conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                    QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        self.name = name
        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.conf = conf

        self.winEncercled = WINENCERCLED(conf=self.conf, name=self.name)
        self.winCoupe = GRAPHCUT(symbol=False, conf=self.conf, name=self.name)

        self.winM = MEAS(conf=self.conf, name=self.name)
        self.winOpt = OPTION(conf=self.conf, name=self.name)

        self.nomFichier = ''

        self.path = path
        self.setWindowTitle('FTT')
        self.setup()
        self.shortcut()
        self.actionButton()
        self.activateWindow()
        self.raise_()
        self.showNormal()
        self.filter = 'origin'
        self.ite = None
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))

        if file == None:

            self.dimy = 960
            self.dimx = 1240
            # Create x and y index
            self.x = np.arange(0, self.dimx)
            self.y = np.arange(0, self.dimy)
            self.y, self.x = np.meshgrid(self.y, self.x)

            self.data = (50 *
                         np.random.rand(self.dimx, self.dimy)).round() + 150
        else:
            if path == None:
                self.path = self.conf.value(self.name + "/path")

            self.OpenF(fileOpen=self.path + '/' + file)

        self.bloqq = 1
    def __init__(self, parent=None):

        super(MyWindow, self).__init__(parent)

        # load GUI from .ui file (created in QtDesigner)
        self.ui = uic.loadUi('GUI\\Beamstabilization_V2.ui', self)

        # Variables used for Tracking Initialization Status and GUI Choices
        self.status = "StandBy"
        self.ui.setWindowTitle("Beamstabilization")
        self.log = None
        self.config = False
        self.mirror = None
        self.b_align = False
        self.newStart = 0
        self.blog = 0
        self.b_centerLine = 1

        # read last reference position
        self.Save = saveClass(config)
        if self.Save.readLastConfig(calcDict):
            self.config = True

        self.correct = Correction()

        # Initialize GUI plots and images

        self.init_ui()
        self.Setting = GUISettings()
        self.Setting.guirestore(
            self.ui,
            QtCore.QSettings('./GUI/saved.ini', QtCore.QSettings.IniFormat))

        # Connect Buttons with Function calls
        self.readLastReferencePosition()
        self.btn_Exit.clicked.connect(self.close)
        self.btn_Start.clicked.connect(self.startAligning)
        self.btn_setCenter.clicked.connect(self.newCenter)
        self.btn_showCenter.clicked.connect(self.displayCenterLine)
        self.line_thresholdPercentage.returnPressed.connect(
            self.getThresholdPercentage)
        self.btn_moveMirror.clicked.connect(self.moveSingleMirror)
        self.btn_FitValue.toggled.connect(self.fitCenter)

        # show GUI
        self.show()

        # start Main function
        self.Main()
Пример #17
0
    def __init__(self, cam='camDefault', **kwds):

        super(GUPPY, self).__init__()

        self.nbcam = cam
        self.itrig = 'off'
        if "conf" in kwds:
            self.conf = kwds["conf"]
        else:
            self.conf = QtCore.QSettings('confCamera.ini',
                                         QtCore.QSettings.IniFormat)
        self.camParameter = dict()
        self.camIsRunnig = False
        self.nbShot = 1
        self.items = cameraIds
Пример #18
0
 def __init__(self,symbol=None,title='Plot',conf=None,name='VISU',meas=False,pen='w',symbolPen='w',label=None,labelY=None,clearPlot=True):
     
     super().__init__()
     p = pathlib.Path(__file__)
     sepa=os.sep
     self.title=title
     self.icon=str(p.parent) + sepa+'icons' +sepa
     self.isWinOpen=False
     self.dimx=10
     self.bloqq=0
     self.xc=0
     self.measWidget=WINDOWMEAS()
     self.meas=meas
     self.cutData=np.zeros(self.dimx)
     self.path=None
     self.axisOn=False
     if conf==None:
         self.conf=QtCore.QSettings(str(p.parent / 'confVisu.ini'), QtCore.QSettings.IniFormat)
     else :
         self.conf=conf
     self.name=name
     
     self.setWindowTitle(self.title)
     self.setWindowIcon(QIcon(self.icon+'LOA.png'))
     self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
     
     self.symbol=symbol
     self.axis=None
     self.label=label
     self.labelY=labelY
     self.symbolPen=symbolPen
     self.symbolBrush='w'
     self.ligneWidth=1
     self.color='w'
     self.plotRectZoomEtat="Zoom"
     self.pen=pen
     self.clearPlot=clearPlot
     self.xLog=False
     self.yLog=False
     self.fitA=""
     self.fitMu=""
     self.fitSigma=""
     self.widgetRange=WINDOWRANGE()
     self.setup()
     self.actionButton()
Пример #19
0
    def __init__(self, conf=None, name='VISU'):

        super().__init__()
        self.name = name
        p = pathlib.Path(__file__)
        if conf == None:
            self.conf = QtCore.QSettings(str(p.parent / 'confVisu.ini'),
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.confCCD = conf
        self.isWinOpen = False
        self.setWindowTitle('FFT')
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        self.setup()
    def closeEvent(self, event):
        """ 
        Function for exiting the application
        - GUI settings are stored
        - open files are closed
        """

        reply = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes,
                                     QMessageBox.No)
        if reply == QMessageBox.Yes:
            self.timer.stop()
            if self.log:
                self.log.closeFile()
            self.Setting.guisave(self.ui, QtCore.QSettings('./GUI/saved.ini', QtCore.QSettings.IniFormat))
            sys.exit()
            event.accept()
        else:
            event.ignore()
Пример #21
0
 def __init__(self,cam='camDefault',**kwds):
     
     super(PIXELINK,self).__init__()
     
     self.nbcam=cam
     self.itrig='off'
     
     if "conf"  in kwds :
         self.conf=kwds["conf"]
     else :
         self.conf=QtCore.QSettings('confCamera.ini', QtCore.QSettings.IniFormat)
     if "multi"in kwds :
         self.multi=kwds["multi"]
     else:
         self.multi=False   
         
     self.camParameter=dict()
     self.camIsRunnig=False
     self.nbShot=1
     self.isConnected=False
Пример #22
0
    def __init__(self, cam='camDefault', conf=None, **kwds):
        '''
        Parameters
        ----------
        cam : TYPE, optional
            DESCRIPTION. 
                cam='None' : Choose a camera in a list
                cam='camDefault : the first camera is chossen
                cam='cam1'"' : Take the camId in the confCamera.ini file
            The default is 'camDefault'.
        conf : TYPE, optional
            DESCRIPTION.a QtCore.QSettings  objet : 
                conf=QtCore.QSettings('file.ini', QtCore.QSettings.IniFormat)
                where file is the ini file where camera parameters are saved
                usefull to set init parameters (expTime and gain)
            The default is None.
        Returns
        -------
        None.

        '''

        super(IMGSOURCE, self).__init__()
        p = pathlib.Path(__file__)
        self.nbcam = cam
        self.itrig = 'off'
        print('imgsource')
        if conf == None:
            self.conf = QtCore.QSettings('confCamera.ini',
                                         QtCore.QSettings.IniFormat)
        else:
            self.conf = conf
        if "multi" in kwds:
            self.multi = kwds["multi"]
        else:
            self.multi = False
        self.camParameter = dict()
        self.camIsRunnig = False
        self.nbShot = 1

        self.cam0 = Camera
    def closeEvent(self, event):
        """
        Function executed at exiting the application:
            - stop the measurement timer
            - close the logFile if one was produced
            - save the state of the GUI entries
        """

        reply = QMessageBox.question(self, 'Message', "Are you sure to quit?",
                                     QMessageBox.Yes, QMessageBox.No)
        if reply == QMessageBox.Yes:
            self.timer.stop()
            if self.log:
                self.log.closeFile()
            self.Setting.guisave(
                self.ui,
                QtCore.QSettings('./GUI/saved.ini',
                                 QtCore.QSettings.IniFormat))
            sys.exit()
            event.accept()
        else:
            event.ignore()
Пример #24
0
    def __init__(self,camID=None,confpath=None):
        self.isConnected=False
        super(ROPPER, self).__init__()
        p = pathlib.Path(__file__)
        self.conf=QtCore.QSettings(str(p.parent / 'confCCD.ini'), QtCore.QSettings.IniFormat)
        sepa=os.sep
        self.icon=str(p.parent) + sepa+'icons' +sepa
        
        self.confpath=confpath
        self.setWindowIcon(QIcon(self.icon+'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        self.iconPlay=pathlib.Path(self.icon+'Play.svg')
        self.iconPlay=pathlib.PurePosixPath(self.iconPlay)
        self.iconStop=pathlib.Path(self.icon+'Stop.svg')
        self.iconStop=pathlib.PurePosixPath(self.iconStop)
        self.rot=0
        
        if camID==None: # si None on prend la première...
            camID=0
        if camID==0:
            self.cam="cam0"
        if camID==1:
            self.cam="cam1"
        if camID==2:
            self.cam="cam1"
        self.camID=int(camID)
#        print(self.camID)
        self.nbcam=self.cam
        
        self.ccdName=self.conf.value(self.nbcam+"/nameCDD")
        
        self.initCam()
        self.setup()
        self.itrig=0
        self.actionButton()
        self.camIsRunnig=False
        self.setWindowTitle('Princeton CCD ' +str(self.ccdName)+'       v.'+ version)
Пример #25
0
class Settings:
    settings = QtCore.QSettings()

    @classmethod
    def addRecentFile(cls, filePath):
        files = cls.settings.value('RecentFiles')
        if type(files) is not list:
            files = []
        absolutePath = os.path.join(os.getcwd(), filePath)
        files = [f for f in files if f['path'] != absolutePath]
        files.append({
            'time': datetime.datetime.now(),
            'path': absolutePath
        })
        cls.settings.setValue('RecentFiles', files)

    @classmethod
    def getRecentFiles(cls):
        files = cls.settings.value('RecentFiles')
        if type(files) is not list:
            return []
        else:
            try:
                files = sorted(files, key=lambda f: f['time'], reverse=True)
                return [f['path'] for f in files]
            except TypeError as e:
                # In case memory on disk got corrupted, reset memory
                print('Unexpected error on parsing RecentFiles',
                      file=sys.stderr)
                print(e, file=sys.stderr)
                cls.clearRecentFiles()
                return []

    @classmethod
    def clearRecentFiles(cls):
        cls.settings.setValue('RecentFiles', [])
Пример #26
0
    def __init__(self, cam='camDefault', confVisu=None):

        super(GUPPY, self).__init__()
        p = pathlib.Path(__file__)
        #print (p)
        self.conf = QtCore.QSettings(str(p.parent / 'confCCD.ini'),
                                     QtCore.QSettings.IniFormat)
        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        self.iconPlay = self.icon + 'Play.svg'
        self.iconStop = self.icon + 'Stop.svg'
        self.iconPlay = pathlib.Path(self.iconPlay)
        self.iconPlay = pathlib.PurePosixPath(self.iconPlay)
        self.iconStop = pathlib.Path(self.iconStop)
        self.iconStop = pathlib.PurePosixPath(self.iconStop)
        self.confVisu = confVisu
        self.nbcam = cam
        self.initCam()
        self.setup()
        self.itrig = 0
        self.actionButton()
        self.camIsRunnig = False
Пример #27
0
    def __init__(self, **kwds):

        super().__init__()

        p = pathlib.Path(__file__)

        sepa = os.sep
        self.icon = str(p.parent) + sepa + 'icons' + sepa
        self.setWindowIcon(QIcon(self.icon + 'LOA.png'))
        self.setWindowTitle("Save All Files")
        self.config = QtCore.QSettings('confSave.ini',
                                       QtCore.QSettings.IniFormat)
        self.waitValue = float(self.config.value("Dossier1" + "/wait"))
        self.path1 = self.config.value("Dossier1" + "/path")
        self.pathSave1 = self.config.value("Dossier1" + "/pathSave")
        self.path2 = self.config.value("Dossier2" + "/path")
        self.pathSave2 = self.config.value("Dossier2" + "/pathSave")
        self.path3 = self.config.value("Dossier3" + "/path")
        self.pathSave3 = self.config.value("Dossier3" + "/pathSave")

        self.threadSave = ThreadRunAuto(self)
        self.setup()
        self.actionButton()
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
Пример #28
0
    def __init__(self,parent=None,file=None,path=None,**kwds):
        
        print('LightThread')
        super(SEELIGHTTHREAD, self).__init__()
        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5()) # dark style
        self.parent=parent
        version=__version__
        p = pathlib.Path(__file__)
        sepa=os.sep
        self.icon=str(p.parent) + sepa+'icons' +sepa
         ## kwds definition:
        if "confpath"in kwds :
            self.confpath=kwds["confpath"]
            self.conf=QtCore.QSettings(self.confpath, QtCore.QSettings.IniFormat)
        else:
            self.conf=QtCore.QSettings(str(p.parent / 'confVisu.ini'), QtCore.QSettings.IniFormat)
        if "name" in kwds:
            self.name=kwds["name"]
        else:
            self.name="VISU"
        
        if "meas" in kwds:
            self.meas=kwds["meas"]
        else:
           self.meas="on" 
        
        if "confMot" in kwds:
            print('motor accepted')
            if self.meas=="on":
                self.confMot=kwds["confoMot"]
                self.winM=MEAS(confMot=self.confMot,conf=self.conf,name=self.name)
        else :
            if self.meas=="on":
                self.winM=MEAS(self,conf=self.conf,name=self.name)
           
        
        if "aff" in kwds:
            self.aff=kwds["aff"]
        else:
            self.aff="left"
        
        
        if "saveTiff" in kwds:
            self.tiff=kwds["saveTiff"]
        else:       
            self.tiff=True
            
            
        self.nomFichier=''
        self.ite=None
        self.path=path
        self.setWindowTitle('Visualization'+'       v.'+ version)
        self.bloqKeyboard=bool((self.conf.value(self.name+"/bloqKeyboard"))  )  # block cross by keyboard
        self.bloqq=1 # block the cross by click on mouse
        self.setup()
        self.shortcut()
        self.actionButton()
        self.activateWindow()
        self.raise_()
        self.showNormal()
       
        self.setWindowIcon(QIcon(self.icon+'LOA.png'))
        
        def twoD_Gaussian(x,y, amplitude, xo, yo, sigma_x, sigma_y, theta, offset):
           xo = float(xo)
           yo = float(yo)    
           a = (np.cos(theta)**2)/(2*sigma_x**2) + (np.sin(theta)**2)/(2*sigma_y**2)
           b = -(np.sin(2*theta))/(4*sigma_x**2) + (np.sin(2*theta))/(4*sigma_y**2)
           c = (np.sin(theta)**2)/(2*sigma_x**2) + (np.cos(theta)**2)/(2*sigma_y**2)
           return offset + amplitude*np.exp( - (a*((x-xo)**2) + 2*b*(x-xo)*(y-yo) + c*((y-yo)**2)))

        
        if file==None:
            # to have a gaussian picture when we start
            self.dimy=960
            self.dimx=1240
            # Create x and y index
            self.x = np.arange(0,self.dimx)
            self.y = np.arange(0,self.dimy)
            self.y,self.x = np.meshgrid(self.y, self.x)
            
            self.data=twoD_Gaussian(self.x, self.y,450, 800, 600, 40, 40, 0, 10)+(50*np.random.rand(self.dimx,self.dimy)).round() 
        
            #self.data=(50*np.random.rand(self.dimx,self.dimy)).round() + 150
        else:
            if path==None:
                self.path=self.conf.value(self.name+"/path")
            
            self.data=self.OpenF(fileOpen=self.path+'/'+file)
        
        
        self.Display(self.data)
Пример #29
0
 def __init__(self,parent=None):
     super().__init__(parent)
     
     self.confFrog=QtCore.QSettings('confFrog.ini', QtCore.QSettings.IniFormat)
     p = pathlib.Path(__file__)
     sepa=os.sep
     self.icon=str(p.parent) + sepa+'icons'+sepa
     self.setWindowIcon(QIcon(self.icon+'LOA.png'))
     self.left=30
     self.top=30
     self.width=1200
     self.height=750
     self.setGeometry(self.left,self.top,self.width,self.height)
     self.iconPlay=self.icon+'Play.png'
     self.iconSnap=self.icon+'Snap.png'
     self.iconStop=self.icon+'Stop.png'
     self.iconBg=self.icon+'coin.png'
     self.iconPlay=pathlib.Path(self.iconPlay)
     self.iconPlay=pathlib.PurePosixPath(self.iconPlay)
     self.iconStop=pathlib.Path(self.iconStop)
     self.iconStop=pathlib.PurePosixPath(self.iconStop)
     self.iconSnap=pathlib.Path(self.iconSnap)
     self.iconSnap=pathlib.PurePosixPath(self.iconSnap)
     
     self.iconBg=pathlib.Path(self.iconBg)
     self.iconBg=pathlib.PurePosixPath(self.iconBg)
     
     self.setWindowIcon(QIcon(self.icon+'LOA.png'))
     self.setWindowTitle('FROG ')
     
     self.motorName="moteurTest"#"Moteur0A"
     self.motorType='MotorTest'#"A2V"
     self.configPath="./fichiersConfig/"
     self.configMotName='configMoteurTest.ini'#'configMoteurA2V.ini'
     
     self.confpath=str(p.parent) + sepa
     # print('confpath',self.confpath)
     
     self.bg=0
     self.motor=ONEMOTOR(mot0=self.motorName,motorTypeName0=self.motorType,unit=3,jogValue=1)
     self.motor.startThread2()
     
     MOT=self.motor.MOT
     self.scanWidget=SCAN(MOT=MOT,motor=self.motorName,configMotName=self.configPath+self.configMotName) # for the scan)
     
     
     
     listdevice=list_devices() ## open device flame spectrometer 
     try : 
         self.spectrometer=Spectrometer(listdevice[0])
         sh=int(self.confFrog.value('VISU'+'/shutter'))
         try:
             self.spectrometer.integration_time_micros(sh*1000) # en micro
         except: 
             self.spectrometer.integration_time_micros(100*1000)
     except :
         self.spectrometer=[]
         msg = QMessageBox()
         msg.setIcon(QMessageBox.Critical)
         msg.setText("Error connexion Spectrometer")
         msg.setInformativeText("Try to reconnect the USB or resart the program")
         msg.setWindowTitle("Spectrometer not connected...")
         msg.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
         msg.exec_()
         pass
     print('__________  F R O G  __________')
     print('')
     print('  Version  : ',version)
     print("  Spectrometer connected @ ",self.spectrometer)
     self.wavelengths=self.spectrometer.wavelengths() # array Wavelengths of the spectrometer 
     print("  Wavelength : " ,self.wavelengths.min(),self.wavelengths.max())
     print('  Motor name: ',self.motorName,'  Type: ',self.motorType)
     print('')
     self.MatData=[]
     self.MatFs=[]
     self.position=0
     self.moyenne=1
     self.nbShot=1
     self.row=0
     self.setup()
     self.actionButton()
Пример #30
0
    def __save_setting(self, key, value):
        settings = QtCore.QSettings()

        settings.beginGroup("processingconfig")
        settings.setValue(key, value)
        settings.endGroup()