def _handler_observatory_go_inactive(self, *args, **kwargs): """ Handler for go_inactive agent command in observatory state. Attempt to disconnect and initialize all active driver channels. Switch to inactive state if successful. """ result = None next_state = None channels = self._dvr_client.cmd_dvr('get_active_channels') dis_result = self._dvr_client.cmd_dvr('disconnect', channels) [key for (key, val) in dis_result.iteritems() if not InstErrorCode.is_error(val)] init_result = self._dvr_client.cmd_dvr('initialize', channels) result = dis_result.copy() for (key, val) in init_result.iteritems(): result[key] = val self._active_channels = self._dvr_client.cmd_dvr('get_active_channels') if len(self._active_channels)==0: next_state = InstrumentAgentState.INACTIVE return (next_state, result)
def _handler_inactive_go_active(self, dvr_comms=None, *args, **kwargs): """ Handler for go_active agent command in inactive state. Attempt to establsih communications with all device channels. Switch to active state if any channels activated. """ result = None next_state = None if not dvr_comms: dvr_comms = self._dvr_config.get('comms_config', None) cfg_result = self._dvr_client.cmd_dvr('configure', dvr_comms) channels = [key for (key, val) in cfg_result.iteritems() if not InstErrorCode.is_error(val)] con_result = self._dvr_client.cmd_dvr('connect', channels) result = cfg_result.copy() for (key, val) in con_result.iteritems(): result[key] = val self._active_channels = self._dvr_client.cmd_dvr('get_active_channels') if len(self._active_channels)>0: next_state = InstrumentAgentState.IDLE return (next_state, result)