Sequence Editor¶
The Sequence Editor lets you build automated measurement programs by connecting blocks on a visual canvas — no code required.
Canvas Overview¶
The canvas occupies the main area of the Sequence Editor tab.
| Area | Description |
|---|---|
| Block toolbox (left panel) | Lists all available blocks, grouped by category and instrument |
| Canvas (centre) | Infinite drag-and-drop surface where you arrange blocks |
| Properties panel (right) | Opens when you double-click a block; shows editable fields |
| Editor toolbar | New, Open, Save — sequence-file actions only |
Run / Pause / Stop live in the main toolbar
Execution is controlled from the global toolbar at the top of the main window (Run ▶, Pause/Resume ⏸, Stop ■), not from the Sequence Editor tab. This keeps a single source of truth for sequence control regardless of which tab is active. The editor's own toolbar carries only the file actions (New / Open / Save).
Working with Blocks¶
Adding Blocks¶
Drag a block from the block toolbox on the left onto the canvas. Alternatively, right-click the canvas and choose Add Block from the context menu.
Moving Blocks¶
Left-click and drag a block to reposition it. Blocks snap to a grid by default.
Connecting Blocks¶
Every block has:
- An input dot on the left side (where execution enters this block)
- An output dot on the right side (where execution continues)
Click and drag from an output dot to the input dot of the next block to create a connection arrow. The arrow represents the execution flow.
Special blocks have multiple outputs:
- ConditionBlock has a True output and a False output
- LoopBlock has a Body output (executed each iteration) and a Next output (continues after the loop completes)
Deleting Connections¶
Right-click a connection arrow and choose Delete Connection.
Editing Block Properties¶
Double-click a block to open its property editor in the right panel. Fields vary by block type. Press Enter or click outside the field to confirm a change.
Deleting Blocks¶
Right-click a block and choose Delete, or select it and press Delete.
Sequence Execution¶
Running a Sequence¶
Click Run (▶) in the main toolbar. Execution starts at the StartBlock and follows the connection arrows.
The currently-running block is highlighted. The Log tab shows step-by-step progress messages. Block highlighting is refreshed on a timer rather than per-block, so the window stays responsive even during tight loops with thousands of zero-delay iterations — you can still scroll, switch tabs, and click Stop.
Pausing and Resuming¶
Click Pause (⏸). Execution suspends and the status changes to Paused; the button becomes Resume (▶) — click it to continue from the same point.
Pause takes effect mid-loop: the engine checks a pause gate on every loop iteration (and before each block in a loop body), so a long LoopBlock halts within one iteration instead of running to completion first.
Stopping¶
Click Stop (■). The current block is interrupted and the sequence ends. If a block was in the middle of a VISA command, the command is cancelled. Stop also works while the sequence is paused.
Execution Limits¶
The sequence engine enforces a 100,000-iteration safety limit to prevent infinite loops. If a loop runs beyond this limit, the sequence stops with an error in the Log.
Variables¶
Variables are named values that persist for the lifetime of a single sequence run. They allow blocks to pass data to each other.
Setting a Variable¶
Use a SetVariableBlock or a measurement block's Variable Name property. Variable names are case-insensitive.
Reading a Variable¶
Blocks that accept a Variable Name input read from the current value at run time. The MathBlock also reads variables using the {varname} syntax in expressions.
Variable Types¶
Variables hold either a double (number) or a string. If a block writes a numeric string (e.g. "3.14"), subsequent blocks that expect a number will auto-parse it.
Saving and Loading Sequences¶
Sequences are stored as JSON files (.iseq):
- Save — click the floppy-disk icon; on first save you choose a file path, after that it overwrites
- Open — click the folder icon; browse to an
.iseqfile - New — click the document icon; clears the canvas and starts a fresh sequence (a StartBlock is added automatically)
The JSON file stores block positions, types, properties, and connection IDs. It is human-readable and can be edited in any text editor if needed.
Typical Sequence Patterns¶
Simple Measurement¶
Repeated Measurement with Loop¶
[Start] → [Loop N=100]
↓ (body)
[MeasureDCV] → [Wait 1000ms] → (back to loop)
↓ (next, after loop)
[SaveCsvBlock] → [End]
Conditional Action¶
[Start] → [MeasureDCV] → [SetVariable voltage={result}]
→ [Condition: voltage > 5.0]
↓ True ↓ False
[LogMessage "HIGH"] [LogMessage "LOW"]
↓ ↓
[End] [End]