Loading csp-lmc-common/csp_lmc_common/CspSubarray.py +47 −4 Original line number Diff line number Diff line Loading @@ -349,15 +349,25 @@ class CspSubarray(SKASubarray): class OffCommand(SKASubarray.OffCommand): def do(self): self.results = None self.logger.info("Call Off Command") device = self.target for fqdn in device._sc_subarray_fqdn: try: # check if the sub-element subarray is already in the # requested state if device._sc_subarray_state[fqdn] == tango.DevState.OFF: continue (result_code, message) = device._sc_subarray_proxies[fqdn].Off() if device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: device._command_thread['offsequenze'] = threading.Thread(target=self.off_sequence, name="Thread-OffSequence", args=(fqdn,self.results)) (result_code, message) = self.results if result_code == ResultCode.FAILED: self.logger.error("Off command failed on device {}".format(fqdn)) if fqdn != device.CbfSubarray: Loading @@ -365,13 +375,46 @@ class CspSubarray(SKASubarray): continue else: return (ResultCode.FAILED, message) except tango.DevFailed as tango_err: message = str(tango_err.args[0].desc) return (ResultCode.FAILED, message) message = "Off command completed OK" self.logger.info(message) return (ResultCode.OK, message) except tango.DevFailed as tango_err: message = str(tango_err.args[0].desc) return (ResultCode.FAILED, message) def off_sequence(self, fqdn): device = self.target starting_time = time.time() timeout = device._sc_subarray_cmd_duration_expected[fqdn]['off'] while (time.time() - starting_time) < timeout and device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: try: device._sc_subarray_proxies[fqdn].Abort() while device._sc_subarray_obs_state is not ObsState.ABORTED: if device._sc_subarray_obs_state==ObsState.FAULT: break pass except ska.base.commands.CommandError: pass try: device._sc_subarray_obs_state[fqdn].Restart() except ska.base.commands.CommandError: pass time.sleep(0.1) #IF SUCCESS if device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: self.results = device._sc_subarray_proxies[fqdn].Off() # comando succeded. #IF TIMEOUT if (time.time() - starting_time) > timeout: class AssignResourcesCommand(SKASubarray.AssignResourcesCommand): @transaction_id Loading Loading
csp-lmc-common/csp_lmc_common/CspSubarray.py +47 −4 Original line number Diff line number Diff line Loading @@ -349,15 +349,25 @@ class CspSubarray(SKASubarray): class OffCommand(SKASubarray.OffCommand): def do(self): self.results = None self.logger.info("Call Off Command") device = self.target for fqdn in device._sc_subarray_fqdn: try: # check if the sub-element subarray is already in the # requested state if device._sc_subarray_state[fqdn] == tango.DevState.OFF: continue (result_code, message) = device._sc_subarray_proxies[fqdn].Off() if device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: device._command_thread['offsequenze'] = threading.Thread(target=self.off_sequence, name="Thread-OffSequence", args=(fqdn,self.results)) (result_code, message) = self.results if result_code == ResultCode.FAILED: self.logger.error("Off command failed on device {}".format(fqdn)) if fqdn != device.CbfSubarray: Loading @@ -365,13 +375,46 @@ class CspSubarray(SKASubarray): continue else: return (ResultCode.FAILED, message) except tango.DevFailed as tango_err: message = str(tango_err.args[0].desc) return (ResultCode.FAILED, message) message = "Off command completed OK" self.logger.info(message) return (ResultCode.OK, message) except tango.DevFailed as tango_err: message = str(tango_err.args[0].desc) return (ResultCode.FAILED, message) def off_sequence(self, fqdn): device = self.target starting_time = time.time() timeout = device._sc_subarray_cmd_duration_expected[fqdn]['off'] while (time.time() - starting_time) < timeout and device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: try: device._sc_subarray_proxies[fqdn].Abort() while device._sc_subarray_obs_state is not ObsState.ABORTED: if device._sc_subarray_obs_state==ObsState.FAULT: break pass except ska.base.commands.CommandError: pass try: device._sc_subarray_obs_state[fqdn].Restart() except ska.base.commands.CommandError: pass time.sleep(0.1) #IF SUCCESS if device._sc_subarray_obs_state[fqdn] is not ObsState.EMPTY: self.results = device._sc_subarray_proxies[fqdn].Off() # comando succeded. #IF TIMEOUT if (time.time() - starting_time) > timeout: class AssignResourcesCommand(SKASubarray.AssignResourcesCommand): @transaction_id Loading