yaq/daemons/fake-spectrometer


Very simple fake spectrometer.

bugtracker
source

installation

The fake-spectrometer daemon can be installed using the following package managers:

PyPI
conda-forge

traits

The fake-spectrometer daemon is composed of the following traits:

has-mapping
has-measure-trigger
is-daemon
is-sensor

configuration

enable (boolean) default: True
Disable this daemon. The kind entry-point will not attempt to start this daemon.
from is-daemon

log_level ({'name': 'level', 'symbols': ['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'], 'type': 'enum'}) default: info
Set daemon log-level.
from is-daemon

log_to_file (boolean) default: False
Optionally force logging to a file.
from is-daemon

loop_at_startup (boolean) default: False
If set to true, the daemon will begin to loop measure as soon as it starts.
from has-measure-trigger

make (['null', 'string']) default: None
from is-daemon

model (['null', 'string']) default: None
from is-daemon

port (int)
TCP port for daemon to occupy.
from is-daemon

serial (['null', 'string']) default: None
Serial number for the particular device represented by the daemon
from is-daemon

state

The fake-spectrometer daemon will provide the following state information:

central_wavelength (double)
Spectrometer central wavelength, in nanometers.

messages

The fake-spectrometer daemon will expose the following public messages:

busy ➜ boolean
Returns true if daemon is currently busy.
from is-daemon

get_central_wavelength ➜ double
Get central wavelength, in nanometers.

get_channel_mappings ➜ {'type': 'map', 'values': {'items': 'string', 'type': 'array'}}
Defines which mapping keys apply to which channel keys. Each channel may have zero or many mappings. Mappings must broadcast into corresponding channels.
from has-mapping

get_channel_names ➜ {'items': 'string', 'type': 'array'}
Get current channel names.
from is-sensor

get_channel_shapes ➜ {'type': 'map', 'values': {'items': 'int', 'type': 'array'}}
Get current channel shapes. If list is empty, channel is scalar.
from is-sensor

get_channel_units ➜ {'type': 'map', 'values': ['null', 'string']}
Get current channel units.
from is-sensor

get_config ➜ string
Full configuration for the individual daemon as defined in the TOML file. This includes defaults and shared settings not directly specified in the daemon-specific TOML table.
from is-daemon

get_config_filepath ➜ string
String representing the absolute filepath of the configuration file on the host machine.
from is-daemon

get_mapping_id ➜ int
Mapping ID. This integer increments every time the mapping is updated. Clients can safely check this id to verify that their cached mappings are correct, if desired.
from has-mapping

get_mapping_units ➜ {'type': 'map', 'values': ['null', 'string']}
Must return units for every mapping. Units can be null.
from has-mapping

get_mappings ➜ {'type': 'map', 'values': ['null', 'ndarray', 'double']}
Mappings themselves.
from has-mapping

get_measured ➜ {'type': 'map', 'values': ['double', 'ndarray', 'int']}
Returns map of channel_name to measured_value. Always returns additional key measurement_id.
from is-sensor

get_measurement_id ➜ {'type': 'int'}
Get current measurement_id. Clients are encouraged to watch for this to be updated before calling get_measured to get entire measurement.
from is-sensor

get_state ➜ string
Get version of the running daemon
from is-daemon

id ➜ {'type': 'map', 'values': ['null', 'string']}
JSON object with information to identify the daemon, including name, kind, make, model, serial.
from is-daemon

measure ➜ int
Initiate a measurement. Returns integer, measurement ID.
from has-measure-trigger
parameters:

loop (boolean) default: False

set_central_wavelength ➜ null
Set central wavelength, in nanometers.
parameters:

wavelength (double)

shutdown ➜ null
Cleanly shutdown (or restart) daemon.
from is-daemon
parameters:

restart (boolean) default: False

stop_looping ➜ null
Stop looping measurement.
from has-measure-trigger


built 2021-10-21 19:16:47                                      CC0: no copyright