RobotApp/RobotApp.Client/Pages/RobotMonitor.razor
Đăng Nguyễn 15a61fd986 update
2025-12-30 17:38:43 +07:00

51 lines
1.2 KiB
Plaintext

@page "/robot-monitor"
@rendermode InteractiveWebAssemblyNoPrerender
@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)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender)
{
MonitorService.OnDataReceived += OnMonitorDataReceived;
await MonitorService.StartAsync();
}
}
private void OnMonitorDataReceived(RobotMonitorDto data)
{
_monitorData = data;
RobotMonitorViewRef?.UpdatePath();
StateHasChanged();
}
public async ValueTask DisposeAsync()
{
MonitorService.OnDataReceived -= OnMonitorDataReceived;
await MonitorService.StopAsync();
}
}