tune
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
</ol>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Add <code>Hi.Wpf</code> packages to the project if the building WPF project.</p>
|
||||
<p>Add <code>Hi.WpfPlus</code> packages to the project if the building WPF project.</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>Create Main Window, set the layout according to <a href="main-panel.html#main-panel-layout">Main Panel Layout</a>.</li>
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
<li>Machine Tool MenuItem
|
||||
Open <a href="mech/machining-chain-page.html">Machine Tool Page</a>
|
||||
Sole window in WPF app.
|
||||
The page manages <a class="xref" href="../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningEquipment">MachiningEquipment</a>.<Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChain>.</li>
|
||||
The page manages <xref:Hi.MachiningProcs.MachiningProject.MachiningEquipment>.<Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.MachiningChain>.</li>
|
||||
<li>Controller MenuItem
|
||||
Open <a href="controller/index.html">Controller Page</a></li>
|
||||
<li>Tool House MenuItem</li>
|
||||
|
||||
+2
-2
@@ -174,7 +174,7 @@ The model is <a class="xref" href="../../../../../api/Hi.Milling.Cutters.Milling
|
||||
<li>Minimum Available Cutting Thickness (μm)
|
||||
<ul>
|
||||
<li>Readonly field with format “G4”</li>
|
||||
<li>Shows calculated value from <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_GetMinimumUncutChipThickness_um_Hi_MillingForces_Fittings_ICuttingPara_">GetMinimumUncutChipThickness_um(ICuttingPara)</a>. The argument (cutting parameter) is obtained by the <a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece_">Workpiece</a>.<a class="xref" href="../../../../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_CuttingPara">CuttingPara</a>. Series pass the models by the GUI if needed.</li>
|
||||
<li>Shows calculated value from <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_GetMinimumUncutChipThickness_um_Hi_MillingForces_Fittings_ICuttingPara_">GetMinimumUncutChipThickness_um(ICuttingPara)</a>. The argument (cutting parameter) is obtained by the <a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<xref:Hi.MachiningProcs.MachiningProject.Workpiece*>.<a class="xref" href="../../../../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_CuttingPara">CuttingPara</a>. Series pass the models by the GUI if needed.</li>
|
||||
<li>Note Label
|
||||
<ul>
|
||||
<li>Show Workpiece Cutting Parameter Name.
|
||||
@@ -383,7 +383,7 @@ Apply <a class="xref" href="../../../../../api/Hi.Physics.CoatingMaterial.html">
|
||||
<li>Limit by Theoretical Minimum Feed Per Tooth Checkbox
|
||||
<ul>
|
||||
<li>Shows calculated minimum uncut chip thickness value.
|
||||
To get the value, <a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece_">Workpiece</a>.<a class="xref" href="../../../../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_CuttingPara_">CuttingPara</a> and <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html">MillingCutter</a> are required. Series pass the model by the GUI if needed.</li>
|
||||
To get the value, <a class="xref" href="../../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<xref:Hi.MachiningProcs.MachiningProject.Workpiece*>.<a class="xref" href="../../../../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_CuttingPara_">CuttingPara</a> and <a class="xref" href="../../../../../api/Hi.Milling.Cutters.MillingCutter.html">MillingCutter</a> are required. Series pass the model by the GUI if needed.</li>
|
||||
<li>When checked, enforces minimum feed constraint</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
<p>The page triggers by <a href="../main-panel.html">Main Panel</a>.</p>
|
||||
<p>The key model is <a class="xref" href="../../../../api/Hi.NcMech.Fixtures.Fixture.html">Fixture</a> and <a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a>.
|
||||
Fixture is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_MachiningEquipment">MachiningEquipment</a>.<a class="xref" href="../../../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_Fixture">Fixture</a>.</p>
|
||||
Fixture is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<xref:Hi.MachiningProcs.MachiningProject.MachiningEquipment>.<a class="xref" href="../../../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_Fixture">Fixture</a>.</p>
|
||||
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppConfig> which assigned from the parent component.</p>
|
||||
<h2 id="layout">Layout</h2>
|
||||
<ul>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
<p>The page triggers by <a href="../main-panel.html">Main Panel</a>.</p>
|
||||
<p>The key model is <a class="xref" href="../../../../api/Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a> and <a class="xref" href="../../../../api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html">WorkpieceEditorDisplayeeConfig</a>.
|
||||
Which is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_Workpiece">Workpiece</a>.</p>
|
||||
Which is assigned from the Main Panel's <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<xref:Hi.MachiningProcs.MachiningProject.Workpiece>.</p>
|
||||
<p><a class="xref" href="../../../../api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html">FixtureEditorDisplayeeConfig</a> is from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppConfig> which assigned from the parent component.</p>
|
||||
<h2 id="layout">Layout</h2>
|
||||
<ul>
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
<li>Pause</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Both webservice and win-desktop applications use <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events for monitoring <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_PacePlayer">PacePlayer</a> status changes.</li>
|
||||
<li>Both webservice and win-desktop applications use <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events for monitoring <xref:Hi.MachiningProcs.MachiningProject.PacePlayer> status changes.</li>
|
||||
<li>In webservice applications, the <code>PlayerStatusService</code> subscribes to these <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events and broadcasts status changes via <code>PlayerStatusHub</code> using SignalR for real-time communication.</li>
|
||||
<li>Win-desktop applications can directly subscribe to <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events for status updates.</li>
|
||||
<li>Alter the background color of the <code>Status Text Field</code> if the status changed.
|
||||
@@ -162,7 +162,7 @@
|
||||
<li>Players/PlayerStatusService.cs</li>
|
||||
</ul>
|
||||
<h4 id="signalr-implementation-webapi-only">SignalR Implementation (Webapi Only)</h4>
|
||||
<p><code>PlayerStatusHub</code> provides real-time player status updates, with methods <code>GetPlayerStatus()</code> and event <code>PlayerStatusUpdated</code>. <code>PlayerStatusService</code> monitors <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events (<a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsRunningChangedEvent">PacePlayer_IsRunningChangedEvent</a>, <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsLockedChangedEvent">PacePlayer_IsLockedChangedEvent</a>, <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_IsFinishedChangedEvent">PacePlayer_IsFinishedChangedEvent</a>, <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_PacePlayer_ResetedEvent">PacePlayer_ResetedEvent</a>) and broadcasts changes via SignalR. The JavaScript component connects to <code>/playerStatusHub</code> and listens for status updates. API endpoints include <code>/api/player/start</code>, <code>/api/player/pause</code>, <code>/api/player/resume</code>, <code>/api/player/run-line</code>, <code>/api/player/run-step</code>, <code>/api/player/stop</code>, and <code>/api/player/reset</code>.</p>
|
||||
<p><code>PlayerStatusHub</code> provides real-time player status updates, with methods <code>GetPlayerStatus()</code> and event <code>PlayerStatusUpdated</code>. <code>PlayerStatusService</code> monitors <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a> events (<xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsRunningChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsLockedChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_IsFinishedChangedEvent>, <xref:Hi.MachiningProcs.LocalProjectService.PacePlayer_ResetedEvent>) and broadcasts changes via SignalR. The JavaScript component connects to <code>/playerStatusHub</code> and listens for status updates. API endpoints include <code>/api/player/start</code>, <code>/api/player/pause</code>, <code>/api/player/resume</code>, <code>/api/player/run-line</code>, <code>/api/player/run-step</code>, <code>/api/player/stop</code>, and <code>/api/player/reset</code>.</p>
|
||||
<h3 id="razor-page-source-code">Razor Page Source Code</h3>
|
||||
<pre><code class="lang-csharp" name="SampleCode-razor">@using Hi.Common.PathUtils;
|
||||
@using Hi.HiNcKits;
|
||||
@@ -173,6 +173,7 @@
|
||||
|
||||
@{
|
||||
MachiningProject machiningProject = hiNcHost.MachiningProject;
|
||||
var localProjectService = hiNcHost.LocalProjectService;
|
||||
bool disabledByMachiningProject = machiningProject == null;
|
||||
}
|
||||
|
||||
@@ -186,15 +187,15 @@
|
||||
<div class="d-inline-block" style="width: 4rem">
|
||||
@{
|
||||
if (machiningProject == null) { }
|
||||
else if (machiningProject.PacePlayer.IsRunning)
|
||||
else if (localProjectService.PacePlayer.IsRunning)
|
||||
{
|
||||
<span class="badge text-bg-warning">@Loc["Running"]</span>
|
||||
}
|
||||
else if (machiningProject.PacePlayer.IsLocked)
|
||||
else if (localProjectService.PacePlayer.IsLocked)
|
||||
{
|
||||
<span class="badge text-bg-secondary">@Loc["Pause"]</span>
|
||||
}
|
||||
else if (machiningProject.PacePlayer.IsFinished)
|
||||
else if (localProjectService.PacePlayer.IsFinished)
|
||||
{
|
||||
<span class="badge text-bg-success">@Loc["Finish"]</span>
|
||||
}
|
||||
@@ -210,11 +211,11 @@
|
||||
<div id="player-@Tid" class="btn-group collapse collapse-horizontal show" role="group">
|
||||
|
||||
@if (machiningProject == null) { }
|
||||
else if (!machiningProject.PacePlayer.IsLocked)
|
||||
else if (!localProjectService.PacePlayer.IsLocked)
|
||||
{
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Start"] (S)"
|
||||
accesskey="s"
|
||||
disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)"
|
||||
disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)"
|
||||
@onclick="StartOrContinue">
|
||||
<span class="oi oi-media-play me-1"></span>
|
||||
</button>
|
||||
@@ -224,27 +225,27 @@
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Continue"] (S)"
|
||||
accesskey="s"
|
||||
@onclick="StartOrContinue"
|
||||
disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished||machiningProject.PacePlayer.IsRunning)">
|
||||
disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished||localProjectService.PacePlayer.IsRunning)">
|
||||
<span class="oi oi-media-play me-1"></span>
|
||||
</button>
|
||||
}
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Pause"] (P)"
|
||||
accesskey="p"
|
||||
@onclick="Pause"
|
||||
disabled="@(disabledByMachiningProject||!machiningProject.PacePlayer.IsRunning)">
|
||||
disabled="@(disabledByMachiningProject||!localProjectService.PacePlayer.IsRunning)">
|
||||
<span class="oi oi-media-pause me-1"></span>
|
||||
</button>
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Run One Line"] (L)"
|
||||
accesskey="l"
|
||||
@onclick="RunToLineEnd"
|
||||
disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)">
|
||||
disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)">
|
||||
<span class="oi oi-media-step-forward me-1"></span>
|
||||
</button>
|
||||
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Run One Step"] (K)"
|
||||
accesskey="k"
|
||||
@onclick="RunToNextPace"
|
||||
disabled="@(disabledByMachiningProject||machiningProject.PacePlayer.IsFinished)">
|
||||
disabled="@(disabledByMachiningProject||localProjectService.PacePlayer.IsFinished)">
|
||||
<CommonRcl.Shared.CombinedIcon>
|
||||
<IconA>
|
||||
<span class="oi oi-media-step-forward me-1"></span>
|
||||
@@ -259,7 +260,7 @@
|
||||
|
||||
<button class="btn btn-primary text-nowrap" title="@Loc["Break"]"
|
||||
@onclick="@Break"
|
||||
disabled="@(disabledByMachiningProject||!(machiningProject.PacePlayer.IsLocked||machiningProject.PacePlayer.IsFinished))">
|
||||
disabled="@(disabledByMachiningProject||!(localProjectService.PacePlayer.IsLocked||localProjectService.PacePlayer.IsFinished))">
|
||||
<span class="oi oi-media-stop me-1"></span>
|
||||
</button>
|
||||
|
||||
@@ -285,6 +286,7 @@ namespace HiNcRcl.Areas.Player
|
||||
StringLocalizer Loc { get; } = new StringLocalizer(typeof(PlayerDiv));
|
||||
SemaphoreSlim DisposeSemaphore { get; } = new SemaphoreSlim(1);
|
||||
MachiningProject MachiningProject => hiNcHost.MachiningProject;
|
||||
LocalProjectService LocalProjectService => hiNcHost.LocalProjectService;
|
||||
bool disposedValue = false;
|
||||
/// <inheritdoc/>
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
@@ -297,11 +299,11 @@ namespace HiNcRcl.Areas.Player
|
||||
var machiningProject = MachiningProject;
|
||||
if (machiningProject != null)
|
||||
{
|
||||
machiningProject.PacePlayer.IsLockedChangedEvent
|
||||
LocalProjectService.PacePlayer.IsLockedChangedEvent
|
||||
+= EnumerablePlayer_IsLockedEventHandler;
|
||||
machiningProject.PacePlayer.IsRunningChangedEvent
|
||||
LocalProjectService.PacePlayer.IsRunningChangedEvent
|
||||
+= EnumerablePlayer_IsLockedEventHandler;
|
||||
machiningProject.PacePlayer.IsFinishedChangedEvent
|
||||
LocalProjectService.PacePlayer.IsFinishedChangedEvent
|
||||
+= EnumerablePlayer_IsLockedEventHandler;
|
||||
}
|
||||
}
|
||||
@@ -314,11 +316,11 @@ namespace HiNcRcl.Areas.Player
|
||||
var machiningProject = MachiningProject;
|
||||
if (machiningProject != null)
|
||||
{
|
||||
machiningProject.PacePlayer.IsLockedChangedEvent
|
||||
LocalProjectService.PacePlayer.IsLockedChangedEvent
|
||||
-= EnumerablePlayer_IsLockedEventHandler;
|
||||
machiningProject.PacePlayer.IsRunningChangedEvent
|
||||
LocalProjectService.PacePlayer.IsRunningChangedEvent
|
||||
-= EnumerablePlayer_IsLockedEventHandler;
|
||||
machiningProject.PacePlayer.IsFinishedChangedEvent
|
||||
LocalProjectService.PacePlayer.IsFinishedChangedEvent
|
||||
-= EnumerablePlayer_IsLockedEventHandler;
|
||||
}
|
||||
disposedValue = true;
|
||||
@@ -333,14 +335,15 @@ namespace HiNcRcl.Areas.Player
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (!MachiningProject.PacePlayer.IsLocked)
|
||||
var pacePlayer = LocalProjectService.PacePlayer;
|
||||
if (!pacePlayer.IsLocked)
|
||||
{
|
||||
MachiningProject.PacePlayer.Start();
|
||||
pacePlayer.Start();
|
||||
}
|
||||
else if (!MachiningProject.PacePlayer.IsRunning
|
||||
&& !MachiningProject.PacePlayer.IsFinished)
|
||||
else if (!pacePlayer.IsRunning
|
||||
&& !pacePlayer.IsFinished)
|
||||
{
|
||||
MachiningProject.PacePlayer.Resume();
|
||||
pacePlayer.Resume();
|
||||
}
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
@@ -348,35 +351,35 @@ namespace HiNcRcl.Areas.Player
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
MachiningProject?.PacePlayer.Pause();
|
||||
LocalProjectService.PacePlayer.Pause();
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
public async Task RunToLineEnd()
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
MachiningProject?.NcRunner.RunToLineEnd();
|
||||
LocalProjectService.NcRunner.RunToLineEnd();
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
public async Task RunToNextPace()
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
MachiningProject?.PacePlayer.RunToNextPace();
|
||||
LocalProjectService.PacePlayer.RunToNextPace();
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
public async Task Break()
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
MachiningProject?.PacePlayer.Terminate();
|
||||
LocalProjectService.PacePlayer.Terminate();
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
public async Task Reset()
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
MachiningProject?.PacePlayer.Reset();
|
||||
LocalProjectService.PacePlayer.Reset();
|
||||
}).ShowIfCatched(this);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -89,7 +89,7 @@
|
||||
|
||||
<p>The panel locates on the <a href="index.html">Player Panel</a>.</p>
|
||||
<p>The model is <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> and <xref:Hi.HiNcKits.AppService>.</p>
|
||||
<p>The <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> is assigned by <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ClStrip">ClStrip</a>.<a class="xref" href="../../../../api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_PosSelected">PosSelected</a>.</p>
|
||||
<p>The <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> is assigned by <xref:Hi.MachiningProcs.MachiningProject.ClStrip>.<a class="xref" href="../../../../api/Hi.CutterLocations.ClStrips.ClStrip.html#Hi_CutterLocations_ClStrips_ClStrip_PosSelected">PosSelected</a>.</p>
|
||||
<p>Show step infomation from <xref:Hi.HiNcKits.AppService>.<xref:Hi.HiNcKits.AppService.DisplayedStepPresentAccessList>.</p>
|
||||
<p>The resx of <a class="xref" href="../../../../api/Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> contains the translation of <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html">PresentAttribute</a>.<a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.html#Hi_MachiningSteps_PresentAttribute_Name">Name</a>, apply the translation to the GUI. If the translation not existed, use the original value.</p>
|
||||
<p>See Also <a href="../preference/step-present-preference-page.html">Step Present Preference Page</a>.</p>
|
||||
@@ -106,7 +106,7 @@
|
||||
}
|
||||
}
|
||||
</code></pre><h2 id="signalr-implementation-webapi-only">SignalR Implementation (Webapi Only)</h2>
|
||||
<p><code>SelectedStepInfoHub</code> provides real-time step updates with method <code>GetSelectedStepInfo()</code> and event <code>SelectedStepInfoUpdated</code>. <code>SelectedStepInfoService</code> monitors <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_PosSelected">ClStrip_PosSelected</a> and <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ClStrip_MachiningStepSelected">ClStrip_MachiningStepSelected</a> events and broadcasts updates. The JavaScript component connects to <code>/selectedStepInfoHub</code> to receive step change notifications and update the UI accordingly.</p>
|
||||
<p><code>SelectedStepInfoHub</code> provides real-time step updates with method <code>GetSelectedStepInfo()</code> and event <code>SelectedStepInfoUpdated</code>. <code>SelectedStepInfoService</code> monitors <xref:Hi.MachiningProcs.LocalProjectService.ClStrip_PosSelected> and <xref:Hi.MachiningProcs.LocalProjectService.ClStrip_MachiningStepSelected> events and broadcasts updates. The JavaScript component connects to <code>/selectedStepInfoHub</code> to receive step change notifications and update the UI accordingly.</p>
|
||||
<h2 id="source-code-path">Source Code Path</h2>
|
||||
<p>See <a href="../index.html">this page</a> for git repository.</p>
|
||||
<h3 id="wpf-application-source-code-path">WPF Application Source Code Path</h3>
|
||||
|
||||
+6
-6
@@ -217,11 +217,11 @@ Apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.h
|
||||
<div class="@cardTextClass">
|
||||
<p class="@pCalss">
|
||||
@{
|
||||
var mcCodes = HostMachiningProject?.MachiningEquipment?.GetMachiningChain()?.McCodes;
|
||||
if (mcCodes != null)
|
||||
{
|
||||
var mcTransformers = HostMachiningProject
|
||||
?.MachiningEquipment?.GetMachiningChain()?.McTransformers;
|
||||
var mcCodes = LocalProjectService.MachiningEquipment?.GetMachiningChain()?.McCodes;
|
||||
if (mcCodes != null)
|
||||
{
|
||||
var mcTransformers = LocalProjectService
|
||||
?.MachiningEquipment?.GetMachiningChain()?.McTransformers;
|
||||
for (int i = 0; i < mcCodes.Length; i++)
|
||||
{
|
||||
if (mcTransformers[i] == null)
|
||||
@@ -414,7 +414,7 @@ Apply <a class="xref" href="../../../../api/Hi.MachiningSteps.PresentAttribute.h
|
||||
{
|
||||
foreach(var entry in flexDictionary)
|
||||
{
|
||||
if(HostMachiningProject?.StepPropertyAccessDictionary.TryGetValue(
|
||||
if(LocalProjectService.StepPropertyAccessDictionary.TryGetValue(
|
||||
entry.Key, out var stepPropertyAccess)==true)
|
||||
{
|
||||
<div class="w-auto" title="@(stepPropertyAccess.PresentAttribute?.Name)">
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<article data-uid="">
|
||||
<h1 id="session-message-panel">Session Message Panel</h1>
|
||||
|
||||
<p>The model is <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_SessionMessageHost">SessionMessageHost</a>.</p>
|
||||
<p>The model is <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a>.<xref:Hi.MachiningProcs.MachiningProject.SessionMessageHost>.</p>
|
||||
<p><a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningProject.html">MachiningProject</a> is assigned from the <a href="../player/index.html">Player Panel</a>.</p>
|
||||
<h2 id="layout">Layout</h2>
|
||||
<ul>
|
||||
@@ -114,9 +114,9 @@
|
||||
<h2 id="central-message-table">Central Message Table</h2>
|
||||
<p>The model of Central Message Table is <a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html">SessionMessageHost</a>.<a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html#Hi_MachiningProcs_SessionMessageHost_MessageCollection">MessageCollection</a>.</p>
|
||||
<p>Only take last 1000 filtered elements in the <a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html#Hi_MachiningProcs_SessionMessageHost_MessageCollection">MessageCollection</a> by <a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html#Hi_MachiningProcs_SessionMessageHost_GetFliteredList_Hi_MachiningProcs_SessionMessageHost_FilterFlag_System_String_">GetFliteredList(FilterFlag, string)</a> to show for user experience. Find the usage example in the code:</p>
|
||||
<pre><code class="lang-csharp" name="Demo_UseSessionMessageHost">internal static void DemoUseSessionMessageHost(MachiningProject project)
|
||||
<pre><code class="lang-csharp" name="Demo_UseSessionMessageHost">internal static void DemoUseSessionMessageHost(LocalProjectService localProjectService)
|
||||
{
|
||||
SessionMessageHost sessionMessageHost = project.SessionMessageHost;
|
||||
SessionMessageHost sessionMessageHost = localProjectService.SessionMessageHost;
|
||||
|
||||
SessionMessageHost.FilterFlag filterFlags =
|
||||
SessionMessageHost.FilterFlag.NC |
|
||||
@@ -162,7 +162,7 @@
|
||||
<h2 id="behavior-of-export-button">Behavior of Export Button</h2>
|
||||
<p>Export ALL filtered elements in the <a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html#Hi_MachiningProcs_SessionMessageHost_MessageCollection">MessageCollection</a> by <a class="xref" href="../../../../api/Hi.MachiningProcs.SessionMessageHost.html#Hi_MachiningProcs_SessionMessageHost_GetFliteredList_Hi_MachiningProcs_SessionMessageHost_FilterFlag_System_String_">GetFliteredList(FilterFlag, string)</a>.</p>
|
||||
<h2 id="signalr-implementation-webapi-only">SignalR Implementation (Webapi Only)</h2>
|
||||
<p><code>SessionMessageHub</code> provides real-time message updates with method <code>GetSessionMessages(string filterFlags, string filterText, int limit)</code> and event <code>SessionMessagesUpdated</code>. <code>SessionMessageService</code> monitors <a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionMessageHost_CollectionItemChanged">SessionMessageHost_CollectionItemChanged</a> and broadcasts updates. The service uses <a class="xref" href="../../../../api/Hi.Common.LooseRunner.html">LooseRunner</a> for non-blocking async operations. The JavaScript component connects to <code>/sessionMessageHub</code> to receive real-time message updates.</p>
|
||||
<p><code>SessionMessageHub</code> provides real-time message updates with method <code>GetSessionMessages(string filterFlags, string filterText, int limit)</code> and event <code>SessionMessagesUpdated</code>. <code>SessionMessageService</code> monitors <xref:Hi.MachiningProcs.LocalProjectService.SessionMessageHost_CollectionItemChanged> and broadcasts updates. The service uses <a class="xref" href="../../../../api/Hi.Common.LooseRunner.html">LooseRunner</a> for non-blocking async operations. The JavaScript component connects to <code>/sessionMessageHub</code> to receive real-time message updates.</p>
|
||||
<h2 id="source-code-path">Source Code Path</h2>
|
||||
<p>See <a href="../index.html">this page</a> for git repository.</p>
|
||||
<h3 id="wpf-application-source-code-path">WPF Application Source Code Path</h3>
|
||||
|
||||
Reference in New Issue
Block a user