Files
BQP/srcs/RobotNet10/FleetManager/RobotNet10.FleetManager.Client/Components/RobotDetail/PositionCard.razor
2026-07-13 09:25:40 +07:00

77 lines
2.7 KiB
Plaintext

@using RobotNet.VDA5050.State
<MudPaper Class="pa-4" Elevation="2">
<MudText Typo="Typo.h6" Class="mb-3">Position</MudText>
@if (State?.AgvPosition != null)
{
<MudSimpleTable Elevation="0">
<tbody>
<tr>
<td><strong>X:</strong></td>
<td>@State.AgvPosition.X.ToString("F3") m</td>
</tr>
<tr>
<td><strong>Y:</strong></td>
<td>@State.AgvPosition.Y.ToString("F3") m</td>
</tr>
<tr>
<td><strong>Theta:</strong></td>
<td>@State.AgvPosition.Theta.ToString("F3") rad</td>
</tr>
<tr>
<td><strong>Map ID:</strong></td>
<td>@(State.AgvPosition.MapId ?? "N/A")</td>
</tr>
<tr>
<td><strong>Position Initialized:</strong></td>
<td>
@if (State.AgvPosition.PositionInitialized)
{
<MudChip T="string" Size="Size.Small" Color="Color.Success">Yes</MudChip>
}
else
{
<MudChip T="string" Size="Size.Small" Color="Color.Warning">No</MudChip>
}
</td>
</tr>
@if (State.AgvPosition.LocalizationScore >= 0)
{
<tr>
<td><strong>Localization Score:</strong></td>
<td>@State.AgvPosition.LocalizationScore.ToString("F3")</td>
</tr>
}
@if (State.AgvPosition.DeviationRange >= 0)
{
<tr>
<td><strong>Deviation Range:</strong></td>
<td>@State.AgvPosition.DeviationRange.ToString("F3") m</td>
</tr>
}
@if (!string.IsNullOrWhiteSpace(State.AgvPosition.MapDescription))
{
<tr>
<td><strong>Map Description:</strong></td>
<td>@State.AgvPosition.MapDescription</td>
</tr>
}
</tbody>
</MudSimpleTable>
}
else
{
<MudText Typo="Typo.body2" Align="Align.Center">No position data available</MudText>
}
</MudPaper>
@code {
public StateMsg? State { get; set; }
public void Update(StateMsg? state)
{
State = state;
StateHasChanged();
}
}