Machine state, sequences and sessions
Sequence Editor <smart-sequence-editor>
SequenceEditor is a step sequence editor and runner for test sequences, batch procedures and recipes.
<smart-sequence-editor> · 7 properties, 8 methods, 5 events · source/modules/smart.sequenceeditor.js
Usage in Vue
Vue uses the custom element directly. A property is bound with :kebab-name; an array or an object needs the .prop modifier so that Vue sets the property rather than an attribute. Events are listened to with @eventName; methods are called on the element through a template ref.
import 'smart-industrial/source/modules/smart.sequenceeditor.js';
<smart-sequence-editor ref="sequenceEditor" :stop-on-failure="true"
@sequenceComplete="onEvent"></smart-sequence-editor>
// methods are called on the element the ref holds
sequenceEditor.value.abort();
// an array or an object is set as a property, not converted to an attribute: use .prop
<smart-sequence-editor :steps.prop="steps"></smart-sequence-editor>
Properties
| Binding | Type, default | Description |
|---|---|---|
:current-step | string | null | Sets or retrieves the id of the step being run. Null when nothing is running. |
:limit-evaluator | function? | Sets or gets a function (step, value) that returns true, false, or undefined to fall back to the built-in limit forms. Only needed for a limit that cannot be expressed as a range or as a nominal value with a tolerance. |
:mode | SequenceEditorMode | Sets or retrieves whether the sequence is being edited or run. |
:precision-digits | number | Sets or gets the number of decimal places used when a measurement is shown. |
:show-results | boolean | Sets or retrieves whether the result column is shown. The property is read when the default columns are built, so set it before the component is initialized. Boolean attributes are presence-based, so the column cannot be turned off from markup. |
:steps | array | Sets or retrieves the sequence as [{ id, name, action, unit, min, max, nominal, tolerance, value, skipped, aborted }]. Only id is required. A step with neither a range nor a nominal value is an action rather than a measurement: it can run but cannot fail on a value. The state of a step is derived from its measurement and its limit, so updating the measurement updates the verdict. Assign a new array to update the component. |
:stop-on-failure | boolean | Sets or retrieves whether a failed step aborts the rest of the run. |
Methods
| Method | Description |
|---|---|
abort(): void | Stops the run and marks every step that has not run as aborted, so that the report shows that the run did not finish. |
limitText(step: object): string | Returns the limit of a step as it appears on a specification sheet: a range, a single bound, or a nominal value with a tolerance. An invalid limit is written with "(invalid limit)" after it, and warned about once in the console.step object The step. |
pause(): void | Pauses the run at the current step. |
report(): object | Returns the record of the run: the verdict, the number of steps in each state, and every step with its limit and measurement. A run passes only when no step failed and no step was left unrun. |
run(): void | Starts the run at the first pending step and raises the stepStart event. Does nothing when the sequence is already running. |
setResult(id: string | number, value: any): boolean | Records a measurement for a step and moves to the next step. While a step is current, only that step takes a result: a result for another step is refused, raises resultRefused, changes nothing and returns false. A non-numeric result is kept and shown, and the step is marked as not evaluated rather than as passed or failed.id string | number The step's id. Always identify a step by id and never by row index, the table sorts, so an index stops meaning anything the moment a column header is clicked.value any The measurement. |
skip(id: string | number): void | Marks a step as not run and moves to the next step when the sequence is running.id string | number The step's id. |
stateOf(step: object): string | Returns the state of a step: pending, running, passed, failed, skipped, aborted or notEvaluated. The state is derived from the measurement and the limit. A step with a limit whose result cannot be judged against it - NaN, Infinity, a text such as n/a, or a limit that is itself invalid (a minimum above the maximum, a negative tolerance) - is notEvaluated, never passed; a report with such a step has not passed.step object The step. |
Events
The data of an event is in event.detail. The sequence editor executes no step itself: it sets currentStep, raises stepStart and waits, with no timeout, until the application calls setResult(). stepComplete, sequencePause and sequenceComplete follow changes the editor has already made to steps, currentStep and mode.
| Event | Description and detail |
|---|---|
@sequenceComplete | This event is triggered when the run finishes or is aborted.aborted boolean Whether it was aborted rather than completed.report object The full record. |
@sequencePause | This event is triggered when the run is paused.step any The step it paused at. |
@stepComplete | This event is triggered when a measurement is recorded against a step.id string | number The step's id.state string The state it settled into.passed boolean Whether it passed.step object The step that completed. |
@resultRefused | This event is triggered when setResult is called for a step that is not the one running. The result is not recorded and the run does not move.id string | number The step the result was for.value any The result that was refused.current string | number The step that is running. |
@stepStart | This event is triggered when the run reaches a step. The application performs the measurement and calls setResult; the component waits and does not execute anything itself.id string | number The step's id.step object The step.index number Its position in the sequence. |
Types
type SequenceEditorMode
'edit' | 'run'
CSS variables
The component declares 1 CSS variables; the CSS page shows how to set them.
--smart-sequence-height