diff --git a/src/EEHGMaster.py b/src/EEHGMaster.py
old mode 100644
new mode 100755
index 3982240bc69da2e5650c5670f81ede48e3d4dbac..62e066ee9fa7b3e6251fa15ab479d1eb9e7347ad
--- a/src/EEHGMaster.py
+++ b/src/EEHGMaster.py
@@ -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