Ejemplo n.º 1
0
 def test_createFTWs(self):
     logger.info('== {} =='.format(self._testMethodName))
     fts=CreateFilters(debug=False, rt=self.rt, logger=logger).create()
     foc=CreateFocuser(debug=False, rt=self.rt, logger=logger).create(focDef=0)
     # no connection to real device
     foc.focDef=0
     cftw= CreateFilterWheels(debug=False, rt=self.rt, logger=logger, filters=fts, foc=foc)
     ftw=cftw.create()
     self.assertEqual(ftw[0].name, 'FAKE_FTW')
Ejemplo n.º 2
0
 def test_createFTWs(self):
     logger.info('== {} =='.format(self._testMethodName))
     fts = CreateFilters(debug=False, rt=self.rt, logger=logger).create()
     foc = CreateFocuser(debug=False, rt=self.rt,
                         logger=logger).create(focDef=0)
     # no connection to real device
     foc.focDef = 0
     cftw = CreateFilterWheels(debug=False,
                               rt=self.rt,
                               logger=logger,
                               filters=fts,
                               foc=foc)
     ftw = cftw.create()
     self.assertEqual(ftw[0].name, 'FAKE_FTW')
Ejemplo n.º 3
0
    def setupDevices(self, blind=False):
        # setup rts2saf
        # fake arguments
        self.args=Args()
        self.args.sxDebug=False
        self.args.blind=blind
        self.args.verbose=False
        self.args.check=True
        self.args.fetchOffsets=True
        self.args.exposure= 1.887
        self.args.catalogAnalysis=False
        self.args.Ds9Display=False
        self.args.FitDisplay=False
        self.args.flux=True
        self.args.dryFitsFiles='../samples_bootes2'
        # JSON
        self.proxy=JSONProxy(url=self.rt.cfg['URL'],username=self.rt.cfg['USERNAME'],password=self.rt.cfg['PASSWORD'])
        # create Focuser 
        self.foc= CreateFocuser(debug=False, proxy=self.proxy, check=self.args.check, rt=self.rt, logger=logger).create()
        # create filters
        fts=CreateFilters(debug=False, proxy=self.proxy, check=self.args.check, rt=self.rt, logger=logger).create()
        # create filter wheels
        ftwc= CreateFilterWheels(debug=False, proxy=self.proxy, check=self.args.check, rt=self.rt, logger=logger, filters=fts, foc=self.foc)
        ftws=ftwc.create()
        if not ftwc.checkBounds():
            logger.error('setupDevice: filter focus ranges out of bounds, exiting')
            sys.exit(1)

        # create ccd
        ccd= CreateCCD(debug=False, proxy=self.proxy, check=self.args.check, rt=self.rt, logger=logger, ftws=ftws, fetchOffsets=self.args.fetchOffsets).create()
        
        cdv= CheckDevices(debug=False, proxy=self.proxy, blind=self.args.blind, verbose=self.args.verbose, ccd=ccd, ftws=ftws, foc=self.foc, logger=logger)
        cdv.summaryDevices()
        cdv.printProperties()
        cdv.deviceWriteAccess()
        dryFitsFiles=None
        if self.args.dryFitsFiles:
            dryFitsFiles=glob.glob('{0}/{1}'.format(self.args.dryFitsFiles, self.rt.cfg['FILE_GLOB']))
            if len(dryFitsFiles)==0:
                logger.error('setupDevice: no FITS files found in:{}'.format(self.args.dryFitsFiles))
                logger.info('setupDevice: download a sample from wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-09-14.tgz')
                sys.exit(1)

        # ok evrything is there
        self.rts2safFoc= Focus(debug=False, proxy=self.proxy, args=self.args, dryFitsFiles=dryFitsFiles, ccd=ccd, foc=self.foc, ftws=ftws, rt=self.rt, ev=self.ev, logger=logger)
Ejemplo n.º 4
0
 def test_createCCD(self):
     logger.info('== {} =='.format(self._testMethodName))
     fts = CreateFilters(debug=False, rt=self.rt, logger=logger).create()
     foc = CreateFocuser(debug=False, rt=self.rt,
                         logger=logger).create(focDef=0)
     CreateFilterWheels(debug=False,
                        rt=self.rt,
                        logger=logger,
                        filters=fts,
                        foc=foc)
     cccd = CreateCCD(debug=False, rt=self.rt, logger=logger, ftws=fts)
     ccd = cccd.create()
     self.assertEqual(ccd.name, 'C0')
Ejemplo n.º 5
0
    if args.focDef:
        foc.writeFocDef(proxy=proxy, focDef=args.focDef)
        logger.info('rts2saf_focus: {0} FOC_DEF: {1} set'.format(
            foc.name, args.focDef))

    filters = CreateFilters(debug=args.debug,
                            proxy=proxy,
                            check=args.checkConfig,
                            verbose=args.verbose,
                            rt=rt,
                            logger=logger).create()
    ftwc = CreateFilterWheels(filters=filters,
                              foc=foc,
                              debug=args.debug,
                              proxy=proxy,
                              check=args.checkConfig,
                              blind=args.blind,
                              verbose=args.verbose,
                              rt=rt,
                              logger=logger)
    ftws = ftwc.create()
    # at least one even if it is FAKE_FTW
    if ftws == None or not isinstance(ftws[0], FilterWheel):
        logger.error(
            'rts2saf_focus: could not create object for filter wheel: {}, exiting'
            .format(rt.cfg['FILTER WHEELS INUSE']))
        sys.exit(1)
    # offsets must be fetched at this point, but not in unittest
    ccd = CreateCCD(debug=args.debug,
                    proxy=proxy,
                    ftws=ftws,
Ejemplo n.º 6
0
    def setupDevices(self, blind=False):
        # setup rts2saf
        # fake arguments
        self.args = Args()
        self.args.sxDebug = False
        self.args.blind = blind
        self.args.verbose = False
        self.args.check = True
        self.args.fetchOffsets = True
        self.args.exposure = 1.887
        self.args.catalogAnalysis = False
        self.args.Ds9Display = False
        self.args.FitDisplay = False
        self.args.flux = True
        self.args.dryFitsFiles = '../samples_bootes2'
        # JSON
        self.proxy = JSONProxy(url=self.rt.cfg['URL'],
                               username=self.rt.cfg['USERNAME'],
                               password=self.rt.cfg['PASSWORD'])
        # create Focuser
        self.foc = CreateFocuser(debug=False,
                                 proxy=self.proxy,
                                 check=self.args.check,
                                 rt=self.rt,
                                 logger=logger).create()
        # create filters
        fts = CreateFilters(debug=False,
                            proxy=self.proxy,
                            check=self.args.check,
                            rt=self.rt,
                            logger=logger).create()
        # create filter wheels
        ftwc = CreateFilterWheels(debug=False,
                                  proxy=self.proxy,
                                  check=self.args.check,
                                  rt=self.rt,
                                  logger=logger,
                                  filters=fts,
                                  foc=self.foc)
        ftws = ftwc.create()
        if not ftwc.checkBounds():
            logger.error(
                'setupDevice: filter focus ranges out of bounds, exiting')
            sys.exit(1)

        # create ccd
        ccd = CreateCCD(debug=False,
                        proxy=self.proxy,
                        check=self.args.check,
                        rt=self.rt,
                        logger=logger,
                        ftws=ftws,
                        fetchOffsets=self.args.fetchOffsets).create()

        cdv = CheckDevices(debug=False,
                           proxy=self.proxy,
                           blind=self.args.blind,
                           verbose=self.args.verbose,
                           ccd=ccd,
                           ftws=ftws,
                           foc=self.foc,
                           logger=logger)
        cdv.summaryDevices()
        cdv.printProperties()
        cdv.deviceWriteAccess()
        dryFitsFiles = None
        if self.args.dryFitsFiles:
            dryFitsFiles = glob.glob('{0}/{1}'.format(
                self.args.dryFitsFiles, self.rt.cfg['FILE_GLOB']))
            if len(dryFitsFiles) == 0:
                logger.error('setupDevice: no FITS files found in:{}'.format(
                    self.args.dryFitsFiles))
                logger.info(
                    'setupDevice: download a sample from wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-09-14.tgz'
                )
                sys.exit(1)

        # ok evrything is there
        self.rts2safFoc = Focus(debug=False,
                                proxy=self.proxy,
                                args=self.args,
                                dryFitsFiles=dryFitsFiles,
                                ccd=ccd,
                                foc=self.foc,
                                ftws=ftws,
                                rt=self.rt,
                                ev=self.ev,
                                logger=logger)
Ejemplo n.º 7
0
    # create all devices
    # attention: .create() at the end
    # filters are not yet devices
    # check always True, we need to set limits either from device or from configuration
    foc= CreateFocuser(debug=args.debug, proxy=proxy, check=True, rangeFocToff=args.focRange, blind=args.blind, verbose=args.verbose, rt=rt, logger=logger).create()
    if foc==None or not isinstance(foc, Focuser):
        logger.error('rts2saf_focus: could not create object for focuser: {}, exiting'.format(rt.cfg['FOCUSER_NAME']))
        sys.exit(1)

    if args.focDef:
        foc.writeFocDef(proxy=proxy, focDef=args.focDef)
        logger.info('rts2saf_focus: {0} FOC_DEF: {1} set'.format(foc.name,args.focDef))

    filters= CreateFilters(debug=args.debug, proxy=proxy, check=args.checkConfig, verbose=args.verbose, rt=rt, logger=logger).create()
    ftwc = CreateFilterWheels(filters=filters, foc=foc, debug=args.debug, proxy=proxy, check=args.checkConfig, blind=args.blind, verbose=args.verbose, rt=rt, logger=logger)
    ftws = ftwc.create()
    # at least one even if it is FAKE_FTW
    if ftws==None or not isinstance(ftws[0], FilterWheel):
        logger.error('rts2saf_focus: could not create object for filter wheel: {}, exiting'.format(rt.cfg['FILTER WHEELS INUSE']))
        sys.exit(1)
    # offsets must be fetched at this point, but not in unittest
    ccd= CreateCCD(debug=args.debug, proxy=proxy, ftws=ftws, check=args.checkConfig, fetchOffsets=True, verbose=args.verbose, rt=rt, logger=logger).create()
    if ccd==None or not isinstance(ccd, CCD):
        logger.error('rts2saf_focus: could not create object for CCD: {}, exiting'.format(rt.cfg['CCD_NAME']))
        sys.exit(1)

    # filter wheel offsets are at this point read back from CCD
    if not ftwc.checkBounds():
        logger.error('rts2saf_focus: filter focus ranges out of bounds, exiting')
        sys.exit(1)