42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
@page "/robot-monitor"
|
|
@rendermode InteractiveWebAssemblyNoPrerender
|
|
@attribute [Authorize]
|
|
@inject RobotApp.Client.Services.RobotMonitorService MonitorService
|
|
@implements IAsyncDisposable
|
|
|
|
<PageTitle>Robot Monitor</PageTitle>
|
|
|
|
<div class="d-flex w-100 h-100 overflow-hidden">
|
|
<RobotApp.Client.Pages.Components.Monitor.RobotMonitorView @ref="@RobotMonitorViewRef"
|
|
MonitorData="@_monitorData"
|
|
IsConnected="@MonitorService.IsConnected" />
|
|
</div>
|
|
|
|
@code {
|
|
private RobotMonitorDto? _monitorData;
|
|
private RobotApp.Client.Pages.Components.Monitor.RobotMonitorView? RobotMonitorViewRef;
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
if (firstRender)
|
|
{
|
|
MonitorService.OnDataReceived += OnMonitorDataReceived;
|
|
await MonitorService.StartAsync();
|
|
}
|
|
}
|
|
|
|
private void OnMonitorDataReceived(RobotMonitorDto data)
|
|
{
|
|
_monitorData = data;
|
|
RobotMonitorViewRef?.UpdatePath();
|
|
InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
MonitorService.OnDataReceived -= OnMonitorDataReceived;
|
|
await MonitorService.StopAsync();
|
|
}
|
|
}
|
|
|