Skip to content
Snippets Groups Projects
Commit 296cf02b authored by Mauro Trovo's avatar Mauro Trovo :headphones:
Browse files

read from field

parent e3b080dc
No related branches found
No related tags found
No related merge requests found
src/EEHGMaster.py 100644 → 100755
......@@ -640,6 +640,90 @@ class EEHGMaster(Device):
Device.init_device(self)
# PROTECTED REGION ID(EEHGMaster.init_device) ENABLED START #
self._fel_mode = ''
self.seed_dev_atts_toread = ['State', 'wavelength', 'bandwidth',
'energy', 'energy_max', 'wavelength2',
'bandwidth2', 'energy2', 'energy2_max']
# definisco delle variabili di servizio per i limiti sup. dell'en. seed
self.nrg_s1_range = 50.0
self.nrg_s2_range = 20.0
# inizializzo i devices:
# SeedCcd1Dev
# - Device da cui leggere HorSigma che diventa waist_s1
# SeedCcd2Dev
# - Device da cui leggere HorSigma che diventa waist_s2
# self.xx_device = None #prototipoSeedCcd1Dev
# if self.XxDev:
# try:
# self.xx_device = tango.DeviceProxy(self.XxDevDev)
# except Exception as e:
# self.error_stream("Failed to connect to remote device: {}".format(e))
# self.set_state(tango.DevState.FAULT)
# self.set_status('failed to connect to remote device')
self.masterfel1_device = None
if self.MasterFel1Dev:
try:
self.masterfel1_device = tango.DeviceProxy(self.MasterFel1Dev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.sclmagnet_device = None
if self.SclMagnetDev:
try:
self.xx_device = tango.DeviceProxy(self.SclMagnetDev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.delayline_device = None
if self.DelayLineDev:
try:
self.delayline_device = tango.DeviceProxy(self.DelayLineDev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.dispmagnet_device = None
if self.DispersiveMagDev:
try:
self.dispmagnet_device = tango.DeviceProxy(self.DispersiveMagDev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.seedmaster_device = None #prototipo
if self.SeedMasterDev:
try:
self.seedmaster_device = tango.DeviceProxy(self.SeedMasterDev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.seedccd1_device = None
if self.SeedCcd1Dev:
try:
self.seedccd1_device = tango.DeviceProxy(self.SeedCcd1Dev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
self.seedccd2_device = None
if self.SeedCcd2Dev:
try:
self.seedccd2_device = tango.DeviceProxy(self.SeedCcd2Dev)
except Exception as e:
self.error_stream("Failed to connect to remote device: {}".format(e))
self.set_state(tango.DevState.FAULT)
self.set_status('failed to connect to remote device')
# PROTECTED REGION END # // EEHGMaster.init_device
......@@ -1416,8 +1500,191 @@ class EEHGMaster(Device):
"""
reads from field the attribute `current` values
:return:None
:return:Non
"""
# leggo il primo attributo Lambda fel
if self.masterfel1_device:
try:
lambdaf = self.masterfel1_device.read_attribute("LambdaFEL").value
except tango.DevFailed:
lambdaf = 13.3
# self.error_stream('')
self.error_stream('failed to read lambda FEL')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read lambda FEL')
self.lambda_fel_curr = lambdaf
else:
self.set_state(tango.DevState.ALARM)
self.set_status('device not initialized')
# leggo il secondo attributo energy
if self.sclmagnet_device:
try:
valore = self.sclmagnet_device.read_attribute("MagnetEnergy").value
except tango.DevFailed:
valore = 1.2
# self.error_stream('')
self.error_stream('failed to read beam energy')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read beam energy')
self.e_nrg_fel = valore
else:
self.set_state(tango.DevState.ALARM)
self.set_status('device not initialized')
# leggo il terzo attributo r561
if self.delayline_device:
try:
valore = self.delayline_device.read_attribute("R56").value
except tango.DevFailed:
valore = 100.0
# self.error_stream('')
self.error_stream('failed to read R561')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read R561')
self.r561_curr = valore
else:
self.set_state(tango.DevState.ALARM)
self.set_status('delay line device not initialized')
# leggo il terzo attributo r562
if self.dispmagnet_device:
try:
valore = self.dispmagnet_device.read_attribute("R56").value
except tango.DevFailed:
valore = 2.0
# self.error_stream('')
self.error_stream('failed to read R562')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read R562')
self.r562_curr = valore
else:
self.set_state(tango.DevState.ALARM)
self.set_status('disp. mag. device not initialized')
# leggo gli attributi del seed
if self.seedmaster_device:
try:
attrs = self.seedmaster_device.read_attributes(self.seed_dev_atts_toread)
# self.set_state(attrs[0].value)
if attrs[1].quality != tango.AttrQuality.ATTR_INVALID:
self.lambda_s1_curr = attrs[1].value
else:
self.lambda_s1_curr = 260.0
if attrs[2].quality != tango.AttrQuality.ATTR_INVALID:
self.dlambda_s1 = attrs[2].value
else:
self.dlambda_s1 = 1.0
if attrs[3].quality != tango.AttrQuality.ATTR_INVALID:
self.nrg_s1_curr = attrs[3].value
else:
self.nrg_s1_curr = 5.0
if attrs[4].quality != tango.AttrQuality.ATTR_INVALID:
self.nrg_s1_range = attrs[4].value
# #leggo:
# cfg = self.idev.get_attribute_config('Gap')
# self.min_mech_gap = float(cfg.min_value)
# self.max_mech_gap = float(cfg.max_value)
# #scrivo:
# self.set_attribute_config('nrg_s1'max_value, str(self.nrg_s1_range))
self.nrg_s1.max_value = self.nrg_s1_range
else:
self.nrg_s1_range = 50.0
if attrs[5].quality != tango.AttrQuality.ATTR_INVALID:
self.lambda_s2_curr = attrs[5].value
else:
self.lambda_s2_curr = 255.0
if attrs[6].quality != tango.AttrQuality.ATTR_INVALID:
self.dlambda_s2 = attrs[6].value
else:
self.dlambda_s2 = 1.0
if attrs[7].quality != tango.AttrQuality.ATTR_INVALID:
self.nrg_s2_curr = attrs[7].value
else:
self.nrg_s2_curr = 10.0
if attrs[8].quality != tango.AttrQuality.ATTR_INVALID:
self.nrg_s2_range = attrs[8].value
else:
self.nrg_s2_range = 50.0
except tango.DevFailed:
self.set_state(tango.DevState.ALARM)
self.error_stream('seed device failed')
self.set_status('seed device failed')
except ValueError:
self.lambda_s1_curr = 260.0
self.dlambda_s1 = 1.0
self.nrg_s1_curr = 5.0
self.lambda_s2_curr = 255.0
self.dlambda_s2 = 1.0
self.nrg_s2_curr = 10.0
self.set_state(tango.DevState.ALARM)
self.error_stream('reading of seed device failed')
self.set_status('reading of seed device failed')
else:
self.set_state(tango.DevState.ALARM)
self.set_status('seed device not initialized')
# leggo l'attributo waist s1
if self.seedccd1_device:
try:
valore = self.seedccd1_device.read_attribute("HorSigma").value
except tango.DevFailed:
valore = 0.3
# self.error_stream('')
self.error_stream('failed to read waist 1')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read waist 1')
self.waist_s1 = valore
else:
self.set_state(tango.DevState.ALARM)
self.set_status('disp. mag. device not initialized')
# leggo l'attributo waist s2
if self.seedccd2_device:
try:
valore = self.seedccd2_device.read_attribute("HorSigma").value
except tango.DevFailed:
valore = 0.2
# self.error_stream('')
self.error_stream('failed to read waist 1')
self.set_state(tango.DevState.ALARM)
self.set_status('failed to read waist 1')
self.waist_s2 = valore
else:
self.set_state(tango.DevState.ALARM)
self.set_status('disp. mag. device not initialized')
pass
# PROTECTED REGION END # // EEHGMaster.ReadFromField
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment