增加监控界面
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using Arction.Wpf.Charting;
|
||||
using Arction.Wpf.Charting.Annotations;
|
||||
using Arction.Wpf.Charting.Axes;
|
||||
using Arction.Wpf.Charting.Maps;
|
||||
using Arction.Wpf.Charting.Series3D;
|
||||
using Arction.Wpf.Charting.SeriesXY;
|
||||
using Arction.Wpf.Charting.Views.ViewXY;
|
||||
using CapMachine.Model;
|
||||
using ImTools;
|
||||
using Prism.Mvvm;
|
||||
using System;
|
||||
@@ -18,60 +20,64 @@ namespace CapMachine.Wpf.Models
|
||||
/// <summary>
|
||||
/// 曲线实时系列模型
|
||||
/// </summary>
|
||||
public class ChartRtSeries:BindableBase
|
||||
public class ChartRtSeries : BindableBase
|
||||
{
|
||||
public ChartRtSeries(AxisY axisY, LightningChart lightningChart, string SeriesName)
|
||||
{
|
||||
//var CreateAxisY = new AxisY();
|
||||
//CreateAxisY.Title.Text = Name;
|
||||
//CreateAxisY.Title.AllowDragging = false;
|
||||
//CreateAxisY.SetRange(0, 100);
|
||||
//CreateAxisY.MajorGrid.Visible = false;
|
||||
////取消滚轮缩放
|
||||
//CreateAxisY.ZoomingEnabled = false;
|
||||
/// <summary>
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
/// <param name="axisY"></param>
|
||||
/// <param name="lightningChart"></param>
|
||||
/// <param name="SeriesName"></param>
|
||||
//public ChartRtSeries(AxisY axisY, LightningChart lightningChart, string SeriesName)
|
||||
//{
|
||||
// //var CreateAxisY = new AxisY();
|
||||
// //CreateAxisY.Title.Text = Name;
|
||||
// //CreateAxisY.Title.AllowDragging = false;
|
||||
// //CreateAxisY.SetRange(0, 100);
|
||||
// //CreateAxisY.MajorGrid.Visible = false;
|
||||
// ////取消滚轮缩放
|
||||
// //CreateAxisY.ZoomingEnabled = false;
|
||||
|
||||
// //模型赋值
|
||||
// LightningChartInstance = lightningChart;
|
||||
// //ChartAxisY = axisY;
|
||||
// ChartAxisX = lightningChart.ViewXY.XAxes[0];
|
||||
// Name = SeriesName;
|
||||
|
||||
// //Unit = "℃";
|
||||
|
||||
// //判断别重复,因为可能共用Y轴的信息
|
||||
// //绑定lightningChart
|
||||
// lightningChart.ViewXY.YAxes.Add(axisY);
|
||||
|
||||
// ChartPointLineSeries = new PointLineSeries(lightningChart.ViewXY, lightningChart.ViewXY.XAxes[0], axisY);
|
||||
// ChartPointLineSeries.Title.Text = SeriesName;
|
||||
// //绑定lightningChart
|
||||
// lightningChart.ViewXY.PointLineSeries.Add(ChartPointLineSeries);
|
||||
|
||||
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
public ChartRtSeries(LightningChart lightningChart, ChartConfig chartConfig, List<ChartRtSeries> listchartRtSeries, ConfigChartSelect configChartSelect)
|
||||
{
|
||||
//模型赋值
|
||||
LightningChartInstance = lightningChart;
|
||||
ChartAxisY = axisY;
|
||||
ChartAxisX = lightningChart.ViewXY.XAxes[0];
|
||||
Name = SeriesName;
|
||||
ChartConfigInfo = chartConfig;
|
||||
ChartAxisY = configChartSelect.ConfigChartYAxis;
|
||||
ChartAxisX = LightningChartInstance.ViewXY.XAxes[0];
|
||||
Name = configChartSelect.Name;
|
||||
ListChartRtSeries= listchartRtSeries;
|
||||
|
||||
Unit = "℃";
|
||||
AddSeries(configChartSelect.Name!, configChartSelect.ConfigChartYAxis!);
|
||||
|
||||
//判断别重复,因为可能共用Y轴的信息
|
||||
//绑定lightningChart
|
||||
lightningChart.ViewXY.YAxes.Add(axisY);
|
||||
|
||||
ChartPointLineSeries = new PointLineSeries(lightningChart.ViewXY, lightningChart.ViewXY.XAxes[0], axisY);
|
||||
ChartPointLineSeries.Title.Text = SeriesName;
|
||||
//绑定lightningChart
|
||||
lightningChart.ViewXY.PointLineSeries.Add(ChartPointLineSeries);
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 名称
|
||||
///// </summary>
|
||||
//public string? Name { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 值
|
||||
///// </summary>
|
||||
//public double Value { get; set; }
|
||||
#region 基本信息
|
||||
|
||||
///// <summary>
|
||||
///// Max
|
||||
///// </summary>
|
||||
//public double Max { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Min
|
||||
///// </summary>
|
||||
//public double Min { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 单位
|
||||
///// </summary>
|
||||
//public string? Unit { get; set; }
|
||||
|
||||
private string? _Name;
|
||||
/// <summary>
|
||||
@@ -93,37 +99,159 @@ namespace CapMachine.Wpf.Models
|
||||
set { _Value = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _Max;
|
||||
|
||||
//private string? _Unit;
|
||||
///// <summary>
|
||||
///// 单位
|
||||
///// </summary>
|
||||
//public string? Unit
|
||||
//{
|
||||
// get { return _Unit; }
|
||||
// set { _Unit = value; RaisePropertyChanged(); }
|
||||
//}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Max
|
||||
/// 删除Y轴信息
|
||||
/// </summary>
|
||||
public double Max
|
||||
public void DeleteAxisY()
|
||||
{
|
||||
get { return _Max; }
|
||||
set { _Max = value; RaisePropertyChanged(); }
|
||||
//删除Y轴信息
|
||||
LightningChartInstance.ViewXY.YAxes.Remove(LightningChartInstance.ViewXY.YAxes.FindFirst(a => a.Title.Text == ChartAxisY.Name));
|
||||
}
|
||||
|
||||
private double _Min;
|
||||
/// <summary>
|
||||
/// Min
|
||||
/// 删除系列
|
||||
/// </summary>
|
||||
public double Min
|
||||
public void DeleteSeries()
|
||||
{
|
||||
get { return _Min; }
|
||||
set { _Min = value; RaisePropertyChanged(); }
|
||||
LightningChartInstance.BeginUpdate();
|
||||
|
||||
LightningChartInstance.ViewXY.PointLineSeries.Remove(ChartPointLineSeries);
|
||||
|
||||
LightningChartInstance.EndUpdate();
|
||||
|
||||
ListChartRtSeries.Remove(ListChartRtSeries.FindFirst(a=>a.Name== Name));
|
||||
}
|
||||
|
||||
|
||||
private string? _Unit;
|
||||
/// <summary>
|
||||
/// 单位
|
||||
/// 增加系列
|
||||
/// </summary>
|
||||
public string? Unit
|
||||
/// <param name="Name"></param>
|
||||
private void AddSeries(string SeriesName, ConfigChartYAxis configChartYAxis)
|
||||
{
|
||||
get { return _Unit; }
|
||||
set { _Unit = value; RaisePropertyChanged(); }
|
||||
LightningChartInstance.BeginUpdate();
|
||||
|
||||
//判断之前的系列是否已经存在(依据名称),存在使用之前的系列,否则新增
|
||||
var AxisYInfo = GetAxisY(configChartYAxis.Name);
|
||||
if (AxisYInfo == null)
|
||||
{
|
||||
//新增
|
||||
AxisYInfo = new AxisY();
|
||||
AxisYInfo.Title.Text = configChartYAxis.Name;
|
||||
AxisYInfo.Title.AllowDragging = false;
|
||||
AxisYInfo.SetRange(configChartYAxis.Min, configChartYAxis.Max);
|
||||
AxisYInfo.MajorGrid.Visible = false;
|
||||
//取消滚轮缩放
|
||||
AxisYInfo.ZoomingEnabled = false;
|
||||
LightningChartInstance.ViewXY.YAxes.Add(AxisYInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
//使用之前
|
||||
AxisYInfo.SetRange(configChartYAxis.Min, configChartYAxis.Max);
|
||||
}
|
||||
|
||||
var SeriesInfo = GetPointLineSeries(SeriesName);
|
||||
if (SeriesInfo == null)
|
||||
{
|
||||
//新增
|
||||
SeriesInfo = new PointLineSeries(LightningChartInstance.ViewXY, LightningChartInstance.ViewXY.XAxes[0], AxisYInfo);
|
||||
SeriesInfo.Title.Text = SeriesName;
|
||||
SeriesInfo.LineStyle.Color = ChartConfigInfo.ListColor[LightningChartInstance.ViewXY.YAxes.Count + 1];
|
||||
SeriesInfo.AllowUserInteraction = false;
|
||||
LightningChartInstance.ViewXY.PointLineSeries.Add(SeriesInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
//使用之前
|
||||
SeriesInfo.AssignYAxisIndex = AxisYInfo.SegmentIndex;
|
||||
}
|
||||
|
||||
//赋值给当前的模型
|
||||
ChartPointLineSeries = SeriesInfo;
|
||||
|
||||
//Configure and add series to the chart
|
||||
|
||||
|
||||
LightningChartInstance.EndUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取AxisY信息
|
||||
/// </summary>
|
||||
/// <param name="AxisName"></param>
|
||||
/// <returns></returns>
|
||||
private AxisY GetAxisY(string AxisName)
|
||||
{
|
||||
var AxisYs = LightningChartInstance.ViewXY.YAxes;
|
||||
|
||||
if (AxisYs != null)
|
||||
{
|
||||
var findAxis = AxisYs.FindFirst(a => a.Title.Text == AxisName);
|
||||
if (findAxis != null)
|
||||
{
|
||||
return findAxis;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取PointLineSeries信息
|
||||
/// </summary>
|
||||
/// <param name="AxisName"></param>
|
||||
/// <returns></returns>
|
||||
private PointLineSeries GetPointLineSeries(string SeriesName)
|
||||
{
|
||||
var PointLineSeries = LightningChartInstance.ViewXY.PointLineSeries;
|
||||
|
||||
if (PointLineSeries != null)
|
||||
{
|
||||
var findSeries = PointLineSeries.FindFirst(a => a.Title.Text == SeriesName);
|
||||
if (findSeries != null)
|
||||
{
|
||||
return findSeries;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 上层管理集合
|
||||
/// </summary>
|
||||
public List<ChartRtSeries> ListChartRtSeries { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 曲线
|
||||
/// </summary>
|
||||
@@ -132,7 +260,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// <summary>
|
||||
/// Y轴
|
||||
/// </summary>
|
||||
public AxisY? ChartAxisY { get; set; }
|
||||
public ConfigChartYAxis? ChartAxisY { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// X轴
|
||||
@@ -144,6 +272,12 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
public LightningChart LightningChartInstance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 曲线配置信息
|
||||
/// </summary>
|
||||
public ChartConfig ChartConfigInfo { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// X轴滚动
|
||||
/// </summary>
|
||||
@@ -160,7 +294,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
public void AddValue(double Data)
|
||||
{
|
||||
//foreach (var item in lightningChart1.ViewXY.PointLineSeries)
|
||||
//foreach (var item in LightningChartInstance.ViewXY.PointLineSeries)
|
||||
//{
|
||||
//Disable updates, to prevent several extra refreshes
|
||||
LightningChartInstance.BeginUpdate();
|
||||
@@ -183,10 +317,11 @@ namespace CapMachine.Wpf.Models
|
||||
LightningChartInstance.ViewXY.XAxes[0].ScrollPosition = _previousX;
|
||||
}
|
||||
|
||||
|
||||
//Allow updates again, and update
|
||||
LightningChartInstance.EndUpdate();
|
||||
|
||||
Value = Data;
|
||||
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Arction.Wpf.Charting.Axes;
|
||||
using Arction.Wpf.Charting.SeriesXY;
|
||||
using Prism.Mvvm;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -11,7 +12,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// <summary>
|
||||
/// 曲线实时数据模型
|
||||
/// </summary>
|
||||
public class ChartRtValue
|
||||
public class ChartRtValue:BindableBase
|
||||
{
|
||||
public ChartRtValue()
|
||||
{
|
||||
@@ -23,10 +24,15 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
private double _Value;
|
||||
/// <summary>
|
||||
/// 值
|
||||
/// </summary>
|
||||
public double Value { get; set; }
|
||||
public double Value
|
||||
{
|
||||
get { return _Value; }
|
||||
set { _Value = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Max
|
||||
|
||||
Reference in New Issue
Block a user