Table of Contents

Selected-Step Info Panel

The panel that shows the selected machining step's properties. It sits in the Execution Page's Step Info column, where the app labels it Step Properties.

The model is MachiningStep and UserService.

The MachiningStep is assigned by ClStrip.PosSelected.

Show step information from UserService.DisplayedStepPresentAccessList.

The resx of MachiningStep contains the translation of PresentAttribute.Name; apply the translation to the GUI, and fall back to the original value when no translation exists.

Which properties are listed is chosen on the Step Present Preference Page, opened from the Step Present button on this panel's title bar.

Layout

A plain key / value list, not a q-list: the value cell has to shrink and wrap, because a step carries arbitrarily long values (a file path, a whole NC line) and a non-shrinking cell would widen the entire column.

Each row is labelled shortName, falling back to name and then to the raw key, with the full name as the row's tool-tip; the unit follows the value, and an absent value renders as -. With nothing selected the panel shows No step selected. Click a step in the canvas to inspect its info.

The StepIndex row is filtered out even when the configured list contains it — the column's group bar already carries the step index as a badge.

Behavior

Selection bursts (a SetSelectedPos per step while a mission runs) are coalesced into one trailing fetch on an 80 ms timer, and responses are sequence-guarded so a slower earlier fetch cannot overwrite a newer one. A language change re-pulls, because the field names arrive already localized.

Sample Code

Refer to this code to show step information.

internal static void ShowStepPresent(
    UserService userEnv, MachiningStep machiningStep)
{
    foreach (var entry in userEnv.DisplayedStepPresentAccessList)
    {
        var present = entry.Value.Present;
        var valueText = string.Format("{0:" + present.DataFormatString + "}", entry.Value.GetValueFunc.Invoke(machiningStep));
        Console.WriteLine($"{present.ShortName}: {valueText} {present.TailUnitString} ({present.Name} [{entry.Key}])");
    }
}

Selection Push (Web Service Only)

SelectedStepInfoService answers the payload on demand: the REST endpoint GET /api/Execution/selected-step-info calls it. It has no SignalR hub of its own — the “selection changed” push rides /clStripHub, whose StepSelected broadcast follows the same PosSelected event. The panel and the cycle-line charts watch that broadcast and re-pull this payload.

Source Code Path

See HiNC App Anatomy for git repository links.

HiNC-2025-webservice (Quasar CLI SPA):

  • wwwroot-src/src/components/execution/SelectedStepInfoPanel.vue — the panel.
  • wwwroot-src/src/components/execution/StepInfoGroupBar.vue — the group bar above it, shared by the step-based panels of the column.
  • Execution/ExecutionController.csGET /api/Execution/selected-step-info.
  • Execution/SelectedStepInfoService.cs — the payload.
  • Execution/ClStripBroadcastService.cs — the StepSelected broadcast that tells the panel to re-pull.

See Also