This commit is contained in:
2026-09-16 00:00:49 +08:00
parent 1a75503105
commit bfa3106a69
60 changed files with 696 additions and 268 deletions
@@ -158,6 +158,13 @@ rewinds the NC-runner session state, so the next play restarts file and line ind
the way <code>PowerReset</code> does, and it resets the CL device pose to identity. It no longer clobbers
<code>MachiningResolution_mm</code>: the runtime resolution is seeded from the workpiece's initial resolution
only when a project loads, so an explicit override survives a runtime reset and a workpiece swap.</li>
<li><strong>Every NC-pipeline rewind raises one event.</strong> Suit rewiring, <code>PowerReset</code> and
<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a> each dropped the runner session state on their
own with no notification, so the file / sentence counters restarted at 0 on the next play while
the session and its subscribers lived on — a consumer keyed by file index merged the next NC file
into the previous file's numbers. One seam now performs the reset (session state and the NC
diagnostics) and raises <a class="xref" href="../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_OnNcPipelineReset">OnNcPipelineReset</a>, an
app-lifetime event, before the next file's pieces arrive.</li>
<li><strong>Mixed runner kinds in one session are refused.</strong> <code>NcRunnerSessionState</code> remembers the runner that
initialised it and <a class="xref" href="../../api/Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_RunNcLines_">RunNcLines</a> refuses a different one with
<code>RunNcLines--RunnerMismatch</code> — reachable now that <code>NcKind.Auto</code> makes mixed-kind missions a