yaq/daemons/attune


yaq daemon representing an attune instrument

bugtracker
source

installation

The attune daemon can be installed using the following package managers:

PyPI

traits

The attune daemon is composed of the following traits:

has-limits
has-position
is-daemon
is-homeable

configuration

delays (map) default: {}
mapping of delay names to yaq ports. Delays will be informed when position or arrangement changes

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

limits (array) default: [-inf, inf]
Configuration limits are strictly optional.
from has-limits

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

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

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

out_of_limits (enum) default: closest
Control behavior of daemon when set_position is given a value outside of limits.
from has-limits

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

setables (map)
mapping of setable names (must be a superset of those in the instrument) to yaq ports

state

The attune daemon will provide the following state information:

arrangement (['null', 'string'])
Currently selected arrangement. If null, use whichever arrangment fits the requested position, and error if there are multiple

destination (double)
from has-position

hw_limits (array)
from has-limits

position (double)
from has-position

messages

The attune daemon will expose the following public messages:

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

get_all_arrangements ➜ {'items': 'string', 'type': 'array'}
Get all currently valid arrangement names

get_arrangement ➜ ['null', 'string']
Get the currently in use arrangement name

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_delay_names ➜ {'items': 'string', 'type': 'array'}
Get list of delays

get_delay_yaq_params ➜ {'type': 'map', 'values': ['int', 'string']}
Get the ports for delays.

get_dependent_hardware ➜ {'type': 'map', 'values': 'string'}
Get mapping of name to host:port string. 'localhost' should be replaced on the client side with the host for this daemon.

get_destination ➜ double
Get current daemon destination.
from has-position

get_instrument ➜ Instrument
Get the currently in use instrument object

get_limits ➜ {'items': 'double', 'type': 'array'}
Get daemon limits.Limits will be the intersection of config limits and driver limits (when appliciable).
from has-limits

get_position ➜ double
Get current daemon position.
from has-position

get_setable_names ➜ {'items': 'string', 'type': 'array'}
Get list of setables

get_setable_positions ➜ {'type': 'map', 'values': ['double', 'string']}
Get underlying setables, provides a mapping of names to positions, in native units.

get_setable_yaq_params ➜ {'type': 'map', 'values': ['int', 'string']}
Get the ports for setables.

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

get_units ➜ ['null', 'string']
Get units of daemon. These units apply to the position and destination properties.
from has-position

home ➜ null
Initiates the homing procedure. The daemon will report as busy during the homing procedure. After the homing procedure is complete, the daemon will return to the current destination.
from is-homeable

home_setables ➜ null
Home underlying setables, accepts a list of names to home.
parameters:

setables ({'items': 'string', 'type': 'array'})

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

in_limits ➜ boolean
Check if a given position is within daemon limits.
from has-limits
parameters:

position (double)

set_arrangement ➜ null
Get the currently in use arrangement name
parameters:

arrangement (['null', 'string'])

set_instrument ➜ null
Set the currently in use instrument object. Also triggers a restart
parameters:

instrument (Instrument)

set_position ➜ null
Give the daemon a new destination, and begin motion towards that destination.
from has-position
parameters:

position (double)

set_position_except ➜ null
Set the position, but ignore some setables
parameters:

position (double)

exceptions ({'items': 'string', 'type': 'array'})

set_relative ➜ double
Give the daemon a new destination relative to its current position. Daemon will immediately begin motion towards new destination. Returns new destination.
from has-position
parameters:

distance (double)

set_setable_positions ➜ null
Set underlying setables, accepts a mapping of names to positions, in native units.
parameters:

setables ({'type': 'map', 'values': ['double', 'string']})

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

restart (boolean) default: False

types

The attune daemon uses the following avro types:

Transition (record)
fields:

type (string)

Setable (record)
fields:

name (string)

Tune (record)
fields:

independent ({'items': 'double', 'type': 'array'})

dependent ({'items': 'double', 'type': 'array'})

DiscreteTune (record)
fields:

ranges ({'type': 'map', 'values': {'items': 'double', 'type': 'array'}})

default (['null', 'string'])

Arrangement (record)
fields:

name (string)

tunes ({'type': 'map', 'values': ['Tune', 'DiscreteTune']})

Instrument (record)
fields:

name (string)

arrangements ({'type': 'map', 'values': 'Arrangement'})

setables ({'type': 'map', 'values': 'Setable'})

transition (Transition)


built 2024-02-09 01:44:16                                      CC0: no copyright