Update SickBlazorApp/Components/Pages/Sick.razor

This commit is contained in:
QuanDT 2026-02-02 08:38:48 +00:00
parent 8bc1b1f2c0
commit 574004da1e

View File

@ -201,15 +201,37 @@
private async Task OnApplyNodeIdClicked() private async Task OnApplyNodeIdClicked()
{ {
if (!_inputNodeId.HasValue) if (!_inputNodeId.HasValue) return;
return;
byte newNodeId = (byte)_inputNodeId.Value; _applying = true; // Sử dụng flag để disable các nút khác
byte oldNodeId = CanService.CurrentNodeId; StateHasChanged();
await CanService.ApplyNodeIdAsync(oldNodeId, newNodeId); try
{
byte newNodeId = (byte)_inputNodeId.Value;
byte oldNodeId = CanService.CurrentNodeId;
_inputNodeId = null; // reset input // 1. Gửi lệnh đổi ID qua CAN bus
await CanService.ApplyNodeIdAsync(oldNodeId, newNodeId);
// 2. DỪNG SERVICE NGAY LẬP TỨC
// Điều này ngăn việc nhận frame từ ID cũ
CanService.Stop();
// 3. Reset UI state
_frames.Clear();
_nodeState = CanNodeState.PreOperational;
_inputNodeId = null;
}
catch (Exception ex)
{
// Log lỗi nếu cần
}
finally
{
_applying = false;
StateHasChanged();
}
} }
private async Task OnStartClicked() private async Task OnStartClicked()