def set(self, value): from CA import caput value = caput(self.prefix + name.upper(), value)
def set_bytesize(self, value): caput(self.port + ".DBIT", self.bytesizes.index(value))
def set_stopbits(self, value): caput(self.port + ".SBIT", value)
def set_PIDCOF(self,value): from CA import caput,cawait if self.get_PIDCOF() != value: print('setting PIDCOF: %r -> %r' %(self.get_PIDCOF(),value)) caput(self.lightwave_prefix + '.PIDCOF',value) cawait(self.lightwave_prefix + '.PIDCOF')
def set_y_control(self, value): return caput(self.y_PV, value)
def set_value(self, value): caput(self.name, value)
def set_set_oasisT(self,value): from CA import caput from numpy import isnan if self.get_set_oasisT() != float(value): if value is not isnan: caput(self.oasis_prefix+'.VAL', value = float(value))
def event_receiver_setup(): for trigger in triggers: caput(trigger["EVR"] + ":EVENT%sNAME" % trigger["row"], trigger["name"]) caput(trigger["EVR"] + ":EVENT%sCTRL.ENM" % trigger["row"], trigger["event_code"]) caput(trigger["EVR"] + ":EVENT%sCTRL.ENAB" % trigger["row"], 1) for row in range(1, 15): caput( trigger["EVR"] + ":EVENT%sCTRL.OUT%d" % (row, trigger["channel"]), row == trigger["row"]) # Reset event counter to zero. caput(trigger["EVR"] + ":EVENT%sCNT" % trigger["row"], 0) # Enable event counter. caput(trigger["EVR"] + ":EVENT%sCRTL.VME" % trigger["row"], 1) # Enable the trigger output caput(trigger["EVR"] + ":CTRL.DG%sE" % trigger["channel"], 1) # Polarity normal caput(trigger["EVR"] + ":CTRL.DG%sP" % trigger["channel"], 0) # Program output pulse length of event receiver to 8.333 ms. caput(trigger["EVR"] + ":CTRL.DG%sW" % trigger["channel"], 8400) caput(trigger["EVR"] + ":CTRL.DG%sC" % trigger["channel"], 119)
def set_timeout(self,value): caput(self.port+".TMOT",value) timeout = property(get_timeout,set_timeout,
def set_region_offset_y(self, value): from CA import caput caput(self.prefix + '.region_offset_y', int(value))
def stop(): """Start event sequencer""" caput("ECS:SYS0:3:PLYCTL", 0)
def set_region_size_x(self, value): from CA import caput caput(self.prefix + '.region_size_x', int(value))
def shutdown_server(self): from CA import caput caput(self.prefix + '.KILL', 'shutdown')
def set_enabled(self, value): from CA import caput caput('NIH:SAMPLE_FROZEN_OPT_RGB:ENABLED', value)
def set_y_control(self,value): return caput(self.y_PV,value) y_control = property(get_y_control,set_y_control)
def set_stopbits(self,value): caput(self.port+".SBIT",value) stopbits = property(get_stopbits,set_stopbits,
def set_x_control(self,value): return caput(self.x_PV,value) x_control = property(get_x_control,set_x_control)
def query(self,string,terminator="",count=0): """Receive data, until either the terminator character was received, the number of bytes given by 'count' have have received or a timeout has occurred.""" # The first 'caget' after python statup always fails. As a work-around, use a # dummy caget just in case. if caget(self.port+".TMOD") != 0: caput(self.port+".TMOD",0,wait=True) # 0 = write/read if caget(self.port+".OEOS") != "": caput(self.port+".OEOS","\0",wait=True) # not output terminator if terminator: if caget(self.port+".IEOS") != terminator: caput(self.port+".IEOS",terminator,wait=True) # input terminator else: if caget(self.port+".IEOS") != "": caput(self.port+".IEOS","\0",wait=True) # "\0" = none if caget(self.port+".IFMT") != 1: caput(self.port+".IFMT",1,wait=True) # 1 = hybrid if caget(self.port+".SCAN") != 0: caput(self.port+".SCAN",0,wait=True) # 0 = passive if caget(self.port+".NRRD") != count: caput(self.port+".NRRD",count,wait=True) # number of chars (0 = unlimited) # If case string contains binary data, EpicsCA would strip away trailing # null characters. Sending non-ASCII chacters as except codes # makes sure that null characters are sent, too. encoded_string = repr(string)[1:-1] caput(self.port+".AOUT",encoded_string,wait=True) # With EpicsCA it is (as of June 2009) not possible to reliably retreive # special characters from the BINP (binary input) variable, because # EpicsCA strips off trailing carriage return and null characters # before passing back a string. Thus, I read the TINP (Text input) # variable instead. timeout = caget(self.port+".TMOT") camonitor(self.port+".TINP",timeout=timeout) reply = caget(self.port+".TINP") if not reply: reply = "" n = caget(self.port+".NORD") if n == None: n = 0 if n == 0: return "" # nothing read # Special characters in the TINP field are encoded as octal # escape sequences. Decode them. reply = eval("'"+reply+"'") if caget(self.port+".EOMR") == 2: # 2 = EOS return reply+terminator # terminator was stripped off, add it back return reply
def set_set_lightwaveT(self,value): from CA import caput, cawait from numpy import isnan if value is not isnan: caput(self.lightwave_prefix + '.VAL', value = float(value)) cawait(self.lightwave_prefix + '.VAL')
def set_array(self, value): from CA import caput caput(self.PV_name, value)
def set_DCOF(self,value): from CA import caput,cawait if self.get_DCOF() != value: caput(self.lightwave_prefix + '.DCOF',value) cawait(self.lightwave_prefix + '.DCOF')
def set_global_value(name, value): from CA import caput caput(Configuration.global_PV_name(name), value)
def set_x_control(self, value): return caput(self.x_PV, value)
def set_motor_value(self, name, motor_num, value): from CA import caput caput(self.motor_PV_name(name, motor_num), value)
def set_baudrate(self, value): caput(self.port + ".BAUD", self.baudrates.index(value))
def set_PV(PV_name, value): from CA import caput caput(PV_name, value)
def set_parity(self, value): caput(self.port + ".PRTY", self.parities.index(value))
def set_value(self, insert): from CA import caput from time import time if insert != self.value: self.time_changed = time() if insert: caput("14IDB:DAC1_3.VAL", 0) else: caput("14IDB:DAC1_3.VAL", 5)
def set_rtscts(self, value): caput(self.port + ".FCTL", self.use_rtscts.index(value))
def call(self): from CA import caput value = caput(self.prefix + name, 1)