References#
References connect tasks in an EOS experiment. They let downstream tasks reuse:
Devices allocated upstream (device references)
Physical items used upstream (resource references)
Output values produced upstream (parameter references)
You write references directly under devices, resources, or parameters in each task’s YAML.
Quick syntax#
Device reference (reuse an allocated device):
- devices:
<alias>: <upstream_task>.<alias>
Resource reference (pass the same physical item):
- resources:
<alias>: <upstream_task>.<alias>
Parameter reference (consume an output value):
- parameters:
<param_name>: <upstream_task>.<output_name>
Minimal example#
- name: retrieve_container
devices:
robot_arm:
lab_name: color_lab
name: robot_arm
color_mixer:
allocation_type: dynamic
device_type: color_mixer
allowed_labs: [color_lab]
resources:
beaker:
allocation_type: dynamic
resource_type: beaker
dependencies: []
- name: mix_colors
devices:
color_mixer: retrieve_container.color_mixer # device reference
resources:
beaker: retrieve_container.beaker # resource reference
parameters:
cyan_volume: eos_dynamic
mixing_time: eos_dynamic
dependencies: [retrieve_container]
- name: analyze_color
devices:
color_analyzer:
allocation_type: dynamic
device_type: color_analyzer
allowed_labs: [color_lab]
resources:
beaker: mix_colors.beaker # keep same beaker
dependencies: [mix_colors]
- name: score_color
parameters:
red: analyze_color.red # output parameter references
green: analyze_color.green
blue: analyze_color.blue
total_color_volume: mix_colors.total_color_volume
max_total_color_volume: 300.0
target_color: eos_dynamic
dependencies: [analyze_color]