This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.CsvParsers.GeneralCsvRunner.html
T

280 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class GeneralCsvRunner | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class GeneralCsvRunner | HiAPI-C# 2025 ">
<meta name="description" content="Factory for a that replays CSV telemetry through the general-semantics architecture: a chain of small RowTo*Syntax classes maps each decoded CsvRow into the same standardized JSON sections the brand-NC pipeline writes (SpindleSpeed, Feedrate, Coolant, CsScript, ToolChange, MachineCoordinateState, MotionEvent), and a mostly-general semantic list resolves them into acts. A handful of CSV extension semantics cover telemetry the general list does not (, , ); tool changes ride the general (the tool jumps to its recorded position — no modelled tool-changer cycle). This is the flagship CSV runner — it superseded an earlier single-syntax / single-semantic pipeline. Recorded vs. computed timing. CSV is replayed telemetry, so uses the recorded sample duration (StepDuration / ActualTime delta) rather than feedrate &#215; distance. Because still writes the full general motion-section contract, swapping for the general in flips the runner to feedrate-derived timing with no other change.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner">
<h1 id="Hi_Numerical_CsvParsers_GeneralCsvRunner" data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner" class="text-break">
Class GeneralCsvRunner
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Numerical.html">Numerical</a>.<a class="xref" href="Hi.Numerical.CsvParsers.html">CsvParsers</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Factory for a <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> that replays CSV telemetry through
the <b>general-semantics</b> architecture: a chain of small
<code>RowTo*Syntax</code> classes maps each decoded <code>CsvRow</code> into the same
standardized JSON sections the brand-NC pipeline writes
(<code>SpindleSpeed</code>, <code>Feedrate</code>, <code>Coolant</code>, <code>CsScript</code>,
<code>ToolChange</code>, <code>MachineCoordinateState</code>, <code>MotionEvent</code>), and a
mostly-general semantic list resolves them into acts. A handful of CSV
extension semantics cover telemetry the general list does not
(<a class="xref" href="Hi.Numerical.CsvParsers.CsvActualTimeSemantic.html">CsvActualTimeSemantic</a>, <a class="xref" href="Hi.Numerical.CsvParsers.CsvMotionSemantic.html">CsvMotionSemantic</a>,
<a class="xref" href="Hi.Numerical.CsvParsers.CsvActDataSemantic.html">CsvActDataSemantic</a>); tool changes ride the general
<a class="xref" href="Hi.NcParsers.Semantics.ToolingTeleportSemantic.html">ToolingTeleportSemantic</a> (the tool jumps to its recorded
position — no modelled tool-changer cycle).</p>
<p>
This is the flagship CSV runner — it superseded an earlier single-syntax /
single-semantic pipeline.
</p>
<p>
<b>Recorded vs. computed timing.</b> CSV is replayed telemetry, so
<a class="xref" href="Hi.Numerical.CsvParsers.CsvMotionSemantic.html">CsvMotionSemantic</a> uses the recorded sample duration
(<code>StepDuration</code> / <code>ActualTime</code> delta) rather than
feedrate × distance. Because <a class="xref" href="Hi.Numerical.CsvParsers.RowToMotionEventSyntax.html">RowToMotionEventSyntax</a> still
writes the full general motion-section contract, swapping
<a class="xref" href="Hi.Numerical.CsvParsers.CsvMotionSemantic.html">CsvMotionSemantic</a> for the general
<a class="xref" href="Hi.NcParsers.Semantics.McLinearMotionSemantic.html">McLinearMotionSemantic</a> in <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_NcSemanticList">NcSemanticList</a>
flips the runner to feedrate-derived timing with no other change.
</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class GeneralCsvRunner</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">GeneralCsvRunner</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Numerical_CsvParsers_GeneralCsvRunner_Create_" data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner.Create*"></a>
<h3 id="Hi_Numerical_CsvParsers_GeneralCsvRunner_Create" data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner.Create">
Create()
</h3>
<div class="markdown level1 summary"><p>Builds a fresh <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> pre-configured to replay CSV
input through the general-semantics pipeline. Call once per machining
session so the runner's per-session state starts clean.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static SoftNcRunner Create()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a></dt>
<dd></dd>
</dl>
<a id="Hi_Numerical_CsvParsers_GeneralCsvRunner_Reg_" data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner.Reg*"></a>
<h3 id="Hi_Numerical_CsvParsers_GeneralCsvRunner_Reg_Hi_Common_XmlUtils_XFactory_" data-uid="Hi.Numerical.CsvParsers.GeneralCsvRunner.Reg(Hi.Common.XmlUtils.XFactory)">
Reg(XFactory)
</h3>
<div class="markdown level1 summary"><p>Registers the CSV-module components <a class="xref" href="Hi.Numerical.CsvParsers.GeneralCsvRunner.html#Hi_Numerical_CsvParsers_GeneralCsvRunner_Create">Create()</a> instantiates —
the shared decoder (<a class="xref" href="Hi.Numerical.CsvParsers.CsvRunnerConfig.html">CsvRunnerConfig</a>,
<a class="xref" href="Hi.Numerical.CsvParsers.CsvSegmenter.html">CsvSegmenter</a>, <a class="xref" href="Hi.Numerical.CsvParsers.CsvRowSyntax.html">CsvRowSyntax</a>), the
<code>RowTo*</code> syntax chain, and the CSV extension semantics — with the
given <a class="xref" href="Hi.Common.XmlUtils.XFactory.html">XFactory</a>. The general components it reuses
(<a class="xref" href="Hi.NcParsers.Syntaxs.BundleSyntax.html">BundleSyntax</a>, <a class="xref" href="Hi.NcParsers.Semantics.SpindleSpeedSemantic.html">SpindleSpeedSemantic</a>,
<a class="xref" href="Hi.NcParsers.Semantics.CoolantSemantic.html">CoolantSemantic</a>, <a class="xref" href="Hi.NcParsers.Semantics.CsScriptBeginSemantic.html">CsScriptBeginSemantic</a>,
<a class="xref" href="Hi.NcParsers.Semantics.CsScriptEndSemantic.html">CsScriptEndSemantic</a>) are registered by
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_Reg_Hi_Common_XmlUtils_XFactory_">Reg(XFactory)</a>. Idempotent.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Reg(XFactory factory = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>factory</code> <a class="xref" href="Hi.Common.XmlUtils.XFactory.html">XFactory</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>