147 lines
4.1 KiB
C#
147 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
using System.Windows.Forms.DataVisualization.Charting;
|
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
|
|
|
|
namespace WindowsFormsApp1
|
|
{
|
|
public partial class Record : Form
|
|
{
|
|
public Record()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public string RecordFile = null;
|
|
private double GraphMin, GraphMax;
|
|
|
|
private void Record_Load(object sender, EventArgs e)
|
|
{
|
|
if (RecordFile == null) return;
|
|
|
|
Text = Path.GetFileName(RecordFile);
|
|
|
|
string[] record = File.ReadAllLines(RecordFile);
|
|
|
|
if (record.Length < 3) return;
|
|
if (record[0] != "Telem v1") return;
|
|
|
|
string[] head = record[1].Split('|');
|
|
if (head.Length < 2) return;
|
|
|
|
for (int a = 1; a < head.Length; a++)
|
|
{
|
|
var s = chart_Graph.Series.Add(head[a]);
|
|
s.ChartType = SeriesChartType.FastLine;
|
|
s.XValueType = ChartValueType.DateTime;
|
|
int i = checkedListBox_Series.Items.Add(head[a]);
|
|
checkedListBox_Series.SetItemChecked(i, true);
|
|
}
|
|
chart_Graph.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
|
|
|
|
int count = head.Length;
|
|
|
|
double Max = 0, Min = 0;
|
|
double time = 0;
|
|
|
|
for (int a = 2; a < record.Length; a++)
|
|
{
|
|
string[] value = record[a].Split('|');
|
|
if (value.Length != count) break;
|
|
time = double.Parse(value[0]);
|
|
|
|
if (a == 2) chart_Graph.ChartAreas[0].AxisX.Minimum = time;
|
|
|
|
for (int b = 1; b < value.Length; b++)
|
|
{
|
|
float v = float.Parse(value[b], CultureInfo.InvariantCulture.NumberFormat);
|
|
chart_Graph.Series[b - 1].Points.AddXY(time, v);
|
|
if (v > Max) Max = v;
|
|
if (v < Min) Min = v;
|
|
}
|
|
}
|
|
Max += 100;
|
|
Min -= 100;
|
|
|
|
GraphMin = Min; GraphMax = Max;
|
|
|
|
chart_Graph.ChartAreas[0].AxisX.Maximum = time;
|
|
|
|
chart_Graph.ChartAreas[0].AxisY.Maximum = Max;
|
|
chart_Graph.ChartAreas[0].AxisY.Minimum = Min;
|
|
|
|
trackBar_GraphY_Left.Minimum = (int)Min;
|
|
trackBar_GraphY_Left.Maximum = (int)Max;
|
|
trackBar_GraphY_Left.Value = (int)Min;
|
|
|
|
trackBar_GraphY_Right.Minimum = (int)Min;
|
|
trackBar_GraphY_Right.Maximum = (int)Max;
|
|
trackBar_GraphY_Right.Value = (int)Max;
|
|
}
|
|
|
|
private void trackBar_GraphY_Left_Scroll(object sender, EventArgs e)
|
|
{
|
|
if (checkBox_AutoY.Checked) return;
|
|
|
|
int min = trackBar_GraphY_Left.Value;
|
|
int max = trackBar_GraphY_Right.Value;
|
|
if (min > max)
|
|
{
|
|
int sub = min;
|
|
min = max;
|
|
max = sub;
|
|
}
|
|
|
|
if (max == min) max += 1;
|
|
|
|
chart_Graph.ChartAreas[0].AxisY.Minimum = min;
|
|
chart_Graph.ChartAreas[0].AxisY.Maximum = max;
|
|
}
|
|
|
|
private void checkedListBox_Series_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (checkedListBox_Series.SelectedIndex == -1) return;
|
|
int index = checkedListBox_Series.SelectedIndex;
|
|
button_Color.BackColor = chart_Graph.Series[index].Color;
|
|
//---
|
|
for (int a = 0; a < checkedListBox_Series.Items.Count; a++)
|
|
{
|
|
chart_Graph.Series[a].Enabled = checkedListBox_Series.GetItemChecked(a);
|
|
}
|
|
}
|
|
|
|
private void button_Color_Click(object sender, EventArgs e)
|
|
{
|
|
if (colorDialog_Color.ShowDialog() == DialogResult.Cancel) return;
|
|
if (checkedListBox_Series.SelectedIndex == -1) return;
|
|
//---
|
|
int index = checkedListBox_Series.SelectedIndex;
|
|
chart_Graph.Series[index].Color = colorDialog_Color.Color;
|
|
button_Color.BackColor = colorDialog_Color.Color;
|
|
}
|
|
|
|
private void checkBox_AutoY_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if(checkBox_AutoY.Checked)
|
|
{
|
|
chart_Graph.ChartAreas[0].AxisY.Maximum = double.NaN;
|
|
chart_Graph.ChartAreas[0].AxisY.Minimum = double.NaN;
|
|
}
|
|
else
|
|
{
|
|
trackBar_GraphY_Left_Scroll(null, null);
|
|
}
|
|
}
|
|
}
|
|
}
|