UI_SequentMicrosystems-RPI/Components/RTD8TMGraphComponent.razor

79 lines
1.7 KiB
Plaintext

@using ApexCharts
@using UI_SequentMicrosystems.Components
@using UI_SequentMicrosystems.Services
@using UI_SequentMicrosystems.Models
@inject RTD8TMService _RTD8TMService
<ApexChart TItem="RTD8TMPointModel"
Title="Temperature"
Options="chartOptions"
@ref="chart">
@foreach (byte stack in _RTD8TMService.GetActualData().Keys)
{
for (byte chanel = 0; chanel < 8; chanel++)
{
if (_RTD8TMService.GetChanelName(stack, chanel) != "----------")
{
<ApexPointSeries TItem="RTD8TMPointModel"
Items="@_RTD8TMService.GetChartData(stack, chanel)"
Name="@(_RTD8TMService.GetChanelName(stack, chanel))"
SeriesType="SeriesType.Line"
XValue="@(e => e.Time.ToString("HH:mm:ss"))"
YValue="@(e => (decimal)e.Value)"
OrderBy="e=>e.X" />
}
}
}
</ApexChart>
@code {
private ApexChart<RTD8TMPointModel> chart;
private ApexChartOptions<RTD8TMPointModel> chartOptions;
protected override void OnInitialized()
{
_RTD8TMService.EventUpdateGraph += UpdateChart;
chartOptions = new ApexChartOptions<RTD8TMPointModel>
{
Theme = new Theme
{
Mode = Mode.Dark,
},
Legend = new Legend
{
Position = LegendPosition.Bottom,
FontSize = "20px",
HorizontalAlign = Align.Center
}
};
}
public async Task UpdateChart(object? o, bool b)
{
await InvokeAsync(() =>
{
chart.UpdateSeriesAsync(false);
StateHasChanged();
});
}
}