forked from M-Labs/artiq
environment: add unit feature
This commit is contained in:
parent
833fd8760e
commit
748707e157
|
@ -337,13 +337,21 @@ class HasEnvironment:
|
||||||
self.kernel_invariants = kernel_invariants | {key}
|
self.kernel_invariants = kernel_invariants | {key}
|
||||||
|
|
||||||
@rpc(flags={"async"})
|
@rpc(flags={"async"})
|
||||||
def set_dataset(self, key, value,
|
def set_dataset(self, key, value, *,
|
||||||
|
unit=None, scale=None, precision=None,
|
||||||
broadcast=False, persist=False, archive=True):
|
broadcast=False, persist=False, archive=True):
|
||||||
"""Sets the contents and handling modes of a dataset.
|
"""Sets the contents and handling modes of a dataset.
|
||||||
|
|
||||||
Datasets must be scalars (``bool``, ``int``, ``float`` or NumPy scalar)
|
Datasets must be scalars (``bool``, ``int``, ``float`` or NumPy scalar)
|
||||||
or NumPy arrays.
|
or NumPy arrays.
|
||||||
|
|
||||||
|
:param unit: A string representing the unit of the value.
|
||||||
|
:param scale: A numerical factor that is used to adjust the value of
|
||||||
|
the dataset to match the scale or units of the experiment's
|
||||||
|
reference frame when the value is displayed.
|
||||||
|
:param precision: The maximum number of digits to print after the
|
||||||
|
decimal point. Set ``precision=None`` to print as many digits as
|
||||||
|
necessary to uniquely specify the value. Uses IEEE unbiased rounding.
|
||||||
:param broadcast: the data is sent in real-time to the master, which
|
:param broadcast: the data is sent in real-time to the master, which
|
||||||
dispatches it.
|
dispatches it.
|
||||||
:param persist: the master should store the data on-disk. Implies
|
:param persist: the master should store the data on-disk. Implies
|
||||||
|
@ -351,7 +359,14 @@ class HasEnvironment:
|
||||||
:param archive: the data is saved into the local storage of the current
|
:param archive: the data is saved into the local storage of the current
|
||||||
run (archived as a HDF5 file).
|
run (archived as a HDF5 file).
|
||||||
"""
|
"""
|
||||||
self.__dataset_mgr.set(key, value, broadcast, persist, archive)
|
metadata = {}
|
||||||
|
if unit is not None:
|
||||||
|
metadata["unit"] = unit
|
||||||
|
if scale is not None:
|
||||||
|
metadata["scale"] = scale
|
||||||
|
if precision is not None:
|
||||||
|
metadata["precision"] = precision
|
||||||
|
self.__dataset_mgr.set(key, value, metadata, broadcast, persist, archive)
|
||||||
|
|
||||||
@rpc(flags={"async"})
|
@rpc(flags={"async"})
|
||||||
def mutate_dataset(self, key, index, value):
|
def mutate_dataset(self, key, index, value):
|
||||||
|
|
Loading…
Reference in New Issue