Beispiel #1
0
    def status(self):
        str = "\nlaser beam block position is "
        if abs(self.x.wm() - self.__in) < 1:
            str += estr("IN", color="green", type="normal")
        elif abs(self.x.wm() - self.__out) < 2:
            str += estr("OUT", color="red", type="bold")
        else:
            str += estr("UNKNOWN", color="red", type="bold")

        return str
Beispiel #2
0
 def status(self):
   pos = self.m.wm()
   if self.isin(pos):
     pos_str =  estr("IN",color="red",type="normal")
   elif self.isout(pos):
     pos_str =  estr("OUT",color="green",type="normal")
   else:
     pos_str = estr("UNKOWN",color="red")
   str = "Ref laser position is : %s (stage at %.3f mm)" % (pos_str,pos)
   return str
Beispiel #3
0
    def status(self):
        str = "\nbeam block position is "
        if abs(self.x.wm() - self.inposx()) < 0.01 and abs(
                self.y.wm() - self.inposy()) < 0.01:
            str += estr("IN", color="green", type="normal")
        elif abs(self.x.wm() - self.outposx()) < 0.1 and abs(
                self.y.wm() - self.outposy()) < 0.1:
            str += estr("OUT", color="yellow", type="bold")
        else:
            str += estr("UNKNOWN", color="red", type="bold")

        return str
Beispiel #4
0
 def status(self):
     v = pypsepics.get(self.pv)
     if abs(v - self.Vhigh) < self.tol:
         sstatus = estr("Open", color='green', type='normal')
     elif abs(v - self.Vlow) < self.tol:
         sstatus = estr("Closed", color='red', type='normal')
     else:
         sstatus = estr("Not Known", color='white', type='normal')
     str1 = "%s:" % self.name
     str2 = " %s" % sstatus
     str = str1.rjust(10) + str2.ljust(10)
     return str
Beispiel #5
0
 def status(self):
     self.__update()
     out = "slit %s:" % self.__name
     if self.isopen():
         out += estr(" OPEN  ", color="green", type="normal")
     elif self.isclosed():
         out += estr(" CLOSED ", color="red", type="bold")
     else:
         out += estr(" IN     ", color="yellow", type="normal")
     out+="(hg,vg) = (%+.4f x %+.4f); (ho,vo) = (%+.4f,%+.4f)" % (self.wm_hg(fast=True),self.wm_vg(fast=True),\
           self.wm_ho(fast=True),self.wm_vo(fast=True) )
     return out
Beispiel #6
0
 def status(self):
     pos = self.ty.wm()
     str = estr("UNKNOWN", color="red", type="normal")
     str += "target position (ty = %.4f)" % (pos)
     if (self.isout()):
         str = estr("target OUT", color="green", type="normal")
     (targ_in, isCCM) = self.isin()
     if (targ_in > 0 and not isCCM):
         str = estr("Target %d " % targ_in, color="yellow", type="normal")
         str += "(ty = %.4f)" % pos
     if (targ_in > 0 and isCCM):
         str = "Target %d is IN (CCM position) (ty = %.4f)" % (targ_in, pos)
     return str
Beispiel #7
0
 def status(self):
     """ Returns the status of a valve """
     #openswitch = pypsepics.get(self.__opn_di)
     #closeswitch = pypsepics.get(self.__cls_di)
     if self.isopen():
         vstatus = estr("OPEN", color='green', type='normal')
     elif self.isclosed():
         vstatus = estr("CLOSED", color='red', type='normal')
     else:
         vstatus = estr("NOT KNOWN", color='red', type='normal')
     str1 = "%s:" % self.name
     str2 = " %s" % vstatus
     str = str1.rjust(9) + str2.ljust(13)
     return str
Beispiel #8
0
    def status(self):
        if self.dis_in():
            dpos = estr("IN", color="yellow", type="normal")
        elif self.dis_out():
            dpos = estr("OUT", color="green", type="normal")
        else:
            dpos = estr("UNKNOWN", color="red", type="normal")

        str = estr("%s" % self.__desc, color="black", type="bold")
        str += " diode " + dpos
        str += " @ (dx,dy) = (%.4f,%.4f), " % (self.dx.wm(), self.dy.wm())
        str += " %s\n" % self.__target.status()
        #    str += " %s" % self.__det.status()
        return str
Beispiel #9
0
    def status(self):
        homsstat=self.__desc + " is "
        if self.is_in():
            homsstat+=estr("IN",color="yellow",type="normal")
            a_enc=self.get_angle_encoder()
            homsstat+=" (angle encoder = "+str(a_enc)+")"
        elif self.is_parked():
            homsstat+=estr("PARKED",color="green",type="normal")
        else:
            homsstat+="in "
            homsstat+=estr("UNKNOWN position",color="red",type="normal")

        
        return homsstat
Beispiel #10
0
 def status(self):
     E = self.getE()
     E0 = self.get_E0()
     leakage = self.get_leakage()
     wp = pypsepics.get(self.wp_pv)
     if self.shg:
         state = estr("400 nm", color='blue', type='normal')
     else:
         state = estr("800 nm", color='red', type='normal')
     str = "  %s: %4.4f\n" % (self.name, E)
     str += "      State: %s\n" % state
     str += "  Waveplate: %3.2f deg\n" % wp
     str += "         E0: %3.4f \n" % E0
     str += "    Leakage: %3.4f \n" % leakage
     return str
Beispiel #11
0
 def status(self):
     volt = pypsepics.get(self.pv_Volt)
     onoff = pypsepics.get(self.pv_OnOff)
     if onoff == 0:
         sstatus = estr("On", color='green', type='bold')
     elif onoff == 1:
         sstatus = estr("Off", color='red', type='bold')
     else:
         sstatus = estr("Not Known", color='white', type='normal')
     str1 = "%s:" % self.name
     str2 = " %s\n" % sstatus
     str3 = "Level:"
     str4 = " %d%%" % (self.level() * 100)
     str = str1.rjust(10) + str2.ljust(5) + str3.rjust(10) + str4.ljust(5)
     return str
 def status(self):
   pos = self.m.wm()
   if self.isin(pos):
     pos_str =  estr("IN",color="red")
   elif self.isout(pos):
     pos_str =  estr("OUT",color="green")
   else:
     pos_str = estr("UNKOWN",color="red")
   str = "Ref laser position is : %s (stage at %.3f mm)\n" % (pos_str,pos)
   str+='pico motors positions: \n'
   str+='x = %+.4f\n' % self.x.wm()
   str+='y = %+.4f\n' % self.y.wm()
   str+='rx = %+.4f\n' % self.rx.wm()
   str+='ry = %+.4f\n' % self.ry.wm()
   return str
Beispiel #13
0
    def status(self):
        v = pypsepics.get(self.pvname)
        if (v == 0):
            ret = "OUT"
        elif ((v == 4) | (v == 1)):
            ret = "IN"
        else:
            ret = "Inconsistent"

        if (ret == "OUT"):
            ret = estr(ret, color="green", type='normal')
        else:
            ret = estr(ret, color="red", type="normal")

        return ret
Beispiel #14
0
 def status(self):
     '''return a string that formats the delay and t0 '''
     retstr = 'Nanosecond laser : '
     delay = self.delay()
     if not (-5e-9 < delay < 50e-9):
         color = 'red'
         type = 'bold'
     else:
         color = 'black'
         type = 'normal'
     retstr += estr('Delay = ' + str(delay) + '\n', color=color, type=type)
     retstr += estr('                   T0 = ' + str(self.get_offset()) +
                    '\n',
                    color=color,
                    type=type)
     return retstr
Beispiel #15
0
def horizontalcolor(word):
    colorstring = ''
    for row in range(ROWS):
        for c in word:
            colorstring += estr(table[c][row], color="yellow", type="bold")
        colorstring += "\n"
    print colorstring
Beispiel #16
0
    def status(self):
        '''return a string that formats the delay and t0 '''
        retstr = 'Femtosecond laser : '
        delay = self.delay()

        retstr += estr('Delay = ' + str(delay) + '\n',
                       color='black',
                       type='normal')
        return retstr
Beispiel #17
0
def getT(att_list,E,printit=1):
  """ Check which filters are `in` and calculate the transmission
      for the energy defined with the `setE` command
      The finding is returned as dictionary """
  wait(att_list)
  n=len(att_list)
  (fin,fout,funknown)=check_filters_position(att_list)
  att_list_in=[]
  s_title = "filter# |"
  for i in range(n):
    s_title += "%d|" % i
  s_in    = " IN     |"
  s_out   = " OUT    |"
  ret = dict()
  for i in range(n):
    if i in fin:
      att_list_in.append(att_list[i])
      s_in +=estr("X",color="yellow",type="normal")+"|"
      s_out+=" |"
    elif (i in fout):
      s_in +=" |"
      s_out+=estr("X",color="green",type="normal")+"|"
    else:
      s_in +=estr("?",color="red",type="normal")+"|"
      s_out+=estr("?",color="red",type="normal")+"|"
  T = calcTrasmissionForList(att_list_in,E)
  if (E<12.500):
    T3rd = calcTrasmissionForList(att_list_in,E*3)
    ret['1st_Si'] = T
    ret['3rd_Si'] = T3rd
    s  = "Transmission for 1st harmonic (E= %.2fkeV): %.3e\n" % (E,T)
    s += "Transmission for 3rd harmonic (E=%.2fkeV): %.3e\n" % (E*3,T3rd)
  else:
    T1st = calcTrasmissionForList(att_list_in,E/3)
    ret['1st_Si'] = T1st
    ret['3rd_Si'] = T
    s  = "Transmission for 1st harmonic (E= %.2fkeV): %.3e\n" % (E/3,T1st)
    s += "Transmission for 3rd harmonic (E=%.2fkeV): %.3e\n" % (E,T)
  ret["E"]=T
  sret = s_title + "\n" + s_out + "\n" + s_in + "\n" + s
  if (printit):
    print sret
  return (ret,sret)
Beispiel #18
0
 def status(self):
     str = estr("%s " % self.__desc, color="black", type="bold")
     pos = self.y.wm()
     if (abs(pos - self.__screen_in_pos) < 5e-3):
         str += "screen is %s\n" % estr("IN", type="normal")
     elif (abs(pos - self.__diode_in_pos) < 5e-3):
         str += "diode is %s\n" % estr("IN", type="normal")
     elif (abs(pos - self.__all_out_pos) < 5e-3):
         str += "all elements are %s\n" % estr(
             "OUT", color="green", type="normal")
     else:
         str += "%s\n" % estr("UNKOWN position", type="normal")
     str += " zoom %.1f%%\n" % self.zoom.wm()
     if (self.focus is not None):
         str += " focus %.1f%%\n" % self.focus.wm()
     if (self.__led is not None):
         str += " light level %s%%\n" % self.__getlight()
     if (self.__det is not None):
         str += " %s" % self.__det.status()
     return str
Beispiel #19
0
 def status(self):
   str  = estr("**LADM Status**\n " ,color="white",type="bold")
   str += "\t%10s\t%10s\t%10s\n" % ("Motor","User","Dial")
   str += "\t%10s\t%+10.4f\t%+10.4s\n" % ("theta",self.theta.wm(),"-")
   str += "\t%10s\t%+10.4f\t%+10.4s\n" % ("XT",self.XT.wm(),"-")
   keys = self.motors.keys()
   keys.sort()
   for key in keys:
      m = self.motors[key]
      str += "\t%10s\t%+10.4f\t%+10.4f\n" % (key,m.wm(),m.wm_dial())
   return str
Beispiel #20
0
 def info(self):
     """ Returns the ion pump information """
     current = pypsepics.get(self.__imon)
     voltage = pypsepics.get(self.__vmon)
     controller = pypsepics.get(self.__vpcname)
     pumpsize = pypsepics.get(self.__pumpsize)
     statemon = pypsepics.get(self.__statemon)
     if (statemon == 0):
         state = estr("Off", color='red', type='normal')
     elif (statemon == 1):
         state = "On"
     else:
         state = estr("Unknown", color='white', type='normal')
     str = "   %s\n" % (self.status())
     str += "   Current: %.2e Amps\n" % current
     str += "   Voltage: %4.0f Volts\n" % voltage
     str += "     State: %s\n" % state
     str += "      Size: %s l/s\n" % pumpsize
     str += "Controller: %s\n" % controller
     print str
Beispiel #21
0
  def status(self):
		tolerance=2*self.y.get_par("retry_deadband")
		str  = estr("%s " % self.__desc,color="black",type="bold")
		pos = self.y.wm()
#		if ( abs(pos-self._screen_in_pos)<5e-3 ):
		if ( abs(pos-self._screen_in_pos)<tolerance ):
			str += "screen is %s   " % estr("IN",type="normal")
		elif ( abs(pos-self._diode_in_pos)<tolerance ):
			str += "diode is %s   " % estr("IN",type="normal")
		elif ( pos<self._all_out_pos+tolerance ):
			str += "is %s   " % estr("OUT",color="green",type="normal")
		else:
			str += "%s\n" % estr("UNKOWN position",type="normal")
		str += " zoom %.1f%%\n" % self.zoom.wm()
                if (self.focus is not None):
                  str += " focus %.1f%%\n" % self.focus.wm()
		if (self.__led is not None):
			str += " light level %s%%\n" % self.__getlight()
	#	if (self.__det is not None):
	#		str += " %s" % self.__det.status()
		return str
Beispiel #22
0
 def status(self):
     """ Returns the ion pump pressure reading """
     p_on = pypsepics.get(self.__statemon)
     if (p_on == 0):
         pstatus = estr("Ion Pump Off", color='white', type='normal')
     else:
         pressure = pypsepics.get(self.__pmon)
         if pressure < 5e-8:
             pstatus = estr("%.2e Torr" % pressure,
                            color='green',
                            type='normal')
         elif pressure < 1e-6:
             pstatus = estr("%.2e Torr" % pressure,
                            color='orange',
                            type='normal')
         else:
             pstatus = estr("%.2e Torr" % pressure,
                            color='red',
                            type='normal')
     str1 = "%s:" % self.name
     str2 = " %s" % pstatus
     str = str1.rjust(8) + str2.ljust(16)
     return str
Beispiel #23
0
 def status(self):
     """Prints out an overview of the VISAR bed."""
     transdis_mm=self.d()*1000.0
     etalon_mm=self._h*1000.0
     if self._z_t0!=None:
         stage_pos_mm=self.stage_pos()*1000.0
         wl_mm=self._z_t0*1000.0
     else:
         stage_pos_mm=None
         wl_mm=None
     laserwavelength_nm=self._landa*1e9
     
     statstr= "laser wavelength : %.3f nm\n" %laserwavelength_nm
     if wl_mm!=None:statstr+= "White light stage reading : %.3f mm\n" %wl_mm
     statstr+="Etalon thickness : %.3f mm\n" %etalon_mm
     statstr+="Etalon material : n="+str(self._n)+" , delta="+str(self._delta)+"\n"
     statstr+="Correct translation distance : %.3f mm\n" %transdis_mm
     if stage_pos_mm!=None: statstr+="Correct stage position : %.3f mm\n" %stage_pos_mm
     if self.m==None:statstr+="no motor etalon motor defined"
     else:
       if abs(stage_pos_mm-self.m())<0.002: statstr+=estr("Stage in position\n",color="green",type="normal")
       else : statstr+=estr("Stage NOT in position\n", color="red",type="bold")
     statstr+="Velocity Per Fringe : "+str(self.vpf0())+" m/s\n"
     print statstr
Beispiel #24
0
 def status(self):
     """ Returns the gauge reading """
     g_on = pypsepics.get(self.__statusmon)
     if (g_on != 0):
         gstatus = estr("Gauge Off", color='white', type='normal')
         str = "%s: %s" % (self.name, gstatus)
     else:
         pressure = pypsepics.get(self.__pmon)
         if pressure < 5e-8:
             gstatus = estr("%.1e Torr" % pressure,
                            color='green',
                            type='normal')
         elif pressure < 1e-6:
             gstatus = estr("%.1e Torr" % pressure,
                            color='orange',
                            type='normal')
         else:
             gstatus = estr("%.1e Torr" % pressure,
                            color='red',
                            type='normal')
     str1 = "%s:" % self.name
     str2 = " %s" % gstatus
     str = str1.rjust(10) + str2.ljust(13)
     return str
Beispiel #25
0
 def status(self):
   
   if self.is_parked():
       out="HRM is %s" % estr("PARKED",color="green",type="normal")
   else:  
       angle=self.angle=self.get_angle()
       E=self.E=self.linac.getXrayeV()
       out  = "Harmonic Rejection Mirrors (HRMS)\n"
       out += "Angle       = %.3f deg (=%.3f mrad)\n" % (angle,angle/180.*3.14*1e3)
       out += "Beam offset = %.3f mm\n" % (self.calc_offset(angle))
       out += "Aperture  y = %.3f um\n"  % (1e6*self.aperture())
       out += "Beam energy = %.3f keV\n" % (self.E/1e3)
       out += "R(1st harm) = %.3e\n"    % self.getTforE(energy=E)
       out += "R(3rd harm) = %.3e\n"    % self.getTforE(energy=3*E)
   return out
Beispiel #26
0
 def status(self):
    '''Prints the status of the shutter.'''
    statstr=self._name +' is '
    if self.isopen() : statstr+=estr('open',color='yellow',type='normal')
    else:         statstr+=estr('closed',color='green',type='normal')
    return(statstr)
Beispiel #27
0
    def info(self, toprint=1):
        pre = "%s - " % estr("IN", type="normal")
        space = " " * 3
        str = estr("LODCM Status \n", color="white", type="bold")
        tol_h1n = 2 * self.h1n.get_par("retry_deadband")
        tol_x1 = 2 * self.x1.get_par("retry_deadband")
        pos_h1n = self.h1n.wm()
        pos_x1 = self.x1.wm()
        if ((abs(pos_h1n - self._inh1n) <= tol_h1n) &
            (abs(pos_x1 - self._inx1) <= tol_x1)):
            str += "%scrystal 1 is %s\n" % (space, estr("IN", type="normal"))
        elif ((abs(pos_h1n - self._outh1n) <= tol_h1n) |
              (abs(pos_x1 - self._outx1) <= tol_x1)):
            str += "%scrystal 1 is %s\n" % (space, estr("OUT", color='green'))

        str += "%s1st crystal type: '%s'\n" % (space, self.get_t1_reflection())
        str += "%s2nd crystal type: '%s'\n" % (space, self.get_t2_reflection())

        str += "%sEnergy 1st crystal = \t %.4f keV\n" % (space, self.E1.wm())
        str += "%sEnergy 2nd crystal = \t %.4f keV\n" % (space, self.E2.wm())
        # Check for horizontal elements on the diagnostic tower
        pos = self.dh.wm()
        tol = self.dh.get_par("retry_deadband")
        if abs(pos - self._outhoriz) <= tol:
            str += "%sHorizontal elements status:\t %s\n" % (
                space, estr("OUT", color="green"))
        else:
            str += "%sHorizontal elements status:\t " % space
            tol = 3.  #for the dectris
            hslit_i = self._list_isin(self.dh)
            if abs(pos - self._indectris) <= tol:
                str += pre
                str += "Dectris \n"
            elif hslit_i == 0:
                str += pre
                str += "Slit 1 (100 micron)\n"
            elif hslit_i == 1:
                str += pre
                str += "Slit 2 (500 micron) \n"
            elif hslit_i == 2:
                str += pre
                str += "Slit 3 (1 mm) \n"
            else:
                str += "%s\n" % estr("Unkown position", type="normal")
# Check for vertical elements on the diagnostic tower
        pos = self.dv.wm()
        tol = self.dv.get_par("retry_deadband")
        if abs(pos - self._outvert) <= tol:
            str += "%sVertical elements status:\t %s\n" % (
                space, estr("OUT", color="green"))
        else:
            str += "%sVertical elements status:\t " % space
            vslit_i = self._list_isin(self.dv)
            if abs(pos - self._inyag) <= tol:
                str += pre
                str += "Yag-mono \n"
            elif vslit_i == 0:
                str += pre
                str += "Slit 1 (100 micron) \n"
            elif vslit_i == 1:
                str += pre
                str += "Slit 2 (500 micron) \n"
            elif vslit_i == 2:
                str += pre
                str += "Slit 3 (1 mm) \n"
            else:
                str += "%s\n" % estr("Unkown position", type="normal")
#Check for calibration foils
        foils = {
            0: 'Out',
            1: 'Mo',
            2: 'Zr',
            3: 'Ge',
            4: 'Cu',
            5: 'Ni',
            6: 'Fe',
            7: 'Ti'
        }
        foils_i = self._list_isin(self.df)
        if foils_i == 'no':
            str += "%sCalibration foils status:\t %s\n%s" % (
                space, estr("Unknown position", type="normal"), space)
        elif foils_i == 0:
            str += "%sCalibration foils status:\t %s\n%s" % (
                space, estr("OUT", color="green"), space)
        else:
            foil = foils[foils_i]
            str += "%sCalibration foils status:\t %s - %s\n%s" % (
                space, estr("IN", type="normal"), foil, space)
        pos = self.dd.wm()
        tol = self.dd.get_par("retry_deadband")
        if abs(pos - self._outdiode) <= tol:
            str += "Diode 1 status:\t\t %s\n" % (estr("OUT", color="green"))
        elif abs(pos - self._indiode) <= tol:
            str += "Diode 1 status:\t\t %s\n" % (estr("IN", type="normal"))
        else:
            str += "Diode 1 status:\t\t %s\n" % (estr("Unknown position",
                                                      type="normal"))
        if toprint:
            print str
        else:
            return str