using Arction.Wpf.Charting;
using Arction.Wpf.Charting.Annotations;
using Arction.Wpf.Charting.Axes;
using Arction.Wpf.Charting.SeriesXY;
using Arction.Wpf.Charting.Views.ViewXY;
using CapMachine.Model;
using CapMachine.Wpf.Models;
using CapMachine.Wpf.Models.LightChart;
using CapMachine.Wpf.Models.Tag;
using CapMachine.Wpf.PrismEvent;
using CapMachine.Wpf.Services;
using ImTools;
using Prism.Events;
using System.Text;
using System.Timers;
using System.Windows.Controls;
namespace CapMachine.Wpf.Views
{
///
/// RealTimeChartView.xaml 的交互逻辑
///
public partial class RealTimeChartView : UserControl
{
private readonly DataRecordService DatRecordService;
///
/// 定时器
///
static System.Timers.Timer CurTimer { get; set; }
///
/// 事件聚合器
///
private IEventAggregator _EventAggregator { get; set; }
public MachineRtDataService MachineRtDataService { get; }
public IFreeSql FreeSql { get; }
public ILogService LogService { get; }
public ConfigService ConfigService { get; }
#region ChartManager实例集合
///
/// Chart实例1
///
public ChartManager Group1ChartManager { get; set; }
///
/// Chart实例2
///
public ChartManager Group2ChartManager { get; set; }
///
/// Chart实例3
///
public ChartManager Group3ChartManager { get; set; }
///
/// Chart实例4
///
public ChartManager Group4ChartManager { get; set; }
///
/// Chart实例5
///
public ChartManager Group5ChartManager { get; set; }
///
/// Chart实例6
///
public ChartManager Group6ChartManager { get; set; }
///
/// Chart实例7
///
public ChartManager Group7ChartManager { get; set; }
///
/// Chart实例8
///
public ChartManager Group8ChartManager { get; set; }
#endregion
///
/// 实时变量管理
///
public TagManager RtTagManager { get; set; }
///
/// 实例化函数
///
///
///
public RealTimeChartView(IEventAggregator eventAggregator, DataRecordService datRecordService, MachineRtDataService machineRtDataService, IFreeSql freeSql,ILogService logService,ConfigService configService)
{
//初始化当前的页面组件,原始方法
InitializeComponent();
//事件服务
_EventAggregator = eventAggregator;
this.DatRecordService = datRecordService;
RtTagManager = machineRtDataService.TagManger;
MachineRtDataService = machineRtDataService;
FreeSql = freeSql;
LogService = logService;
ConfigService = configService;
Group1ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart1, "LgChart1", 0, "M1",true, LogService, ConfigService);
Group2ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart2, "LgChart2", 1, "M1",true, LogService , ConfigService);
Group3ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart3, "LgChart3", 2, "M1",true, LogService, ConfigService);
Group4ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart4, "LgChart4", 3, "M1",true, LogService, ConfigService);
Group5ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart5, "LgChart5", 4, "M1",true, LogService, ConfigService);
Group6ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart6, "LgChart6", 5, "M1",true, LogService, ConfigService);
Group7ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart7, "LgChart7", 6, "M1",true, LogService, ConfigService);
Group8ChartManager = new ChartManager(_EventAggregator, RtTagManager, DatRecordService, FreeSql, LgChart8, "LgChart8", 7, "M1", true, LogService, ConfigService);
//LvChartRtValue.ItemsSource = RtTagManager.DicTags.Values.ToList();
LvChartRtValueSingle1.ItemsSource = Group1ChartManager.ListChartRtSeries;
LvChartRtValuedouble1.ItemsSource = Group1ChartManager.ListChartRtSeries;
LvChartRtValueSingle2.ItemsSource = Group2ChartManager.ListChartRtSeries;
LvChartRtValuedouble2.ItemsSource = Group2ChartManager.ListChartRtSeries;
LvChartRtValueSingle3.ItemsSource = Group3ChartManager.ListChartRtSeries;
LvChartRtValuedouble3.ItemsSource = Group3ChartManager.ListChartRtSeries;
LvChartRtValueSingle4.ItemsSource = Group4ChartManager.ListChartRtSeries;
LvChartRtValuedouble4.ItemsSource = Group4ChartManager.ListChartRtSeries;
LvChartRtValueSingle5.ItemsSource = Group5ChartManager.ListChartRtSeries;
LvChartRtValuedouble5.ItemsSource = Group5ChartManager.ListChartRtSeries;
LvChartRtValueSingle6.ItemsSource = Group6ChartManager.ListChartRtSeries;
LvChartRtValuedouble6.ItemsSource = Group6ChartManager.ListChartRtSeries;
LvChartRtValueSingle7.ItemsSource = Group7ChartManager.ListChartRtSeries;
LvChartRtValuedouble7.ItemsSource = Group7ChartManager.ListChartRtSeries;
LvChartRtValueSingle8.ItemsSource = Group8ChartManager.ListChartRtSeries;
LvChartRtValuedouble8.ItemsSource = Group8ChartManager.ListChartRtSeries;
_EventAggregator.GetEvent().Subscribe(GetChartRtEvent);
}
///
/// 获取曲线的实时值
/// 数据是发布过来
///
///
///
private void GetChartRtEvent(List RtData)
{
//ListChartRtValue = RtData;
////UpdateLightningChartData();
//App.Current.Dispatcher.Invoke(() =>
//{
// foreach (var item in ListChartRtValue)
// {
// var Data = ListChartRtSeries.Find(a => a.Name == item.Name);
// if (Data != null)
// {
// Data.AddValue(item.Value);
// Data.Value = item.Value;
// }
// }
//});
}
///
/// 时间序列
///
///
///
private void CurTimer_Elapsed(object? sender, ElapsedEventArgs e)
{
}
}
}