Archived
352 lines
20 KiB
HTML
352 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Messages and Logs | HiAPI-C# 2025 </title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="title" content="Messages and Logs | HiAPI-C# 2025 ">
|
|
|
|
|
|
<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 "{query}"">
|
|
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
|
<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="">
|
|
<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="">
|
|
<h1 id="messages-and-logs">Messages and Logs</h1>
|
|
|
|
<p>Where a message lands decides how long it lasts and who else can see it, and that is usually more
|
|
useful than what it said at the time. The toasts and the footer belong to one browser and are gone
|
|
at its next reload; the four session message lists and the day's log file are held by the service.
|
|
Picking the right surface is most of the difference between a specific question and a vague one.</p>
|
|
<h2 id="where-a-message-can-land">Where a message can land</h2>
|
|
<p>The application has several places to put a message, and they do not carry the same things.</p>
|
|
<ul>
|
|
<li><strong>A toast</strong> — bottom right, for a few seconds, then gone. The only surface that interrupts, and
|
|
the only one that keeps nothing itself.</li>
|
|
<li><strong>The footer's latest line, and the recent list behind it</strong> — a toast is copied here before it is
|
|
shown, so this list is the toast's afterlife. Two kinds never arrive: a toast carrying neither
|
|
message nor caption, and the notices Tool House, the <strong>Spindle Capability</strong> editor and the
|
|
Controller panels raise, which are shown once and not kept. A small number of status lines go the
|
|
other way — written straight here, and never toasted at all.</li>
|
|
<li><strong>The footer's session strip</strong> — the middle of the bar, drawn once a run has produced something
|
|
and empty until then.</li>
|
|
<li><strong>The footer's background zone</strong> — the right end, drawn only while one of the <strong>Project</strong> menu's
|
|
operations is in flight — <strong>Close Project</strong> included — naming the operation and the path it is
|
|
working on.</li>
|
|
<li><strong>The Session Messages panel</strong> — on the Execution page, four lists kept by the service.</li>
|
|
<li><strong>The Log Viewer</strong> — the file the service itself writes for the current day.</li>
|
|
</ul>
|
|
<p>The footer summarises; it does not hold. Everything a run reports also goes into one of the panel's
|
|
four lists, and the panel is where it stays.</p>
|
|
<h2 id="messages-a-project-load-raises">Messages a project load raises</h2>
|
|
<p>Opening or re-reading a project can report holes in it — a referenced STL missing from disk, or a
|
|
runner configuration the file names that would not load, leaving the project on a default one.
|
|
<strong>None of these fail the load.</strong> The project opens, the body that needed the missing file simply
|
|
comes up without its geometry, and the action still reports success. The message is the only thing
|
|
that says otherwise.</p>
|
|
<p>Two neighbouring cases go elsewhere. A mesh-geometry <code>.wct</code> file a raw geometry names but that is not
|
|
there raises nothing here at all, because the load never opens it; the first word about it comes when
|
|
the meshed geometry is next needed, and that message belongs to the run, so it lands in the Session
|
|
Messages panel like any other. A side file the project names as a reference — the machine chain, the
|
|
spindle capability, a material, a cutting parameter set — is the opposite case: a missing one fails
|
|
the load outright, and that arrives as an error rather than as one of the messages described here.
|
|
See <a href="projects.html">Projects</a>.</p>
|
|
<p>These messages then take a path of their own, and it has a consequence worth knowing before that
|
|
path is relied on. A project file operation runs outside any session, so the panel's four lists —
|
|
which belong to the service, and are where everything a <em>run</em> reports stays — never see them. Instead the first five
|
|
errors and warnings are toasted, anything past that goes straight to the footer's recent list, and
|
|
one more toast says how many did not get their own. Anything milder than a warning is not surfaced in
|
|
the window at all.</p>
|
|
<p>That leaves the footer's recent list holding the only copy in the window, and that list is the
|
|
browser's: <strong>a reload empties it</strong>. So read the messages when a project opens with pieces missing, or
|
|
read <a href="#the-service-log">the service log</a>, which has them either way. The Session Messages panel will
|
|
not.</p>
|
|
<h2 id="the-footer">The footer</h2>
|
|
<p>The left region is this browser's own record and nothing else's. The list behind the latest line is
|
|
newest first, capped at a hundred entries, emptied by its <strong>Clear</strong> button — which takes the latest
|
|
line back to <em>Ready</em> with it — and by a reload, and written down nowhere — nothing about it survives closing the tab. Each entry keeps the wording it
|
|
was raised in, so switching the language leaves the list as a mixture while the panel's lists
|
|
re-render at once. The frame page describes the regions themselves: see
|
|
<a href="the-app-window.html">The Application Window</a>.</p>
|
|
<p><strong>Nothing marks the list as having something new in it.</strong> The button carries no badge and no dot,
|
|
deliberately, because a toast has already drawn attention once. The consequence is the failure this
|
|
page exists to prevent: a message that never toasted at all, or one whose few seconds expired while
|
|
the window was behind something else, is invisible until that menu is opened by hand. Opening it after an action
|
|
that seemed to do nothing is the cheapest check available.</p>
|
|
<p>The middle strip is the other way round — the service pushes it, so every connected browser sees the
|
|
same run activity, and each browser keeps its own short ring of the last entries behind it. What it
|
|
last showed stays on the bar after the run has ended; a project change is what empties the ring and
|
|
takes the strip away with it. A cursor line carries <code>Sn</code> and the sentence index it sits on; a
|
|
message line carries whatever anchor the message supplies. Two limits are worth knowing: the strip
|
|
mirrors the newest message across three of the four lists — nothing from <strong>NC Manipulation</strong> reaches
|
|
it — and it is sampled rather than recorded, so messages arriving faster than it refreshes never
|
|
appear on it at all. The lists on the service drop nothing.</p>
|
|
<h2 id="the-session-message-panel">The session message panel</h2>
|
|
<p>The panel sits on the Execution page, in the middle column, below the 3D Rendering Canvas. Its
|
|
header row reads <strong>Session Messages</strong> and stays visible when the panel is collapsed, so a grey strip
|
|
with that name on it is the panel, shut.</p>
|
|
<p><strong>The whole column can be switched off, and nothing on the page says so.</strong> The column quick-toggles
|
|
at the right-hand end of the menu bar include one whose tooltip reads <em>Toggle the Execution canvas &
|
|
messages column</em>; with it off, neither the panel nor its header row is drawn, and the page simply
|
|
looks like it has fewer parts. That choice is the browser's and survives a reload. The expanded or
|
|
collapsed state of the panel itself is not: it is kept by the service, and is therefore the same for
|
|
every browser that opens the page afterwards.</p>
|
|
<p>Four tabs, each a separate list:</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Tab</th>
|
|
<th>What it holds</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><strong>Shell</strong></td>
|
|
<td>The session's own lifecycle and routine progress — what began, what finished, what was refused. It is empty outside a session, because the list is created with the session.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>NC Diagnostics</strong></td>
|
|
<td>What the NC pipeline reported while playing a program.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Step Diagnostics</strong></td>
|
|
<td>What was reported against a machining step rather than against program text.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>NC Manipulation</strong></td>
|
|
<td>What converting a played program to NC, or optimising one, reported. Each such run clears the list before it starts filling it again.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>A tab shows a small count badge only once its list has something in it, so an empty sink is a tab
|
|
with nothing beside its name.</p>
|
|
<p>Where a message carries a position, the row shows it in a monospaced anchor column: a step
|
|
diagnostic names its step, and its block as well when it has one; an NC diagnostic names the block's
|
|
position in execution order, and its tooltip adds the source file and line where the diagnostic
|
|
carries them. <strong>Not every NC diagnostic has one</strong> — a complaint about the pipeline rather than about
|
|
a particular block has no anchor to show, and shell messages never have one. A run of consecutive
|
|
identical messages arrives already folded into a single row with a multiplier badge. A row with more
|
|
behind its one line carries a chevron; clicking it opens what the message brought with it, with a
|
|
<strong>Copy</strong> of its own.</p>
|
|
<p>Each tab filters independently: a <strong>Severity</strong> list, a <strong>Category</strong> list, a <em>Filter text…</em> box, and
|
|
a <strong>Reset</strong>. The badge at the right of that toolbar reads two numbers separated by a slash, and they
|
|
count different things — rows currently shown on the left, raw messages on the right, so folding
|
|
alone makes them differ, and on a long session the left number stops at the most recent thousand
|
|
while the right goes on counting. That badge is also the tab's connection indicator: it is outlined
|
|
green only while the connection behind that list is up, and its tooltip names the state. <strong>Export</strong>
|
|
writes the tab's filtered rows to a CSV file.</p>
|
|
<div class="IMPORTANT">
|
|
<h5>Important</h5>
|
|
<p>Two different controls on this screen answer to <strong>Reset</strong>, and only one of them is labelled with
|
|
it. The labelled one sits in each tab's filter toolbar and clears that tab's three filters and
|
|
nothing else. The other is the transport group's eject button, which carries no text at all and
|
|
reads <strong>Reset</strong> only in its tooltip; it ends the session and empties three of the four lists —
|
|
<strong>Shell</strong>, <strong>NC Diagnostics</strong> and <strong>Step Diagnostics</strong>. Only <strong>NC Manipulation</strong> is left standing,
|
|
and the same is true of a project change: opening, reloading, creating or closing a project
|
|
empties the same three and leaves that one alone. It is the list to read for what the last
|
|
conversion or optimisation said, long after the run that produced it has been reset away.</p>
|
|
</div>
|
|
<p><strong>The lists are the service's, not the browser's.</strong> They survive a reload, a move to another screen
|
|
and a second tab opened on the same service, and two browsers watching the same run read the same
|
|
four lists.</p>
|
|
<p>That is also what makes collapsing the panel harmless. Collapsing it takes it down entirely rather
|
|
than hiding it, and all four connections drop with it. Nothing is lost, because nothing was being
|
|
held here. What does not come back is the arrangement: re-expanding builds the panel fresh, on the
|
|
first tab, with every tab's severity, category and text filters back at their defaults.</p>
|
|
<h2 id="the-service-log">The service log</h2>
|
|
<p><strong>Show Log</strong>, near the right-hand end of the menu bar, opens the Log Viewer at <code>/preference/log</code>.
|
|
Its tooltip reads <em>View the application log</em>, and the page it opens is titled <strong>Log Viewer</strong>.</p>
|
|
<p>The viewer shows one file: the one the service is writing for the current day. There is no way to
|
|
reach an earlier day's file from this page.</p>
|
|
<ol>
|
|
<li>Read the header row for what is on screen — the day the file covers, the time it was last
|
|
fetched, and how many lines came back. The pane opens at the end of the file, which is where the
|
|
newest lines are, and stays at the end through later fetches unless it has been scrolled away
|
|
from the bottom.</li>
|
|
<li>Press <strong>Refresh</strong> for a fresh copy, or switch <strong>Auto</strong> on and choose an interval — two, five, ten
|
|
or thirty seconds — to have it re-fetched on its own.</li>
|
|
<li>Take the text with <strong>Copy</strong>, or the whole file with <strong>Download</strong>. Both are unavailable while
|
|
there is nothing loaded.</li>
|
|
</ol>
|
|
<p><strong>Switch Auto off before leaving the page.</strong> Moving to another screen does not stop it: the page is
|
|
kept alive behind the one on screen and goes on re-fetching at its interval. Reloading the browser
|
|
stops it, and so does a project change, because both rebuild the page area from scratch.</p>
|
|
<p>An empty file and a missing file look almost alike and are not the same thing. Both show <em>No log
|
|
file for today.</em>, and both hide the line count entirely — no count is drawn at all rather than one
|
|
reading zero, so the caption simply being absent is itself the signal that nothing came back. The
|
|
day badge is what separates them: when the file exists, the day comes from the service's own clock;
|
|
when there is no file at all, it comes from the browser's clock in UTC, which need not name the same
|
|
day.</p>
|
|
<p>A fetch that fails replaces the pane with the reason and a <strong>Retry</strong> button, and posts the reason to
|
|
the footer under the viewer's own name — one of the few lines that reaches the footer without ever
|
|
having been a toast.</p>
|
|
<p>The Log Viewer at <code>/preference/log</code>, on a service that has been running for a while. The header
|
|
carries the page name, the day the file covers, when it was last loaded and its line count, then the
|
|
<strong>Auto</strong> toggle — off here — beside its interval, and <strong>Refresh</strong>, <strong>Copy</strong> and <strong>Download</strong>. The
|
|
lines in view are the service's own connection traffic for a whole screen: everything a page
|
|
connects — the four message tabs among them — arrives in one block and leaves in another once the
|
|
page is left, and most of what lies between is the rendering canvas being set up and reporting
|
|
frames.</p>
|
|
<p><img src="messages-and-logs-img/log-viewer.en.png" alt="The Log Viewer: a header row with a day badge, a last-loaded time, a line count, an Auto toggle switched off beside a 5 s interval, and Refresh, Copy and Download at the right; below it a dark monospaced pane, scrolled to the end of the file, whose lines record a screen's connections arriving together, the four message lists among them, then a stretch of canvas rendering and frame compression, then the same connections leaving together"></p>
|
|
<p>This is the log of the <strong>service</strong>, not of the browser. A message seen in the footer reaches it only
|
|
if the service also recorded it, and much of what it holds was never shown anywhere in the
|
|
application.</p>
|
|
<h2 id="which-surface-answers-which-question">Which surface answers which question</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>To find out</th>
|
|
<th>Read</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>what the last action reported</td>
|
|
<td>the footer's latest line</td>
|
|
</tr>
|
|
<tr>
|
|
<td>what was reported while another screen was open</td>
|
|
<td>the recent list behind it — the only copy the window keeps</td>
|
|
</tr>
|
|
<tr>
|
|
<td>where a run has got to</td>
|
|
<td>the footer's session strip</td>
|
|
</tr>
|
|
<tr>
|
|
<td>whether one of the Project menu's operations is still running</td>
|
|
<td>the footer's background zone</td>
|
|
</tr>
|
|
<tr>
|
|
<td>what the session itself started, finished or refused</td>
|
|
<td>the <strong>Shell</strong> tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td>why a program did not do what its text says</td>
|
|
<td>the <strong>NC Diagnostics</strong> tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td>why a move behaved the way it did</td>
|
|
<td>the <strong>Step Diagnostics</strong> tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td>what the last conversion or optimisation reported</td>
|
|
<td>the <strong>NC Manipulation</strong> tab, which a reset does not clear</td>
|
|
</tr>
|
|
<tr>
|
|
<td>why a project opened with pieces missing</td>
|
|
<td>the footer's recent list, or the Log Viewer — <strong>not</strong> the Session Messages panel</td>
|
|
</tr>
|
|
<tr>
|
|
<td>what the service recorded, shown or not</td>
|
|
<td>the Log Viewer</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="see-also">See Also</h2>
|
|
<ul>
|
|
<li><a href="index.html">Basics</a> — the rest of what is true on every screen</li>
|
|
<li><a href="the-app-window.html">The Application Window</a> — the footer's three regions, and the menu bar Show Log sits on</li>
|
|
<li><a href="preferences.html">Preferences</a> — the Preference menu that Show Log is not an entry of, and what else the service keeps for everyone on it</li>
|
|
<li><a href="projects.html">Projects</a> — the actions behind the footer's background zone, and what a project change clears</li>
|
|
<li><a href="../run/when-something-goes-wrong.html">When Something Goes Wrong</a> — using these lists on a run that did not do what was expected</li>
|
|
</ul>
|
|
|
|
</article>
|
|
|
|
<div class="contribution d-print-none">
|
|
</div>
|
|
|
|
<div class="next-article d-print-none border-top" id="nextArticle"></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>
|