本文整理汇总了Python中mi.core.instrument.protocol_param_dict.ProtocolParameterDict.add_parameter方法的典型用法代码示例。如果您正苦于以下问题:Python ProtocolParameterDict.add_parameter方法的具体用法?Python ProtocolParameterDict.add_parameter怎么用?Python ProtocolParameterDict.add_parameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mi.core.instrument.protocol_param_dict.ProtocolParameterDict
的用法示例。
在下文中一共展示了ProtocolParameterDict.add_parameter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DataSetDriver
# 需要导入模块: from mi.core.instrument.protocol_param_dict import ProtocolParameterDict [as 别名]
# 或者: from mi.core.instrument.protocol_param_dict.ProtocolParameterDict import add_parameter [as 别名]
#.........这里部分代码省略.........
return_dict = {}
return_dict[ConfigMetadataKey.DRIVER] = self._driver_dict.generate_dict()
return_dict[ConfigMetadataKey.COMMANDS] = self._cmd_dict.generate_dict()
return_dict[ConfigMetadataKey.PARAMETERS] = self._param_dict.generate_dict()
return return_dict
def _verify_config(self):
"""
virtual method to verify the supplied driver configuration is value. Must
be overloaded in sub classes.
raises an ConfigurationException when a configuration error is detected.
"""
raise NotImplementedException('virtual methond needs to be specialized')
def _build_driver_dict(self):
"""
Populate the driver dictionary with options
"""
pass
def _build_command_dict(self):
"""
Populate the command dictionary with command.
"""
self._cmd_dict.add(DriverEvent.START_AUTOSAMPLE, display_name="start autosample")
self._cmd_dict.add(DriverEvent.STOP_AUTOSAMPLE, display_name="stop autosample")
def _build_param_dict(self):
"""
Setup three common driver parameters
"""
self._param_dict.add_parameter(
Parameter(
DriverParameter.RECORDS_PER_SECOND,
int,
value=60,
type=ParameterDictType.INT,
visibility=ParameterDictVisibility.IMMUTABLE,
display_name="Records Per Second",
description="Number of records to process per second")
)
self._param_dict.add_parameter(
Parameter(
DriverParameter.PUBLISHER_POLLING_INTERVAL,
float,
value=1,
type=ParameterDictType.FLOAT,
visibility=ParameterDictVisibility.IMMUTABLE,
display_name="Harvester Polling Interval",
description="Duration in minutes to wait before checking for new files.")
)
self._param_dict.add_parameter(
Parameter(
DriverParameter.BATCHED_PARTICLE_COUNT,
int,
value=1,
type=ParameterDictType.INT,
visibility=ParameterDictVisibility.IMMUTABLE,
display_name="Batched Particle Count",
description="Number of particles to batch before sending to the agent")
)
示例2: TestUnitProtocolParameterDict
# 需要导入模块: from mi.core.instrument.protocol_param_dict import ProtocolParameterDict [as 别名]
# 或者: from mi.core.instrument.protocol_param_dict.ProtocolParameterDict import add_parameter [as 别名]
#.........这里部分代码省略.........
# Now let's only have it update 1 parameter using a list
sample_input = "foo=300, bar=400"
self.assertTrue(self.param_dict.update(sample_input, target_params=["foo"]))
self.assertEquals(self.param_dict.get("foo"), 300)
self.assertEquals(self.param_dict.get("bar"), 200)
# Test our exceptions
with self.assertRaises(KeyError):
self.param_dict.update(sample_input, "key_does_not_exist")
with self.assertRaises(InstrumentParameterException):
self.param_dict.update(sample_input, {'bad': "key_does_not_exist"})
def test_visibility_list(self):
lst = self.param_dict.get_visibility_list(ParameterDictVisibility.READ_WRITE)
lst.sort()
self.assertEquals(lst, ["bar", "foo"])
lst = self.param_dict.get_visibility_list(ParameterDictVisibility.DIRECT_ACCESS)
lst.sort()
self.assertEquals(lst, ["baz", "qut"])
lst = self.param_dict.get_visibility_list(ParameterDictVisibility.READ_ONLY)
lst.sort()
self.assertEquals(lst, ["bat", "qux"])
lst = self.param_dict.get_visibility_list(ParameterDictVisibility.IMMUTABLE)
lst.sort()
self.assertEquals(lst, ["dil", "pho"])
def test_function_values(self):
"""
Make sure we can add and update values with functions instead of patterns
"""
self.param_dict.add_parameter(
FunctionParameter("fn_foo",
self.pick_byte2,
lambda x: str(x),
direct_access=True,
startup_param=True,
value=1,
visibility=ParameterDictVisibility.READ_WRITE)
)
self.param_dict.add_parameter(
FunctionParameter("fn_bar",
lambda x: bool(x & 2), # bit map example
lambda x: str(x),
direct_access=True,
startup_param=True,
value=False,
visibility=ParameterDictVisibility.READ_WRITE)
)
# check defaults just to be safe
val = self.param_dict.get("fn_foo")
self.assertEqual(val, 1)
val = self.param_dict.get("fn_bar")
self.assertEqual(val, False)
self.param_dict.update(1005) # just change first in list
val = self.param_dict.get("fn_foo")
self.assertEqual(val, 3)
val = self.param_dict.get("fn_bar")
self.assertEqual(val, False)
# fn_bar does not get updated here
result = self.param_dict.update_many(1205)
示例3: DataSetDriver
# 需要导入模块: from mi.core.instrument.protocol_param_dict import ProtocolParameterDict [as 别名]
# 或者: from mi.core.instrument.protocol_param_dict.ProtocolParameterDict import add_parameter [as 别名]
#.........这里部分代码省略.........
raise InstrumentParameterException("%s must be > 0" % key)
self._param_dict.set_value(key, val)
# Set the driver parameters
self._generate_particle_count = self._param_dict.get(DriverParameter.BATCHED_PARTICLE_COUNT)
self._particle_count_per_second = self._param_dict.get(DriverParameter.RECORDS_PER_SECOND)
self._polling_interval = self._param_dict.get(DriverParameter.HARVESTER_POLLING_INTERVAL)
log.trace("Driver Parameters: %s, %s, %s", self._polling_interval, self._particle_count_per_second, self._generate_particle_count)
def get_resource(self, *args, **kwargs):
"""
Get driver parameter
"""
result = {}
try:
params = args[0]
except IndexError:
raise InstrumentParameterException('Set command requires a parameter list.')
# If all params requested, retrieve config.
if params == DriverParameter.ALL:
result = self._param_dict.get_config()
# If not all params, confirm a list or tuple of params to retrieve.
# Raise if not a list or tuple.
# Retrieve each key in the list, raise if any are invalid.
else:
if not isinstance(params, (list, tuple)):
raise InstrumentParameterException('Get argument not a list or tuple.')
result = {}
for key in params:
try:
val = self._param_dict.get(key)
result[key] = val
except KeyError:
raise InstrumentParameterException(('%s is not a valid parameter.' % key))
return result
def _verify_config(self):
"""
virtual method to verify the supplied driver configuration is value. Must
be overloaded in sub classes.
raises an ConfigurationException when a configuration error is detected.
"""
raise NotImplementedException('virtual methond needs to be specialized')
def _build_param_dict(self):
"""
Setup three common driver parameters
"""
self._param_dict.add_parameter(
Parameter(
DriverParameter.RECORDS_PER_SECOND,
int,
value=60,
type=ParameterDictType.INT,
display_name="Records Per Second",
description="Number of records to process per second")
)
self._param_dict.add_parameter(
Parameter(
DriverParameter.HARVESTER_POLLING_INTERVAL,
float,
value=1,
type=ParameterDictType.FLOAT,
display_name="Harvester Polling Interval",
description="Duration in minutes to wait before checking for new files.")
)
self._param_dict.add_parameter(
Parameter(
DriverParameter.BATCHED_PARTICLE_COUNT,
int,
value=1,
type=ParameterDictType.INT,
display_name="Batched Particle Count",
description="Number of particles to batch before sending to the agent")
)
config = self._config.get(DataSourceConfigKey.DRIVER, {})
log.debug("set_resource on startup with: %s", config)
self.set_resource(config)
def _start_publisher_thread(self):
self._publisher_thread = gevent.spawn(self._poll)
def _stop_publisher_thread(self):
self._publisher_thread.kill()
def _poll(self):
raise NotImplementedException('virtual methond needs to be specialized')
def _new_file_exception(self):
raise NotImplementedException('virtual methond needs to be specialized')