@using System.Text.Json
@code {
private DataPreviewType DataType;
private string DataPreview = "";
private RobotVDA5050StateDto RobotState = new();
public void UpdateState(RobotVDA5050StateDto robotstate)
{
RobotState = robotstate;
DataTypeChanged();
StateHasChanged();
}
private void DataTypeChanged()
{
switch (DataType)
{
case DataPreviewType.Visualization:
DataPreview = JsonSerializer.Serialize(RobotState.Visualization, JsonOptionExtends.Read);
break;
case DataPreviewType.Node:
DataPreview = JsonSerializer.Serialize(RobotState.State.NodeStates, JsonOptionExtends.Read);
break;
case DataPreviewType.Edge:
DataPreview = JsonSerializer.Serialize(RobotState.State.EdgeStates, JsonOptionExtends.Read);
break;
case DataPreviewType.Order:
DataPreview = JsonSerializer.Serialize(GetOrderState(RobotState), JsonOptionExtends.Read);
break;
case DataPreviewType.Action:
DataPreview = JsonSerializer.Serialize(RobotState.State.ActionStates, JsonOptionExtends.Read);
break;
case DataPreviewType.Infomation:
DataPreview = JsonSerializer.Serialize(RobotState.State.Information, JsonOptionExtends.Read);
break;
case DataPreviewType.Battery:
DataPreview = JsonSerializer.Serialize(RobotState.State.BatteryState, JsonOptionExtends.Read);
break;
case DataPreviewType.Error:
DataPreview = JsonSerializer.Serialize(RobotState.State.Errors, JsonOptionExtends.Read);
break;
};
StateHasChanged();
}
private OrderState GetOrderState(RobotVDA5050StateDto state)
{
return new()
{
OrderId = state.State.OrderId,
OrderUpdateId = state.State.OrderUpdateId,
ZoneSetId = state.State.ZoneSetId,
LastNodeId = state.State.LastNodeId,
LastNodeSequenceId = state.State.LastNodeSequenceId,
Driving = state.State.Driving,
Paused = state.State.Paused,
NewBaseRequest = state.State.NewBaseRequest,
DistanceSinceLastNode = state.State.DistanceSinceLastNode,
OperatingMode = state.State.OperatingMode,
IsCanceled = state.OrderState.IsCanceled,
IsCompleted = state.OrderState.IsCompleted,
IsError = state.OrderState.IsError,
IsProcessing = state.OrderState.IsProcessing,
};
}
public enum DataPreviewType
{
Visualization,
Node,
Edge,
Order,
Action,
Infomation,
Battery,
Error
}
public class OrderState
{
public string OrderId { get; set; } = "";
public int OrderUpdateId { get; set; }
public string ZoneSetId { get; set; } = "";
public string LastNodeId { get; set; } = "";
public int LastNodeSequenceId { get; set; }
public bool Driving { get; set; }
public bool Paused { get; set; }
public bool NewBaseRequest { get; set; }
public double DistanceSinceLastNode { get; set; }
public string OperatingMode { get; set; } = "";
public bool IsError { get; set; }
public bool IsCompleted { get; set; }
public bool IsProcessing { get; set; }
public bool IsCanceled { get; set; }
}
}