deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue.

This commit is contained in:
2026-05-28 19:42:05 +08:00
parent d7836db45f
commit 95b5790622
140 changed files with 8079 additions and 14099 deletions
@@ -101,7 +101,8 @@ Classes
the soft cap above which the upcoming
<code>FanucGotoSyntax</code> stops firing and emits a warning) plus a
runtime per-target hit counter (<a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_CountByTarget">CountByTarget</a> — not
serialised, cleared at session start by
serialised, cleared at session start by the
<a class="xref" href="Hi.NcParsers.ISessionResettable.html">ISessionResettable</a> sweep in
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_RunControlLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_SessionProgress_System_Threading_CancellationToken_">RunControlLines(string, IEnumerable&lt;string&gt;, MachiningSession, SessionProgress, CancellationToken)</a>).</p>
<p>
The dependency is syntax-managed: <code>FanucGotoSyntax</code> reads the
@@ -109,8 +110,9 @@ limit, increments the counter, and decides whether to fire. There is
no host <code>Func</code> provider — the dep is placed in
<a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.html">Hi.NcParsers.Dependencys.Fanuc</a> rather than
<a class="xref" href="Hi.NcParsers.Dependencys.SystemWired.html">Hi.NcParsers.Dependencys.SystemWired</a> because nothing outside the
syntax pipeline writes it; <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset">Reset()</a> is a plain method call
the runner invokes, not a host-wired Func.
syntax pipeline writes it; <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset">OnSessionReset()</a> is the
session-init hook the runner invokes through
<a class="xref" href="Hi.NcParsers.ISessionResettable.html">ISessionResettable</a>, not a host-wired Func.
</p>
<p>
The counter key is <code>(FileName, TargetN)</code> where <code>FileName</code>
@@ -174,6 +176,38 @@ long-lived data, only the Fanuc-style id addressing scheme. The
underlying <a class="xref" href="Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html">ToolOffsetTable</a> still lives in
<code>NcDependencyList</code> as the data dependency.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html">FanucWhileDoIterationDependency</a></dt>
<dd><p>Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling
to <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html">FanucGotoIterationDependency</a> with the same
&ldquo;soft-cap + runtime counter + session-init <a class="xref" href="Hi.NcParsers.ISessionResettable.html">ISessionResettable</a>&rdquo;
shape, but kept as a separate dep (rather than sharing the GOTO
bucket) so loop and jump iteration limits can be tuned independently
and so diagnostic codes do not cross.</p>
<p>
The counter key is <code>(FileName, LoopId)</code> where <code>FileName</code>
is the source-level file path of the WHILE/END pair (the relative
path form carried on <a class="xref" href="Hi.NcParsers.Sentence.html#Hi_NcParsers_Sentence_FilePath">FilePath</a>). Source-level
keying means multiple inline invocations of the same subprogram
pool their counts (same source-code loop), while two different files
each with their own <code>WHILE DO 1</code> stay isolated.
</p>
<p>
The consuming syntax (<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html">FanucWhileDoSyntax</a>)
increments the counter at the END m reverse-jump step — not on the
WHILE entry — so a loop that exits on first WHILE evaluation
(condition false from the outset) consumes zero iterations. Above
<a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId">MaxIterationsPerLoopId</a>, the END m block emits a warning
and suppresses the redirect; subsequent flow falls through past END.
</p>
<p>
Default <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucWhileDoIterationDependency_MaxIterationsPerLoopId">MaxIterationsPerLoopId</a> is 10000 — higher than
the GOTO equivalent (1000) because WHILE/END is the legitimate
iteration primitive that NcOpt-generated programs (drill grids,
adaptive sweeps) depend on, and 1000 is too tight for those.
</p>
</dd>
</dl>
<dl class="jumplist">