parent
e39ddd02b6
commit
f4d7b3f2be
|
@ -5,6 +5,7 @@ using MECF.Framework.Common.Equipment;
|
|||
using Sicentury.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
@ -92,17 +93,17 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
return processHistoryDataList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//************************************************单步时硬件数据结果查询*******************************************************************
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询气体体积数据
|
||||
/// 拆分的天循查询数据
|
||||
/// </summary>
|
||||
/// <param name="daySlices">拆分的天</param>
|
||||
/// <param name="moduleName">PM名称</param>
|
||||
/// <param name="gasFlowSumList">显示列表对象</param>
|
||||
/// <returns></returns>
|
||||
public static List<ProcessHistoryDeviceData> GetProcessHistoryDeviceData(IEnumerable<DateRangeHelper> daySlices, string moduleName, List<ProcessHistoryItem> processHistoryItemList)
|
||||
public static ObservableCollection<ProcessHistoryDeviceData> GetProcessHistoryDeviceData(IEnumerable<DateRangeHelper> daySlices, string moduleName, List<ProcessHistoryItem> processHistoryItemList)
|
||||
{
|
||||
List<DataTable> dataTableList =new List<DataTable>();
|
||||
|
||||
|
@ -110,9 +111,9 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
{
|
||||
dataTableList.Add(GetProcessHistoryDeviceDataListDaySlices(daySlice, moduleName, processHistoryItemList));//拆分后,每次查询结果放入集合中
|
||||
}
|
||||
|
||||
|
||||
List<ProcessHistoryDeviceData> processHistoryDeviceDataList = new List<ProcessHistoryDeviceData>();
|
||||
|
||||
ObservableCollection<ProcessHistoryDeviceData> processHistoryDeviceDataList = new ObservableCollection<ProcessHistoryDeviceData>();
|
||||
|
||||
foreach (var item in processHistoryItemList)
|
||||
{
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
xmlns:userControls="clr-namespace:MECF.Framework.UI.Client.CenterViews.Core.UserControls"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
d:DesignHeight="800"
|
||||
d:DesignWidth="1500"
|
||||
d:DesignWidth="1900"
|
||||
FontSize="14"
|
||||
mc:Ignorable="d">
|
||||
<Grid Margin="10">
|
||||
<Grid.RowDefinitions>
|
||||
|
@ -20,13 +21,13 @@
|
|||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="425" />
|
||||
<ColumnDefinition Width="505" />
|
||||
<ColumnDefinition Width="1350" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Border
|
||||
Grid.ColumnSpan="3"
|
||||
Margin="0,5"
|
||||
Padding="1"
|
||||
HorizontalAlignment="Left"
|
||||
Background="{StaticResource Table_BG_Content}"
|
||||
|
@ -95,59 +96,73 @@
|
|||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Label Margin="3,0" VerticalAlignment="Center">RecipeName</Label>
|
||||
<Label Margin="3,0" VerticalAlignment="Center">Select Recipe Name</Label>
|
||||
<Label
|
||||
Margin="3,0"
|
||||
VerticalAlignment="Center"
|
||||
Content="{Binding RecipeProcessHistoryData.Name}" />
|
||||
Content="{Binding RecipeProcessHistoryData.Name}"
|
||||
FontWeight="Black" />
|
||||
<Label Margin="3,0" VerticalAlignment="Center">; Select Step Name</Label>
|
||||
<Label
|
||||
Margin="3,0"
|
||||
VerticalAlignment="Center"
|
||||
Content="{Binding SelectProcessHistoryData.StepName}"
|
||||
FontWeight="Black" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
AlternationCount="2"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
FontSize="13"
|
||||
IsReadOnly="True"
|
||||
ItemsSource="{Binding ProcessHistoryDataList}"
|
||||
SelectedItem="{Binding SelectProcessHistoryData}">
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" />
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="MouseDoubleClick">
|
||||
<micro:ActionMessage MethodName="DoubleClickItem" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Width="150"
|
||||
Binding="{Binding StepBeginTime}"
|
||||
Header="Step Start Time" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding StepEndTimeDisp}"
|
||||
Header="End Time" />
|
||||
<!--<DataGridTextColumn
|
||||
Width="95"
|
||||
Binding="{Binding StepTime}"
|
||||
Header="Step Time/s" />-->
|
||||
<DataGridTextColumn
|
||||
Width="80"
|
||||
Binding="{Binding StepNumber}"
|
||||
Header="Step Num" />
|
||||
<DataGridTextColumn
|
||||
Width="100"
|
||||
Binding="{Binding StepName}"
|
||||
Header="Step Name" />
|
||||
<!--<DataGridTemplateColumn Width="80" Header="Query">
|
||||
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
||||
|
||||
<DataGrid
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
AlternationCount="2"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
FontSize="14"
|
||||
IsReadOnly="True"
|
||||
ItemsSource="{Binding ProcessHistoryDataList}"
|
||||
SelectedItem="{Binding SelectProcessHistoryData}">
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" />
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="MouseDoubleClick">
|
||||
<micro:ActionMessage MethodName="DoubleClickItem" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Width="155"
|
||||
Binding="{Binding StepBeginTime}"
|
||||
Header="Step Start Time" />
|
||||
<DataGridTextColumn
|
||||
Width="95"
|
||||
Binding="{Binding StepEndTimeDisp}"
|
||||
Header="End Time" />
|
||||
<DataGridTextColumn
|
||||
Width="95"
|
||||
Binding="{Binding StepTime}"
|
||||
Header="Step Time/s" />
|
||||
<DataGridTextColumn
|
||||
Width="300"
|
||||
Binding="{Binding RecipeName}"
|
||||
Header="Recipe Name" />
|
||||
<DataGridTextColumn
|
||||
Width="80"
|
||||
Binding="{Binding StepNumber}"
|
||||
Header="Step Num" />
|
||||
<DataGridTextColumn
|
||||
Width="100"
|
||||
Binding="{Binding StepName}"
|
||||
Header="Step Name" />
|
||||
<!--<DataGridTemplateColumn Width="80" Header="Query">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Button Content="Statr" Margin="2">
|
||||
|
@ -160,64 +175,61 @@
|
|||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>-->
|
||||
</DataGrid.Columns>
|
||||
</DataGrid.Columns>
|
||||
|
||||
</DataGrid>
|
||||
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
AlternationCount="2"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
FontSize="13"
|
||||
IsReadOnly="True"
|
||||
ItemsSource="{Binding ProcessHistoryDeviceDataList}"
|
||||
SelectedItem="{Binding SelectProcessHistoryDeviceData}">
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" />
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="MouseDoubleClick">
|
||||
<micro:ActionMessage MethodName="GetDeviceCharting" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Width="150"
|
||||
Binding="{Binding DeviceName}"
|
||||
Header="DeviceName" />
|
||||
<DataGridTextColumn
|
||||
Width="50"
|
||||
Binding="{Binding Unit}"
|
||||
Header="Unit" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Min, StringFormat=F1}"
|
||||
Header="Min" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Average, StringFormat=F1}"
|
||||
Header="Average" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Max, StringFormat=F1}"
|
||||
Header="Max" />
|
||||
</DataGrid.Columns>
|
||||
|
||||
</DataGrid>
|
||||
</DataGrid>
|
||||
|
||||
<DataGrid
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
AlternationCount="2"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
FontSize="14"
|
||||
IsReadOnly="True"
|
||||
ItemsSource="{Binding ProcessHistoryDeviceDataList}"
|
||||
SelectedItem="{Binding SelectProcessHistoryDeviceData}">
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" />
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="MouseDoubleClick">
|
||||
<micro:ActionMessage MethodName="GetDeviceCharting" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Width="150"
|
||||
Binding="{Binding DeviceName}"
|
||||
Header="DeviceName" />
|
||||
<DataGridTextColumn
|
||||
Width="50"
|
||||
Binding="{Binding Unit}"
|
||||
Header="Unit" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Min, StringFormat=F1}"
|
||||
Header="Min" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Max, StringFormat=F1}"
|
||||
Header="Max" />
|
||||
<DataGridTextColumn
|
||||
Width="90"
|
||||
Binding="{Binding Average, StringFormat=F1}"
|
||||
Header="Average" />
|
||||
</DataGrid.Columns>
|
||||
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
<userControls:DataViewChart
|
||||
x:Name="chart"
|
||||
Grid.Row="1"
|
||||
Grid.Column="2"
|
||||
AutoRange="{Binding ChartAutoRange}"
|
||||
RenderableSeries="{Binding appendedSeries}"
|
||||
RenderableSeries="{Binding AppendedSeries}"
|
||||
VisibleRangeTime="{Binding VisibleRangeTime}"
|
||||
VisibleRangeValue="{Binding VisibleRangeValue}" />
|
||||
</Grid>
|
||||
|
|
|
@ -9,6 +9,8 @@ using MECF.Framework.UI.Client.ClientBase;
|
|||
using SciChart.Charting.Model.DataSeries;
|
||||
using SciChart.Charting.Visuals.Axes;
|
||||
using SciChart.Charting.Visuals.RenderableSeries;
|
||||
using SciChart.Core.Extensions;
|
||||
using SciChart.Core.Framework;
|
||||
using SciChart.Data.Model;
|
||||
using Sicentury.Core;
|
||||
using Sicentury.Core.EventArgs;
|
||||
|
@ -62,11 +64,29 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
|
||||
public ProcessHistoryData SelectProcessHistoryData { get; set; }
|
||||
|
||||
public List<ProcessHistoryDeviceData> ProcessHistoryDeviceDataList { get; set; }
|
||||
private ObservableCollection<ProcessHistoryDeviceData> _processHistoryDeviceDataList;
|
||||
public ObservableCollection<ProcessHistoryDeviceData> ProcessHistoryDeviceDataList
|
||||
{
|
||||
get => _processHistoryDeviceDataList;
|
||||
set
|
||||
{
|
||||
_processHistoryDeviceDataList = value;
|
||||
NotifyOfPropertyChange(nameof(ProcessHistoryDeviceDataList));
|
||||
}
|
||||
}
|
||||
|
||||
public ProcessHistoryDeviceData SelectProcessHistoryDeviceData { get; set; }
|
||||
|
||||
public ObservableCollection<IRenderableSeries> appendedSeries { get; set; }
|
||||
private ObservableCollection<IRenderableSeries> appendedSeries;
|
||||
public ObservableCollection<IRenderableSeries> AppendedSeries
|
||||
{
|
||||
get => appendedSeries;
|
||||
set
|
||||
{
|
||||
appendedSeries = value;
|
||||
NotifyOfPropertyChange(nameof(AppendedSeries));
|
||||
}
|
||||
}
|
||||
|
||||
private ProcessHistoryItemsDefault ProcessHistoryItemsDefault = new ProcessHistoryItemsDefault();
|
||||
|
||||
|
@ -77,7 +97,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
IniUIData();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询进度信息更新。
|
||||
/// </summary>
|
||||
|
@ -96,64 +115,9 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
StartDateTime = DateTime.Now.Date;
|
||||
EndDateTime = DateTime.Now.Date.AddDays(1).AddTicks(-1);
|
||||
|
||||
|
||||
|
||||
VisibleRangeTime = new DateRange(DateTime.Now.AddMinutes(-60), DateTime.Now.AddMinutes(60));
|
||||
VisibleRangeValue = new DoubleRange(0, 10);
|
||||
|
||||
|
||||
//_progQueryUpdate = new Progress<ProgressUpdatingEventArgs>(e =>
|
||||
//{
|
||||
// if (e.CurrentProgress == e.TotalProgress)
|
||||
// {
|
||||
|
||||
|
||||
// foreach (var renderableSeries in SelectProcessHistoryDeviceData)
|
||||
// {
|
||||
// var series = renderableSeries as SicFastLineSeries;
|
||||
// var dataSeries = series?.GetDataSeries();
|
||||
|
||||
// try
|
||||
// {
|
||||
// if (series != null && dataSeries != null)
|
||||
// {
|
||||
// var node = series.BackendParameterNode;
|
||||
|
||||
// if (double.IsInfinity((double)dataSeries.YRange.Diff))
|
||||
// {
|
||||
// node.ClearStatistic();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var min = ((double)dataSeries.YMin);
|
||||
// var max = ((double)dataSeries.YMax);
|
||||
// var average =
|
||||
// dataSeries.Metadata.Cast<ParameterNodePoint>().Average(x => x.Value);
|
||||
|
||||
// node.SetStatistic(min, max, average);
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// var err = $"It's failed to load data of {series?.DataName ?? "Unknown"}, {ex.Message}";
|
||||
// LOG.Error(err, ex);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// ChartAutoRange = AutoRange.Never;
|
||||
// ((ProcessHistoryTestView)View).chart.ZoomExtents();
|
||||
|
||||
// }
|
||||
|
||||
|
||||
//});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
|
@ -184,8 +148,11 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
|
||||
RecipeProcessHistoryData = dialog.RecipeProcessHistoryData;
|
||||
ProcessHistoryDataList = ProcessHistorySqlHelp.QueryProcessHistoryData(dialog.RecipeProcessHistoryData.ProcessGuid, dialog.RecipeProcessHistoryData.Name);
|
||||
ProcessHistoryDeviceDataList?.Clear();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void DoubleClickItem()
|
||||
|
@ -208,22 +175,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
|
||||
ProcessHistoryDeviceDataList = ProcessHistorySqlHelp.GetProcessHistoryDeviceData(daySlices, CbSelect, ProcessHistoryItemsDefault.ItemList);
|
||||
|
||||
////解析数据库返回的数据
|
||||
//foreach (var items in gasFlowRunVent)
|
||||
//{
|
||||
// foreach (var item in items)
|
||||
// {
|
||||
// var gasFlowSum = dayGasFlowList.Where(obj => item.Name.Contains(obj.Name)).First();
|
||||
// if (item.Name.Contains("Run"))
|
||||
// gasFlowSum.RunVolume += item.Volume;
|
||||
// else
|
||||
// gasFlowSum.VentVolume += item.Volume;
|
||||
// }
|
||||
//}
|
||||
|
||||
//使用公式转换单位
|
||||
|
||||
//_busyIndicatorContentExport.Report(new ProgressUpdatingEventArgs(100, 100, ""));
|
||||
}
|
||||
|
||||
public void GetItem()
|
||||
|
@ -269,16 +220,9 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
|
||||
public void GetDeviceCharting()
|
||||
{
|
||||
AppendedSeries = new ObservableCollection<IRenderableSeries> { SelectProcessHistoryDeviceData.GetLineSeries() };
|
||||
|
||||
|
||||
var v= SelectProcessHistoryDeviceData.ToList();
|
||||
|
||||
appendedSeries = new ObservableCollection<IRenderableSeries> { SelectProcessHistoryDeviceData.Append() };
|
||||
|
||||
|
||||
ChartAutoRange = AutoRange.Always;
|
||||
var dataSeries = appendedSeries[0].DataSeries as XyDataSeries<DateTime, double>;
|
||||
|
||||
var dataSeries = AppendedSeries[0].DataSeries as XyDataSeries<DateTime, double>;
|
||||
var dateList = new List<DateTime>();
|
||||
var valueList = new List<double>();
|
||||
var metaList = new List<ParameterNodePoint>();
|
||||
|
@ -289,31 +233,16 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
var date = new DateTime(long.Parse(SelectProcessHistoryDeviceData.TimeStamp[i]));
|
||||
var cellValue = SelectProcessHistoryDeviceData.DeviceValue[i];
|
||||
|
||||
|
||||
dateList.Add(date);
|
||||
valueList.Add(cellValue);
|
||||
metaList.Add(new ParameterNodePoint(date, cellValue));
|
||||
|
||||
|
||||
|
||||
metaList.Add(new ParameterNodePoint(date, cellValue));
|
||||
}
|
||||
dataSeries.Append(dateList, valueList, metaList);
|
||||
VisibleRangeTime = dataSeries.XRange;
|
||||
VisibleRangeValue= dataSeries.YRange;
|
||||
//SelectedData = dataSeries.YRange;
|
||||
//_progQueryUpdate.Report(new ProgressUpdatingEventArgs(100, 100, ""));
|
||||
|
||||
//var appendedSeries = SelectProcessHistoryDeviceData.ToList();
|
||||
|
||||
|
||||
|
||||
|
||||
Thread.Sleep(10);
|
||||
ChartAutoRange = AutoRange.Never;
|
||||
((ProcessHistoryTestView)View).chart.ZoomExtents();
|
||||
|
||||
|
||||
Thread.Sleep(100);
|
||||
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
using SciChart.Data.Numerics;
|
||||
using DrawingColor = System.Drawing.Color;
|
||||
|
||||
namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
||||
{
|
||||
|
@ -106,12 +107,12 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
|
|||
Max = DeviceValue.Count > 0 ? DeviceValue.Max(t => t) : 0;
|
||||
}
|
||||
|
||||
public IRenderableSeries Append()
|
||||
public IRenderableSeries GetLineSeries()
|
||||
{
|
||||
Clear();
|
||||
SicFastLineSeries sicFastLineSeries = new SicFastLineSeries(DeviceName)
|
||||
{
|
||||
Foreground = new SolidColorBrush(Colors.Red),
|
||||
Stroke = Colors.Red,
|
||||
AntiAliasing = true,
|
||||
ResamplingMode = ResamplingMode.MinMax,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue