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.cs—GET /api/Execution/selected-step-info.Execution/SelectedStepInfoService.cs— the payload.Execution/ClStripBroadcastService.cs— theStepSelectedbroadcast that tells the panel to re-pull.
See Also
- Execution Page — the page whose Step Info column hosts this panel
- Step Present Preference Page — chooses which properties are listed
- Inspecting a Step — the task this panel serves, and the rest of the column around it