77 lines
2.7 KiB
Plaintext
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();
|
|
}
|
|
}
|