This commit is contained in:
2024-07-05 17:43:02 +08:00
parent 08f7f9c01a
commit 1e0cba7b53
10 changed files with 388 additions and 117 deletions

View File

@@ -57,7 +57,7 @@ namespace CapMachine.Wpf
////注册设备服务 ////注册设备服务
//containerRegistry.RegisterSingleton<MachineDataService>(); //containerRegistry.RegisterSingleton<MachineDataService>();
containerRegistry.RegisterSingleton<PlcRtDataService>(); containerRegistry.RegisterSingleton<MachineRtDataService>();
//注册AutoMapper 将IAutoMapperProvider注入IOC容器并对外提供IMapper注入类型。 //注册AutoMapper 将IAutoMapperProvider注入IOC容器并对外提供IMapper注入类型。
containerRegistry.RegisterSingleton<IMapperProvider, MapperConfig>(); containerRegistry.RegisterSingleton<IMapperProvider, MapperConfig>();
@@ -140,7 +140,7 @@ namespace CapMachine.Wpf
var appVersionService = ContainerLocator.Container.Resolve<IFreeSql>(); var appVersionService = ContainerLocator.Container.Resolve<IFreeSql>();
//var appVersionService1 = ContainerLocator.Container.Resolve<MachineDataService>(); //var appVersionService1 = ContainerLocator.Container.Resolve<MachineDataService>();
//var appVersionService2 = ContainerLocator.Container.Resolve<ILogService>(); //var appVersionService2 = ContainerLocator.Container.Resolve<ILogService>();
var appVersionService3 = ContainerLocator.Container.Resolve<PlcRtDataService>(); var appVersionService3 = ContainerLocator.Container.Resolve<MachineRtDataService>();
base.OnInitialized(); base.OnInitialized();
} }

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework> <TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
@@ -15,11 +15,13 @@
<PackageReference Include="HslCommunication" Version="11.7.0" /> <PackageReference Include="HslCommunication" Version="11.7.0" />
<PackageReference Include="MaterialDesignColors" Version="2.1.4" /> <PackageReference Include="MaterialDesignColors" Version="2.1.4" />
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" /> <PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" /> <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" />
<PackageReference Include="NLog" Version="5.2.8" /> <PackageReference Include="NLog" Version="5.2.8" />
<PackageReference Include="Prism.DryIoc" Version="8.1.97" /> <PackageReference Include="Prism.DryIoc" Version="8.1.97" />
<PackageReference Include="Syncfusion.Licensing" Version="24.2.7" /> <PackageReference Include="Syncfusion.Licensing" Version="24.2.7" />
<PackageReference Include="Syncfusion.SfGrid.WPF" Version="24.2.7" /> <PackageReference Include="Syncfusion.SfGrid.WPF" Version="24.2.7" />
<PackageReference Include="System.Collections.Concurrent" Version="4.3.0" />
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" /> <PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models
{
/// <summary>
/// 记录的信息
/// 曲线缓存用
/// </summary>
public class RecordInfo
{
/// <summary>
/// 工况
/// </summary>
public string? WorkCondition { get; set; }
/// <summary>
/// 温度
/// </summary>
public double Temp { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.PrismEvent
{
public enum ChartActionType:byte
{
ReLoadChart=1,
}
}

View File

@@ -0,0 +1,19 @@
using CapMachine.Wpf.Models;
using Prism.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.PrismEvent
{
/// <summary>
/// Chart图表操作的动作事件
/// </summary>
public class ChartRtActionEvent : PubSubEvent<ChartActionType>
{
}
}

View File

@@ -0,0 +1,238 @@
using AutoMapper.Internal;
using CapMachine.Wpf.Models;
using CapMachine.Wpf.PrismEvent;
using Microsoft.Extensions.Caching.Memory;
using Prism.Events;
using Prism.Mvvm;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Services
{
/// <summary>
/// 机器实时数据服务
/// </summary>
public class MachineRtDataService : BindableBase
{
/// <summary>
/// 事件聚合器
/// </summary>
private IEventAggregator _EventAggregator { get; set; }
/// <summary>
/// ScanTask扫描Task
/// </summary>
static Task ScanTask { get; set; }
/// <summary>
/// 仪表数据集合
/// </summary>
public List<MeterRtDataModel> ListMeterRtData { get; set; }
/// <summary>
/// 扫描线程使能
/// </summary>
public bool ThreadEnable { get; set; } = true;
/// <summary>
/// 历史数据
/// </summary>
public List<RecordInfo> HistoryData = new List<RecordInfo>();
/// <summary>
/// 实例化函数
/// </summary>
/// <param name="eventAggregator"></param>
public MachineRtDataService(IEventAggregator eventAggregator)
{
//ConcurrentDictionary<DateTime, RecordInfo> keyValuePairs = new ConcurrentDictionary<DateTime, RecordInfo>();
Stopwatch stopwatch = new Stopwatch();
//第一次计时
stopwatch.Start(); //启动Stopwatch
for (var i = 0; i < 10000000; i++)
{
keyValuePairs.TryAdd(DateTime.UtcNow, new RecordInfo()
{
CreateTime = DateTime.UtcNow,
WorkCondition = "dadf",
Temp = 23.3
});
//keyValuePairs.Add(new RecordInfo()
//{
// CreateTime = DateTime.UtcNow,
// WorkCondition = "dadf",
// Temp = 23.3
//});
}
stopwatch.Stop(); //停止Stopwatch
Console.WriteLine("Add Elapsed output runTime:{0}", stopwatch.Elapsed.ToString());
//事件服务
_EventAggregator = eventAggregator;
//实例化集合
ListMeterRtData = new List<MeterRtDataModel>()
{
new MeterRtDataModel(){
MeterName = "EVA风量",
RtUIControlTitle="EVA风量" + Environment.NewLine + "m³/h",
RtUIControlTitleIndex="Title5",
Station = 1,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV5",
RtSVUIControlIndex="SV5",
RtPVUIControlIndex="PV5",
MaxValue=500,
MinValue=0,
Accuracy=1,
Unit="m³/h",
MeterEnableStatePLCAddress="V30.3",
},
new MeterRtDataModel(){//目前是DB表
MeterName = "中间轴转速",//原来中间轴转速,先全部改为电机转速-开发过程中某个时刻中间轴转速改为电机转速
RtUIControlTitle="中间轴转速" + Environment.NewLine + "(r/min)",
RtUIControlTitleIndex="Title3",
Station = 2,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV3",
RtSVUIControlIndex="SV3",
RtPVUIControlIndex="PV3",
MaxValue=4000,
MinValue=0,
Accuracy=0,
Unit="(r/min)",
MeterEnableStatePLCAddress="",
},
new MeterRtDataModel(){
MeterName = "加热电力",//加热电力
RtUIControlTitle="加热电力" + Environment.NewLine + "(KW)",
RtUIControlTitleIndex="Title7",
Station = 3,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV7",
RtSVUIControlIndex="SV7",
RtPVUIControlIndex="PV7",
MaxValue=30,
MinValue=0,
Accuracy=2,
Unit="(KW)",
MeterEnableStatePLCAddress="V30.4",
},
new MeterRtDataModel(){
MeterName = "加湿电力",
RtUIControlTitle="加湿电力" + Environment.NewLine + "(KW)",
RtUIControlTitleIndex="Title8",
Station = 4,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV8",
RtSVUIControlIndex="SV8",
RtPVUIControlIndex="PV8",
MaxValue=18,
MinValue=0,
Accuracy=2,
Unit="(KW)",
MeterEnableStatePLCAddress="V30.5",
},
new MeterRtDataModel(){//目前是DB表
MeterName = "EMPCV电流",//EMPCV电力
RtUIControlTitle="EMPCV电流" + Environment.NewLine + "(A)",
RtUIControlTitleIndex="Title9",
Station = 5,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV9",
RtSVUIControlIndex="SV9",
RtPVUIControlIndex="PV9",
MaxValue=1,
MinValue=0,
Accuracy=2,
Unit="(A)",
MeterEnableStatePLCAddress="V30.6",
},
new MeterRtDataModel(){
MeterName = "INJ压力",
RtUIControlTitle="INJ压力" + Environment.NewLine + "(MPa)",
RtUIControlTitleIndex="Title10",
Station = 6,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV10",
RtSVUIControlIndex="SV10",
RtPVUIControlIndex="PV10",
MaxValue=5,
MinValue=0,
Accuracy=3,
Unit="(MPa)",
MeterEnableStatePLCAddress="V30.7",
},
new MeterRtDataModel(){
MeterName = "冷媒流量",
RtUIControlTitle="冷媒流量" + Environment.NewLine + "(kg/h)",
RtUIControlTitleIndex="Title11",
Station = 7,
RtAddressPV = "101",
RtAddressMV = "105",
RtMVUIControlIndex="MV11",
RtSVUIControlIndex="SV11",
RtPVUIControlIndex="PV11",
MaxValue=500,
MinValue=0,
Accuracy=1,
Unit="(kg/h)",
MeterEnableStatePLCAddress="V31.0",
},
};
PubRtDataStart();
}
private Random random = new Random();
/// <summary>
///发布实时数据
/// </summary>
private void PubRtDataStart()
{
ScanTask = Task.Run(async () =>
{
while (ThreadEnable)
{
try
{
await Task.Delay(1000);
_EventAggregator.GetEvent<ChartRtEvent>().Publish(new List<Models.ChartRtValue>()
{
new Models.ChartRtValue(){Name="室温0",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温1",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温2",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温3",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温4",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温5",Value=random.NextDouble()*100,Unit="℃"},
});
}
catch (Exception ex)
{
var dd = 1;
}
}
});
}
}
}

View File

@@ -1,74 +0,0 @@
using CapMachine.Wpf.PrismEvent;
using Prism.Events;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Services
{
public class PlcRtDataService:BindableBase
{
/// <summary>
/// 事件聚合器
/// </summary>
private IEventAggregator _EventAggregator { get; set; }
/// <summary>
/// ScanTask扫描Task
/// </summary>
static Task ScanTask { get; set; }
/// <summary>
/// 扫描线程使能
/// </summary>
public bool ThreadEnable { get; set; } = true;
public PlcRtDataService(IEventAggregator eventAggregator)
{
//事件服务
_EventAggregator = eventAggregator;
PubRtDataStart();
}
private Random random = new Random();
/// <summary>
///发布实时数据
/// </summary>
private void PubRtDataStart()
{
ScanTask = Task.Run(async () =>
{
while (ThreadEnable)
{
try
{
await Task.Delay(1000);
_EventAggregator.GetEvent<ChartRtEvent>().Publish(new List<Models.ChartRtValue>()
{
new Models.ChartRtValue(){Name="室温0",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温1",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温2",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温3",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温4",Value=random.NextDouble()*100,Unit="℃"},
new Models.ChartRtValue(){Name="室温5",Value=random.NextDouble()*100,Unit="℃"},
});
}
catch (Exception ex)
{
var dd = 1;
}
}
});
}
}
}

View File

@@ -2,6 +2,7 @@
using CapMachine.Core; using CapMachine.Core;
using CapMachine.Model; using CapMachine.Model;
using CapMachine.Wpf.Models; using CapMachine.Wpf.Models;
using CapMachine.Wpf.Services;
using ImTools; using ImTools;
using Prism.Commands; using Prism.Commands;
using Prism.Services.Dialogs; using Prism.Services.Dialogs;
@@ -17,36 +18,12 @@ namespace CapMachine.Wpf.ViewModels
{ {
public class DialogChartRtConfigViewModel : DialogViewModel public class DialogChartRtConfigViewModel : DialogViewModel
{ {
public DialogChartRtConfigViewModel(IFreeSql freeSql, IMapper mapper) public DialogChartRtConfigViewModel(IFreeSql freeSql, IMapper mapper, MachineRtDataService machineRtDataService)
{ {
this.Title = "曲线编辑"; this.Title = "曲线编辑";
//加载曲线数据源 //加载曲线数据源
ChartSrcDataListViewItems = new ObservableCollection<ChartSrcData>(); ChartSrcDataListViewItems = new ObservableCollection<ChartSrcData>();
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 1,
Name = "温度",
Selected = true
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 2,
Name = "压力",
Selected = true
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 3,
Name = "湿度",
Selected = false
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 4,
Name = "过冷度",
Selected = false
});
ChartYAxisDataListViewItems = new ObservableCollection<ChartYAxisDto>() ChartYAxisDataListViewItems = new ObservableCollection<ChartYAxisDto>()
{ {
@@ -74,8 +51,8 @@ namespace CapMachine.Wpf.ViewModels
}; };
FreeSql = freeSql; FreeSql = freeSql;
this.Mapper = mapper; this.Mapper = mapper;
MachineRtDataService = machineRtDataService;
RefreshChartSourceData(); LoadChartSourceData();
RefreshChartSelectedData(); RefreshChartSelectedData();
RefreshChartYAxisData(); RefreshChartYAxisData();
} }
@@ -84,11 +61,36 @@ namespace CapMachine.Wpf.ViewModels
/// FreeSql /// FreeSql
/// </summary> /// </summary>
public IFreeSql FreeSql { get; } public IFreeSql FreeSql { get; }
/// <summary> /// <summary>
/// AutoMap映射 /// AutoMap映射
/// </summary> /// </summary>
public IMapper Mapper { get; } public IMapper Mapper { get; }
/// <summary>
/// 数据服务
/// </summary>
public MachineRtDataService MachineRtDataService { get; }
/// <summary>
/// 加载ChartSourceData
/// </summary>
private void LoadChartSourceData()
{
foreach (var item in MachineRtDataService.ListMeterRtData)
{
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index=1,
Name=item.MeterName,
Selected=false,
});
}
}
/// <summary> /// <summary>
/// 加载数据 /// 加载数据
/// </summary> /// </summary>
@@ -98,6 +100,7 @@ namespace CapMachine.Wpf.ViewModels
//Mapper.Map<List<ChartSelectDto>>(data); //Mapper.Map<List<ChartSelectDto>>(data);
//ChartSelectDataListViewItems = new ObservableCollection<ChartSelectDto>(Mapper.Map<List<ChartSelectDto>>(data)); //ChartSelectDataListViewItems = new ObservableCollection<ChartSelectDto>(Mapper.Map<List<ChartSelectDto>>(data));
} }
/// <summary> /// <summary>
@@ -105,13 +108,25 @@ namespace CapMachine.Wpf.ViewModels
/// </summary> /// </summary>
private void RefreshChartSelectedData() private void RefreshChartSelectedData()
{ {
var ChartSelectedData = FreeSql.Select<ConfigChartSelect>().Include(a=>a.ConfigChartYAxis).ToList(); var ChartSelectedData = FreeSql.Select<ConfigChartSelect>().Include(a => a.ConfigChartYAxis).ToList();
ChartSelectDataListViewItems.Clear(); ChartSelectDataListViewItems.Clear();
foreach (var item in ChartSelectedData) foreach (var item in ChartSelectedData)
{ {
ChartSelectDataListViewItems.Add(Mapper.Map<ChartSelectDto>(item)); ChartSelectDataListViewItems.Add(Mapper.Map<ChartSelectDto>(item));
} }
//选中后源数据状态被选中
foreach (var item in ChartSelectedData)
{
var data = ChartSrcDataListViewItems.FindFirst(a => a.Name == item.Name);
if (data != null)
{
//选中
data.Selected = true;
}
}
//SelectedChartSelectData = null; //SelectedChartSelectData = null;
//Mapper.Map<List<ChartSelectDto>>(data); //Mapper.Map<List<ChartSelectDto>>(data);
@@ -345,7 +360,7 @@ namespace CapMachine.Wpf.ViewModels
//数据库保存 //数据库保存
FreeSql.Update<ConfigChartSelect>() FreeSql.Update<ConfigChartSelect>()
.Where(a => a.Id == SelectedChartSelectData.Id) .Where(a => a.Id == SelectedChartSelectData.Id)
.Set(a=>a.ConfigChartYAxisId, SelectedChartYAxisData.Id) .Set(a => a.ConfigChartYAxisId, SelectedChartYAxisData.Id)
.ExecuteAffrows(); .ExecuteAffrows();
//刷新图表 //刷新图表

View File

@@ -1,5 +1,7 @@
using CapMachine.Core; using CapMachine.Core;
using CapMachine.Wpf.PrismEvent;
using Prism.Commands; using Prism.Commands;
using Prism.Events;
using Prism.Services.Dialogs; using Prism.Services.Dialogs;
using SharpDX.Direct3D9; using SharpDX.Direct3D9;
using System; using System;
@@ -12,10 +14,11 @@ namespace CapMachine.Wpf.ViewModels
/// <summary> /// <summary>
/// 实例化函数 /// 实例化函数
/// </summary> /// </summary>
public RealTimeChartViewModel(IDialogService dialogService, IFreeSql freeSql) public RealTimeChartViewModel(IDialogService dialogService, IFreeSql freeSql, IEventAggregator eventAggregator)
{ {
DialogService = dialogService; DialogService = dialogService;
FreeSql = freeSql; FreeSql = freeSql;
EventAggregator = eventAggregator;
} }
/// <summary> /// <summary>
@@ -28,6 +31,11 @@ namespace CapMachine.Wpf.ViewModels
/// </summary> /// </summary>
public IFreeSql FreeSql { get; } public IFreeSql FreeSql { get; }
/// <summary>
/// 事件聚合器
/// </summary>
public IEventAggregator EventAggregator { get; }
private DelegateCommand _ChartConfigCmd; private DelegateCommand _ChartConfigCmd;
/// <summary> /// <summary>
/// 编辑曲线数据 /// 编辑曲线数据
@@ -60,8 +68,8 @@ namespace CapMachine.Wpf.ViewModels
{ {
//程序名称 //程序名称
var ReturnValue = par.Parameters.GetValue<string>("Name"); var ReturnValue = par.Parameters.GetValue<string>("Name");
//返回数据刷新Chart
EventAggregator.GetEvent<ChartRtActionEvent>().Publish(ChartActionType.ReLoadChart);
} }
else if (par.Result == ButtonResult.Cancel) else if (par.Result == ButtonResult.Cancel)
{ {
@@ -72,7 +80,7 @@ namespace CapMachine.Wpf.ViewModels
}); });
} }
//#region 曲线配 #region 线
//private LightningChart _LightningChartInstance; //private LightningChart _LightningChartInstance;
///// <summary> ///// <summary>
@@ -127,6 +135,6 @@ namespace CapMachine.Wpf.ViewModels
//} //}
//#endregion #endregion
} }
} }

View File

@@ -5,6 +5,7 @@ using Arction.Wpf.Charting.SeriesXY;
using Arction.Wpf.Charting.Views.ViewXY; using Arction.Wpf.Charting.Views.ViewXY;
using CapMachine.Wpf.Models; using CapMachine.Wpf.Models;
using CapMachine.Wpf.PrismEvent; using CapMachine.Wpf.PrismEvent;
using CapMachine.Wpf.Services;
using CapMachine.Wpf.ViewModels; using CapMachine.Wpf.ViewModels;
using NLog; using NLog;
using Prism.Events; using Prism.Events;
@@ -26,14 +27,19 @@ namespace CapMachine.Wpf.Views
static System.Timers.Timer CurTimer { get; set; } static System.Timers.Timer CurTimer { get; set; }
private IEventAggregator _EventAggregator { get; set; } private IEventAggregator _EventAggregator { get; set; }
public MachineRtDataService MachineRtDataService { get; }
/// <summary> /// <summary>
/// 曲线配置 /// 曲线配置
/// </summary> /// </summary>
public ChartConfig ChartConfigInfo { get; set; } public ChartConfig ChartConfigInfo { get; set; }
/// <summary>
public RealTimeChartView(IEventAggregator eventAggregator) /// 实例化函数
/// </summary>
/// <param name="eventAggregator"></param>
/// <param name="machineRtDataService"></param>
public RealTimeChartView(IEventAggregator eventAggregator, MachineRtDataService machineRtDataService)
{ {
InitializeComponent(); InitializeComponent();
@@ -44,7 +50,10 @@ namespace CapMachine.Wpf.Views
//事件服务 //事件服务
_EventAggregator = eventAggregator; _EventAggregator = eventAggregator;
MachineRtDataService = machineRtDataService;
_EventAggregator.GetEvent<ChartRtEvent>().Subscribe(GetChartRtEvent); _EventAggregator.GetEvent<ChartRtEvent>().Subscribe(GetChartRtEvent);
_EventAggregator.GetEvent<ChartRtActionEvent>().Subscribe(ReLoadData);
var CreateAxisY = new AxisY(); var CreateAxisY = new AxisY();
CreateAxisY.Title.Text = Name; CreateAxisY.Title.Text = Name;
@@ -56,6 +65,17 @@ namespace CapMachine.Wpf.Views
ListChartRtSeries.Add(new ChartRtSeries(CreateAxisY, lightningChart1, "室温0")); ListChartRtSeries.Add(new ChartRtSeries(CreateAxisY, lightningChart1, "室温0"));
} }
/// <summary>
/// 重新加载数据
/// 更新曲线和Y轴设置
/// </summary>
/// <param name="type"></param>
/// <exception cref="NotImplementedException"></exception>
private void ReLoadData(ChartActionType type)
{
throw new NotImplementedException();
}
/// <summary> /// <summary>
/// 获取曲线的实时值 /// 获取曲线的实时值