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
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class FanucGotoIterationDependency | HiAPI-C# 2025 ">
<meta name="description" content="Watchdog for Fanuc Custom Macro B GOTO loops. Holds a limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter ( — not serialised, cleared at session start by ). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in rather than because nothing outside the syntax pipeline writes it; is a plain method call the runner invokes, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML.">
<meta name="description" content="Watchdog for Fanuc Custom Macro B GOTO loops. Holds a limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter ( — not serialised, cleared at session start by the sweep in ). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in rather than because nothing outside the syntax pipeline writes it; is the session-init hook the runner invokes through , not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -102,7 +102,8 @@ Class FanucGotoIterationDependency
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
@@ -110,8 +111,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>
@@ -134,7 +136,7 @@ the project XML.
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource</code></pre>
<pre><code class="lang-csharp hljs">public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable</code></pre>
</div>
@@ -153,6 +155,7 @@ the project XML.
<dd>
<div><a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a></div>
<div><a class="xref" href="Hi.Common.XmlUtils.IMakeXmlSource.html">IMakeXmlSource</a></div>
<div><a class="xref" href="Hi.NcParsers.ISessionResettable.html">ISessionResettable</a></div>
</dd>
</dl>
@@ -327,8 +330,8 @@ hit it fast.</p>
</h3>
<div class="markdown level1 summary"><p>Per-target hit counter keyed by <code>(FileName, TargetN)</code>.
Runtime-only; not serialised. Cleared by <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset">Reset()</a> on
the session-init edge so a brand-preset runner reused across
Runtime-only; not serialised. Cleared by <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset">OnSessionReset()</a>
on the session-init edge so a brand-preset runner reused across
sessions does not leak counts.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -477,6 +480,33 @@ Since the folder can be moving with the configuration file.</p>
<a id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset_" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset*"></a>
<h3 id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_OnSessionReset" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.OnSessionReset">
OnSessionReset()
</h3>
<div class="markdown level1 summary"><p>Clears <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_CountByTarget">CountByTarget</a>; leaves <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_MaxIterationsPerTarget">MaxIterationsPerTarget</a> untouched.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void OnSessionReset()</code></pre>
</div>
<a id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reg_" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg*"></a>
<h3 id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reg_Hi_Common_XmlUtils_XFactory_" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reg(Hi.Common.XmlUtils.XFactory)">
@@ -511,33 +541,6 @@ Since the folder can be moving with the configuration file.</p>
<a id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset_" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset*"></a>
<h3 id="Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_Reset" data-uid="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.Reset">
Reset()
</h3>
<div class="markdown level1 summary"><p>Clears <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_CountByTarget">CountByTarget</a>; leaves <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html#Hi_NcParsers_Dependencys_Fanuc_FanucGotoIterationDependency_MaxIterationsPerTarget">MaxIterationsPerTarget</a> untouched.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Reset()</code></pre>
</div>
</article>