diff --git a/src/EEHGMaster.py b/src/EEHGMaster.py index baf62028cfcb048c03efdc2b4cc445d9586cce76..97c5f8c770231086e20e8fcbf8ac7ee61d95a722 100755 --- a/src/EEHGMaster.py +++ b/src/EEHGMaster.py @@ -836,6 +836,7 @@ class EEHGMaster(Device): self.set_status('failed to connect to remote device') self.set_state(tango.DevState.ON) + self.set_status('Init ok, status ON') # PROTECTED REGION END # // EEHGMaster.init_device @@ -1980,7 +1981,7 @@ class EEHGMaster(Device): # self.error_stream('') self.error_stream('failed to read R561') self.set_state(tango.DevState.ALARM) - self.set_status('failed to read R561') + self.set_status('Alarm, failed to read R561') self._r561_curr = valore @@ -1993,7 +1994,7 @@ class EEHGMaster(Device): try: if self.dispmagnet_device.read_attribute("State").value != tango.DevState.ON: self.set_state(tango.DevState.ALARM) - self.set_status('Dispersive mag. is off') + self.set_status('Alarm, Dispersive mag. is off') valore = 100.0 else: valore = self.dispmagnet_device.read_attribute("R56").value @@ -2003,7 +2004,7 @@ class EEHGMaster(Device): # self.error_stream('') self.error_stream('failed to read R562') self.set_state(tango.DevState.ALARM) - self.set_status('failed to read R562') + self.set_status('Alarm, failed to read R562') self._r562_curr = valore @@ -2079,16 +2080,16 @@ class EEHGMaster(Device): except tango.DevFailed: self.set_state(tango.DevState.ALARM) - self.error_stream('seed device failed') - self.set_status('seed device failed') + self.error_stream('Alarm, seed device failed') + self.set_status('Alarm, seed device failed') except ValueError: self.set_state(tango.DevState.ALARM) self.error_stream('reading of seed device failed') - self.set_status('reading of seed device failed') + self.set_status('Alarm, reading of seed device failed') else: self.set_state(tango.DevState.ALARM) - self.set_status('seed device not initialized') + self.set_status('Alarm, seed device not initialized') #print(float(self.lambda_s1.get_properties().min_value) * 1.1) @@ -2102,12 +2103,12 @@ class EEHGMaster(Device): # 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.set_status('Alarm, failed to read waist 1') self._waist_s1 = valore else: self.set_state(tango.DevState.ALARM) - self.set_status('seed ccd1 device not initialized') + self.set_status('Alarm, seed ccd1 device not initialized') # leggo l'attributo waist s2 if self.seedccd2_device: @@ -2119,13 +2120,13 @@ class EEHGMaster(Device): # self.error_stream('') self.error_stream('failed to read waist 2') self.set_state(tango.DevState.ALARM) - self.set_status('failed to read waist 2') + self.set_status('Alarm, failed to read waist 2') self._waist_s2 = valore else: self.set_state(tango.DevState.ALARM) - self.set_status('seed ccd2 device not initialized') + self.set_status('Alarm, seed ccd2 device not initialized') pass # PROTECTED REGION END # // EEHGMaster.ReadFromField @@ -2153,7 +2154,7 @@ class EEHGMaster(Device): # self.delayline_device.write_attribute("R56", self._r561) self.dispmagnet_device.write_attribute("R56", self._r562) except tango.DevFailed: - self.error_stream('failed to Set R56s') + self.error_stream('Fault: failed to Set R56s') self.set_state(tango.DevState.FAULT) return -1 @@ -2192,12 +2193,13 @@ class EEHGMaster(Device): pass self.seedmaster_device.write_attribute("wavelength2", self._lambda_s2) except tango.DevFailed: - self.error_stream('failed to Set Seeds') + self.error_stream('Fault, failed to Set Seeds') self.set_state(tango.DevState.FAULT) - return + return -1 self.set_state(tango.DevState.ON) self.set_status('back to ON') + return 0 # PROTECTED REGION END # // EEHGMaster.ApplySeeds def is_ApplySeeds_allowed(self): @@ -2246,7 +2248,8 @@ class EEHGMaster(Device): except tango.DevFailed: self.error_stream('failed to Set SuperGap') self.set_state(tango.DevState.FAULT) - return + self.set_status('Fault: failed to set SuperGap') + return -1 sleep(1) try: pass @@ -2254,15 +2257,17 @@ class EEHGMaster(Device): except tango.DevFailed as e: self.error_stream('failed to SuperGap Apply') self.set_state(tango.DevState.FAULT) + self.set_status('Fault: failed to set SuperGap') tango.Except.re_throw_exception(e, 'SuperGap Apply failed', 'command_inout failed', 'ApplyCalculatedValues') - return + return -1 self.set_state(tango.DevState.ON) - self.set_status('back to ON') - + self.set_status('ready and ON') + return 0 + # PROTECTED REGION END # // EEHGMaster.ApplyIDs def is_ApplyIDs_allowed(self): @@ -2281,9 +2286,20 @@ class EEHGMaster(Device): :return:None """ - self.ApplySeeds() - self.ApplyIDs() - self.ApplyR56s() + if self.ApplyR56s(): + self.set_state(tango.DevState.FAULT) + self.set_status('Fault: failed to set R56') + return + + if self.ApplySeeds(): + self.set_state(tango.DevState.FAULT) + self.set_status('Fault: failed to set Seeds') + return + + if self.ApplyIDs(): + self.set_state(tango.DevState.FAULT) + self.set_status('Fault: failed to set IDs') + # PROTECTED REGION END # // EEHGMaster.ApplyAll def is_ApplyAll_allowed(self): diff --git a/src/EEHGMaster.xmi b/src/EEHGMaster.xmi index 1e0cc3e75aa1934e5dc6772cb892535dc0b513dd..181a9bdf90b7c44676943202bf14b9ee70921ffe 100644 --- a/src/EEHGMaster.xmi +++ b/src/EEHGMaster.xmi @@ -78,7 +78,6 @@ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <excludedStates>RUNNING</excludedStates> <excludedStates>MOVING</excludedStates> - <excludedStates>FAULT</excludedStates> </commands> <commands name="ReadFromField" description="reads from field the attribute `current` values" execMethod="read_from_field" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> @@ -89,6 +88,7 @@ </argout> <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <excludedStates>RUNNING</excludedStates> + <excludedStates>MOVING</excludedStates> </commands> <commands name="ApplyR56s" description="Applica la soluzione sulle sezioni dispersive" execMethod="apply_r56s" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> @@ -149,7 +149,6 @@ <writeExcludedStates>MOVING</writeExcludedStates> <writeExcludedStates>FAULT</writeExcludedStates> <writeExcludedStates>ALARM</writeExcludedStates> - <writeExcludedStates>UNKNOWN</writeExcludedStates> </attributes> <attributes name="n" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> <dataType xsi:type="pogoDsl:ShortType"/> @@ -174,7 +173,6 @@ <writeExcludedStates>MOVING</writeExcludedStates> <writeExcludedStates>FAULT</writeExcludedStates> <writeExcludedStates>ALARM</writeExcludedStates> - <writeExcludedStates>UNKNOWN</writeExcludedStates> </attributes> <attributes name="n_fixed" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> <dataType xsi:type="pogoDsl:BooleanType"/> @@ -728,9 +726,6 @@ <states name="ALARM" description="No solutions avaliable"> <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> </states> - <states name="UNKNOWN" description="Condizione in cui non si conosce li stato dei device sotto."> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </states> <preferences docHome="./doc_html" makefileHome="/usr/local/tango-9.3.4/share/pogo/preferences"/> </classes> </pogoDsl:PogoSystem>