Update SickBlazorApp/Components/Pages/Sick.razor
This commit is contained in:
parent
8bc1b1f2c0
commit
574004da1e
|
|
@ -201,15 +201,37 @@
|
||||||
|
|
||||||
private async Task OnApplyNodeIdClicked()
|
private async Task OnApplyNodeIdClicked()
|
||||||
{
|
{
|
||||||
if (!_inputNodeId.HasValue)
|
if (!_inputNodeId.HasValue) return;
|
||||||
return;
|
|
||||||
|
|
||||||
|
_applying = true; // Sử dụng flag để disable các nút khác
|
||||||
|
StateHasChanged();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
byte newNodeId = (byte)_inputNodeId.Value;
|
byte newNodeId = (byte)_inputNodeId.Value;
|
||||||
byte oldNodeId = CanService.CurrentNodeId;
|
byte oldNodeId = CanService.CurrentNodeId;
|
||||||
|
|
||||||
|
// 1. Gửi lệnh đổi ID qua CAN bus
|
||||||
await CanService.ApplyNodeIdAsync(oldNodeId, newNodeId);
|
await CanService.ApplyNodeIdAsync(oldNodeId, newNodeId);
|
||||||
|
|
||||||
_inputNodeId = null; // reset input
|
// 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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user