1st commit
This commit is contained in:
208
xmlserializetest/Form1.cs
Normal file
208
xmlserializetest/Form1.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.DataVisualization.Charting;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace xmlserializetest
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
List<Result> docs = new List<Result>();
|
||||
List<Res> groupData = new List<Res>();
|
||||
List<Res> pinData = new List<Res>();
|
||||
List<string> groups = new List<string>();
|
||||
List<string> pins = new List<string>();
|
||||
List<string> tests = new List<string>();
|
||||
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
Main();
|
||||
}
|
||||
|
||||
public void Main()
|
||||
{
|
||||
//const string FILENAME = @"d:\result.xml";
|
||||
//XmlReaderSettings settings = new XmlReaderSettings();
|
||||
//settings.IgnoreWhitespace = true;
|
||||
//XmlReader reader = XmlReader.Create(FILENAME);
|
||||
//XmlSerializer serializer = new XmlSerializer(typeof(Result));
|
||||
//Result doc = (Result)serializer.Deserialize(reader);
|
||||
|
||||
|
||||
foreach (var file in Directory.EnumerateFiles(@"D:\curves\", "*.xml"))
|
||||
{
|
||||
XmlReaderSettings settings = new XmlReaderSettings();
|
||||
settings.IgnoreWhitespace = true;
|
||||
XmlReader reader = XmlReader.Create(file);
|
||||
XmlSerializer serializer = new XmlSerializer(typeof(Result));
|
||||
Result doc = (Result)serializer.Deserialize(reader);
|
||||
docs.Add(doc);
|
||||
PrintGroups(doc);
|
||||
PrintTests(doc);
|
||||
PopulateTests(doc);
|
||||
groups.AddRange(GetGroups(doc));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
groups = groups.Distinct().ToList();
|
||||
lbGroups.DataSource = groups;
|
||||
|
||||
}
|
||||
|
||||
void PopulateTests(Result doc)
|
||||
{
|
||||
foreach (var test in doc.ResultHeader.Tests.Test)
|
||||
{
|
||||
if(test.TestType == "Thermo.CTS.Scimitar.Components.ParametricContainer")
|
||||
tests.Add(test.Name);
|
||||
}
|
||||
|
||||
lbTests.DataSource = tests.Distinct().ToList();
|
||||
|
||||
}
|
||||
|
||||
public void PlotData(List<Res> data)
|
||||
{
|
||||
chart1.Series.Clear();
|
||||
int i=0;
|
||||
foreach (var curve in data)
|
||||
{
|
||||
i++;
|
||||
string name = i.ToString();
|
||||
var s = new Series(name);
|
||||
s.ChartType = SeriesChartType.Line;
|
||||
chart1.Series.Add(s);
|
||||
foreach (var vi in curve.Curve.Vi)
|
||||
{
|
||||
chart1.Series[name].Points.AddXY(vi.v, vi.i);
|
||||
}
|
||||
}
|
||||
chart1.DataBind();
|
||||
}
|
||||
|
||||
void PrintGroups (Result doc)
|
||||
{
|
||||
foreach (var group in doc.ResultHeader.Groups.Group)
|
||||
{
|
||||
Console.WriteLine(group.Name);
|
||||
foreach (var pin in group.Pin)
|
||||
{
|
||||
Console.WriteLine("PinName : {0}, desc: {1}",pin.Name,pin.Desc);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
List<string> GetGroups (Result doc)
|
||||
{
|
||||
List<string> groups = new List<string>();
|
||||
|
||||
foreach (var group in doc.ResultHeader.Groups.Group)
|
||||
{
|
||||
Console.WriteLine(group.Name);
|
||||
foreach (var pin in group.Pin)
|
||||
{
|
||||
groups.Add(pin.Desc);
|
||||
}
|
||||
|
||||
}
|
||||
return groups;
|
||||
}
|
||||
|
||||
List<string> GetPinsFromGroups(Result doc)
|
||||
{
|
||||
List<string> pins = new List<string>();
|
||||
|
||||
foreach (var group in doc.ResultHeader.Groups.Group)
|
||||
{
|
||||
var groups = lbGroups.SelectedItems;
|
||||
Console.WriteLine(group.Name);
|
||||
if (groups.Contains(group.Name))
|
||||
{
|
||||
foreach (var pin in group.Pin)
|
||||
{
|
||||
pins.Add(pin.Name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return pins.Distinct().ToList();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PrintTests ( Result doc)
|
||||
{
|
||||
foreach ( var test in doc.ResultHeader.Tests.Test)
|
||||
{
|
||||
Console.WriteLine(test.Name);
|
||||
}
|
||||
}
|
||||
|
||||
private void lbGroups_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
groupData.Clear();
|
||||
foreach (var doc in docs)
|
||||
{
|
||||
groups.Clear();
|
||||
foreach (var group in lbGroups.SelectedItems)
|
||||
{
|
||||
groups.Add(group.ToString());
|
||||
}
|
||||
|
||||
List<string> tests = new List<string>();
|
||||
foreach (var test in lbTests.SelectedItems)
|
||||
{
|
||||
tests.Add(test.ToString());
|
||||
}
|
||||
|
||||
groupData.AddRange(doc.DataSection.GetResultsByTestNameAndGroups(tests, groups));
|
||||
lbPins.DataSource = GetPinsFromGroups(doc);
|
||||
|
||||
}
|
||||
|
||||
PlotData(groupData);
|
||||
|
||||
|
||||
}
|
||||
private void PlotPins ()
|
||||
{
|
||||
pinData.Clear();
|
||||
foreach (var doc in docs)
|
||||
{
|
||||
pins.Clear();
|
||||
foreach (var pin in lbPins.SelectedItems)
|
||||
{
|
||||
pins.Add(pin.ToString());
|
||||
}
|
||||
|
||||
List<string> tests = new List<string>();
|
||||
foreach (var test in lbTests.SelectedItems)
|
||||
{
|
||||
tests.Add(test.ToString());
|
||||
}
|
||||
|
||||
pinData.AddRange(doc.DataSection.GetResultsByTestNameAndPins(tests, pins));
|
||||
}
|
||||
PlotData(pinData);
|
||||
}
|
||||
|
||||
private void lbPins_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
PlotPins();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user