pcdsdevices.signal.FakeEpicsSignalEditMD
- class pcdsdevices.signal.FakeEpicsSignalEditMD(*args, enum_attrs: list[str | None] | None = None, enum_strs: list[str] | None = None, **kwargs)
API stand-in for EpicsSignalEditMD Add to this if you need it to actually work for your test.
Methods
- describe()
Provide schema and meta-data for
read()
This keys in the
OrderedDict
this method returns must match the keys in theOrderedDict
return byread()
.This provides schema related information, (ex shape, dtype), the source (ex PV name), and if available, units, limits, precision etc.
- Returns:
data_keys (OrderedDict) – The keys must be strings and the values must be dict-like with the
event_model.event_descriptor.data_key
schema.
- get(*, as_string=None, connection_timeout=1.0, **kwargs)
Implement getting as enum strings
- read()
Put the status of the signal into a simple dictionary format for data acquisition
- Returns:
dict
- read_configuration()
Dictionary mapping names to value dicts with keys: value, timestamp
- set(value, *, timeout=None, settle_time=None, **kwargs)
Set the value of the Signal and return a Status object.
- Returns:
st (Status) – This status object will be finished upon return in the case of basic soft Signals
- sim_put(*args, **kwargs)
Update the read-only signal’s value.
Implement here instead of FakeEpicsSignalRO so you can call it with every fake signal.
- sim_set_enum_strs(enums)
Set the enum_strs for a fake device
- sim_set_func(func)
Update the SynSignal function to set a new value on trigger.
- sim_set_limits(limits)
Set the fake signal’s limits.
- sim_set_putter(putter)
Define arbirary behavior on signal put.
This can be used to emulate basic IOC behavior.
- trigger()
Call that is used by bluesky prior to read()
Attributes
- SUB_META = 'meta'
- connected
Is the signal connected to its associated hardware, and ready to use?
- enum_attrs
- enum_strs
- high_limit
The high, inclusive control limit for the Signal
- hints
Field hints for plotting
- kind
- limits
Override limits because EpicsSignalEditMD overrides the limits.
If defined in the test, do it like in the real EpicsSignalEditMD. Otherwise, be permissive to avoid false test failures.
- low_limit
The low, inclusive control limit for the Signal
- metadata
- metadata_keys
Metadata keys that will be passed along on value subscriptions
- read_access
Can the signal be read?
- source_name
- timestamp
Timestamp of the readback value
- tolerance
The absolute tolerance associated with the value.
- value
The signal’s value
- write_access
Can the signal be written to?