def setUp(self): self.rt = Configuration(logger=logger) self.fileName = './rts2saf-bootes-2.cfg' self.success = self.rt.readConfiguration(fileName=self.fileName) self.proxy = JSONProxy(url=self.rt.cfg['URL'], username=self.rt.cfg['RTS2_HTTPD_USERNAME'], password=self.rt.cfg['PASSWORD']) self.rts2safFoc = CheckDevices(debug=False, proxy=self.proxy, blind=None, verbose=None, ccd=None, ftws=None, foc=None, logger=logger)
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) # check the presence of the devices and if there is an empty slot on each wheel cdv = CheckDevices(debug=args.debug, proxy=proxy, blind=args.blind, verbose=args.verbose, ccd=ccd, ftws=ftws, foc=foc, logger=logger) cdv.summaryDevices() # while called from IMGP hopefully every device is there if args.checkConfig: # are devices writable if not cdv.deviceWriteAccess(): logger.error('rts2saf_focus: exiting') logger.info('rts2saf_focus: run {0} --verbose'.format(script)) sys.exit(1) logger.info( 'rts2saf_focus: configuration check done for config file:{0}, exiting'
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)