曲线图优化
This commit is contained in:
@@ -9,13 +9,15 @@ namespace 全自动水压检测仪
|
||||
{
|
||||
/// <summary>
|
||||
/// 图表管理器 - 负责实时曲线图的创建和数据更新
|
||||
/// 第一Y轴:实时压力(地址3130)
|
||||
/// 第二Y轴:压力设定值(地址2400,对应"压力设置(PSI)")
|
||||
/// </summary>
|
||||
public class ChartManager
|
||||
{
|
||||
private ElementHost _chartHost;
|
||||
private LiveCharts.Wpf.CartesianChart _chart;
|
||||
private ChartValues<double> _pressureValues;
|
||||
private ChartValues<double> _temperatureValues;
|
||||
private ChartValues<double> _pressureValues; // 实时压力值(地址3130)
|
||||
private ChartValues<double> _pressureSetValues; // 压力设定值(地址2400)
|
||||
private ChartValues<string> _timeLabels;
|
||||
private const int MAX_DATA_POINTS = 60; // 最多显示60个数据点
|
||||
|
||||
@@ -31,8 +33,8 @@ namespace 全自动水压检测仪
|
||||
targetPanel.Text = null;
|
||||
|
||||
// 初始化数据集合
|
||||
_pressureValues = new ChartValues<double>();
|
||||
_temperatureValues = new ChartValues<double>();
|
||||
_pressureValues = new ChartValues<double>(); // 实时压力
|
||||
_pressureSetValues = new ChartValues<double>(); // 压力设定值
|
||||
_timeLabels = new ChartValues<string>();
|
||||
|
||||
// 创建WPF图表控件
|
||||
@@ -94,11 +96,11 @@ namespace 全自动水压检测仪
|
||||
ScalesYAt = 0
|
||||
});
|
||||
|
||||
// 添加压力设定值曲线
|
||||
// 添加压力设定值曲线(来自地址2400,对应"压力设置(PSI)")
|
||||
_chart.Series.Add(new LineSeries
|
||||
{
|
||||
Title = "压力设定值",
|
||||
Values = _temperatureValues,
|
||||
Values = _pressureSetValues,
|
||||
Stroke = System.Windows.Media.Brushes.Red,
|
||||
Fill = System.Windows.Media.Brushes.Transparent,
|
||||
PointGeometry = DefaultGeometries.Diamond,
|
||||
@@ -123,11 +125,11 @@ namespace 全自动水压检测仪
|
||||
/// 添加新的数据点
|
||||
/// </summary>
|
||||
/// <param name="pressure">实时压力值</param>
|
||||
/// <param name="temperature">压力设定值</param>
|
||||
/// <param name="pressureSetValue">压力设定值(来自"压力设置(PSI)",地址2400)</param>
|
||||
/// <param name="time">时间标签(可选,默认使用当前时间)</param>
|
||||
public void AddDataPoint(double pressure, double temperature, string time = null)
|
||||
public void AddDataPoint(double pressure, double pressureSetValue, string time = null)
|
||||
{
|
||||
if (_pressureValues == null || _temperatureValues == null || _timeLabels == null)
|
||||
if (_pressureValues == null || _pressureSetValues == null || _timeLabels == null)
|
||||
return;
|
||||
|
||||
// 使用当前时间作为默认标签
|
||||
@@ -136,14 +138,14 @@ namespace 全自动水压检测仪
|
||||
|
||||
// 添加数据点
|
||||
_pressureValues.Add(pressure);
|
||||
_temperatureValues.Add(temperature);
|
||||
_pressureSetValues.Add(pressureSetValue);
|
||||
_timeLabels.Add(time);
|
||||
|
||||
// 限制数据点数量,保持图表流畅
|
||||
if (_pressureValues.Count > MAX_DATA_POINTS)
|
||||
{
|
||||
_pressureValues.RemoveAt(0);
|
||||
_temperatureValues.RemoveAt(0);
|
||||
_pressureSetValues.RemoveAt(0);
|
||||
_timeLabels.RemoveAt(0);
|
||||
}
|
||||
}
|
||||
@@ -154,7 +156,7 @@ namespace 全自动水压检测仪
|
||||
public void ClearData()
|
||||
{
|
||||
_pressureValues?.Clear();
|
||||
_temperatureValues?.Clear();
|
||||
_pressureSetValues?.Clear();
|
||||
_timeLabels?.Clear();
|
||||
}
|
||||
|
||||
@@ -189,7 +191,7 @@ namespace 全自动水压检测仪
|
||||
_chartHost?.Dispose();
|
||||
_chart = null;
|
||||
_pressureValues = null;
|
||||
_temperatureValues = null;
|
||||
_pressureSetValues = null;
|
||||
_timeLabels = null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user