Preparation station
The staging and editing area for experiment parameters: preview, reorder and fine-tune tasks before they are pushed into the queue.
Overview
PrepStation is a tab in a top dock of the experiment browser (Browser) that acts as the
“staging area” of the experiment queue: tasks that are not yet ready are kept here and are
pushed into ExperimentQ for execution once confirmed. The task list is persisted in
configuration/browser/prepfile.json and can be viewed and manipulated from the experiment
console on the browser side (Web remote control).
Functions
| Operation | Description |
|---|---|
| Stage | Clicking the Prep button in the experiment window stages the current parameters (including the scan definition) in the task list |
| Push | Copies the selected task into ExperimentQ (the queue retains the complete task number, priority and scan parameters) |
| Add to loop | Adds the selected task to a Looper loop group (push_to_looper) |
| Reorder | Moves tasks up/down to change their order |
| Sleep | Marks a task as Sleeping so that it takes no part in pushes for the time being |
| Edit/view | Opens the task parameter editor or a read-only view |
| Save/load | Saves a parameter set as JSON (experiment_params/<experiment>/<date>/) |
Task data structure
Every staged task has the same structure as a queue task (generated by the experiment window’s setup_task_dict()):
task = {
'task': 12, # task number
'expName': 'Absorption', # experiment name
'label': 'scan: freq 2:1', # label (includes the scan prefix)
'priority': 0,
'args': {'count': 5}, # experiment parameters
'nRuns': 21, # number of scan points
'scanpars': ['freq'], # scan parameters
'scanvals': [[...]], # scan values
'scansequence': [...], # scan order (after randomisation)
'nReps': 1,
'status': 'Queued', # Queued / Sleeping / Waiting
'filepath': '.../absorption.py',
}
Persistence and sharing
- The task list is kept in
configuration/browser/prepfile.jsonand is restored automatically when the browser restarts; - The desktop GUI and the Web remote control platform share the same file, so tasks staged, pushed, reordered or slept on one side are immediately visible on the other.