本文整理汇总了Python中mi.core.instrument.instrument_fsm.InstrumentFSM.get_events方法的典型用法代码示例。如果您正苦于以下问题:Python InstrumentFSM.get_events方法的具体用法?Python InstrumentFSM.get_events怎么用?Python InstrumentFSM.get_events使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mi.core.instrument.instrument_fsm.InstrumentFSM
的用法示例。
在下文中一共展示了InstrumentFSM.get_events方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Protocol
# 需要导入模块: from mi.core.instrument.instrument_fsm import InstrumentFSM [as 别名]
# 或者: from mi.core.instrument.instrument_fsm.InstrumentFSM import get_events [as 别名]
#.........这里部分代码省略.........
else:
temp_dict.setdefault(target, {})[key] = config[key]
for name in temp_dict:
if name in self._slave_protocols:
self._slave_protocols[name].set_init_params({DriverConfigKey.PARAMETERS: temp_dict[name]})
else:
# how did we get here? This should never happen, but raise an exception if it does.
raise InstrumentParameterException('Invalid key(s) in INIT PARAMS action: %r' % temp_dict[name])
def get_config_metadata_dict(self):
"""
See base class for full description. This method is overridden to retrieve the parameter
dictionary from each slave protocol and merge them.
@return: dictionary containing driver metadata
"""
log.debug("Getting metadata dict from protocol...")
return_dict = {ConfigMetadataKey.DRIVER: self._driver_dict.generate_dict(),
ConfigMetadataKey.COMMANDS: self._cmd_dict.generate_dict(),
ConfigMetadataKey.PARAMETERS: self._param_dict.generate_dict()}
for protocol in self._slave_protocols.values():
return_dict[ConfigMetadataKey.PARAMETERS].update(protocol._param_dict.generate_dict())
return_dict[ConfigMetadataKey.COMMANDS].update(protocol._cmd_dict.generate_dict())
return return_dict
def get_resource_capabilities(self, current_state=True):
"""
Overrides base class to include slave protocol parameters
@param current_state: Boolean indicating whether we should return only the current state events
@return: (resource_commands, resource_parameters)
"""
res_cmds = self._protocol_fsm.get_events(current_state)
res_cmds = self._filter_capabilities(res_cmds)
res_params = self._param_dict.get_keys()
for protocol in self._slave_protocols.values():
res_params.extend(protocol._param_dict.get_keys())
return res_cmds, res_params
def _build_scheduler(self):
"""
Build a scheduler for periodic status updates
"""
job_name = ScheduledJob.ACQUIRE_SAMPLE
config = {
DriverConfigKey.SCHEDULER: {
job_name: {
DriverSchedulerConfigKey.TRIGGER: {
DriverSchedulerConfigKey.TRIGGER_TYPE: TriggerType.INTERVAL,
DriverSchedulerConfigKey.SECONDS: self._param_dict.get(Parameter.SAMPLE_INTERVAL)
},
}
}
}
self.set_init_params(config)
self._add_scheduler_event(ScheduledJob.ACQUIRE_SAMPLE, ProtocolEvent.ACQUIRE_SAMPLE)
def _delete_scheduler(self):
"""
Remove the autosample schedule.
"""
try:
示例2: Protocol
# 需要导入模块: from mi.core.instrument.instrument_fsm import InstrumentFSM [as 别名]
# 或者: from mi.core.instrument.instrument_fsm.InstrumentFSM import get_events [as 别名]
#.........这里部分代码省略.........
log.debug("Returning to root menu...")
# Issue an enter or two off the bat to get out of any display screens
# and confirm command mode
try:
response = self._do_cmd_resp(Command.BLANK, expected_prompt=Prompt.CMD_PROMPT)
while not str(response).lstrip().endswith(Prompt.CMD_PROMPT):
response = self._do_cmd_resp(Command.BLANK,
expected_prompt=Prompt.CMD_PROMPT)
time.sleep(1)
except InstrumentTimeoutException:
raise InstrumentProtocolException("Not able to get valid command prompt. Is instrument in command mode?")
# When you get a --> prompt, do 9's until you get back to the root
response = self._do_cmd_resp(Command.BACK_MENU,
expected_prompt=MENU_PROMPTS)
while not str(response).lstrip().endswith(Prompt.MAIN_MENU):
response = self._do_cmd_resp(Command.BACK_MENU,
expected_prompt=MENU_PROMPTS)
def _filter_capabilities(self, events):
""" Define a small filter of the capabilities
@param A list of events to consider as capabilities
@retval A list of events that are actually capabilities
"""
events_out = [x for x in events if Capability.has(x)]
return events_out
def get_resource_capabilities(self, current_state=True):
"""
"""
res_cmds = self._protocol_fsm.get_events(current_state)
res_cmds = self._filter_capabilities(res_cmds)
res_params = VisibleParameters.list()
return [res_cmds, res_params]
########################################################################
# Unknown handlers.
########################################################################
def _handler_unknown_enter(self, *args, **kwargs):
"""
Enter unknown state.
"""
# Tell driver superclass to send a state change event.
# Superclass will query the state.
self._driver_event(DriverAsyncEvent.STATE_CHANGE)
def _handler_discover(self, *args, **kwargs):
"""
Discover current state by going to the root menu
@retval (next_state, result)
"""
next_state = None
next_agent_state = None
# Try to break in case we are in auto sample
self._send_break()
next_state = ProtocolState.COMMAND
next_agent_state = ResourceAgentState.IDLE
self._go_to_root_menu()