Eerst werkende build
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -26,13 +27,21 @@ namespace ScimitarStandardTemplate
|
||||
public List<spotMeasurement> spotMeasurements = new List<spotMeasurement>();
|
||||
public List<curveTrace> curveTraces = new List<curveTrace>();
|
||||
public XmlDocument xmlDocument = new XmlDocument();
|
||||
public int SpotsCount { get; set; }
|
||||
public int CurveTracesCount { get; set; }
|
||||
public string DirectoryPath { get; set; }
|
||||
public string FilenameWithoutExtension { get; set; }
|
||||
|
||||
public List<spotMeasurement> spotsToAdd = new List<spotMeasurement>();
|
||||
public List<curveTrace> curveTracesToAdd = new List<curveTrace>();
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
AddStandardSpots();
|
||||
AddStandardCurveTraces();
|
||||
Serialize();
|
||||
|
||||
|
||||
}
|
||||
private void LoadXmlDocument (string path)
|
||||
@@ -46,21 +55,193 @@ namespace ScimitarStandardTemplate
|
||||
throw;
|
||||
}
|
||||
}
|
||||
private void Serialize()
|
||||
|
||||
private void AddToDocument()
|
||||
{
|
||||
XmlSerializer x = new XmlSerializer(spotMeasurements[0].GetType());
|
||||
x.Serialize(Console.Out, spotMeasurements[0]);
|
||||
//x = new XmlSerializer(curveTraces[0].GetType());
|
||||
//x.Serialize(Console.Out, curveTraces[0]);
|
||||
SerializeCurveTraces();
|
||||
SerializeSpots();
|
||||
SaveDocument();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void SaveDocument()
|
||||
{
|
||||
try
|
||||
{
|
||||
xmlDocument.Save(DirectoryPath + "Generated_" + FilenameWithoutExtension + ".xml");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private void GetSpotsToAdd()
|
||||
{
|
||||
var spotNodes = xmlDocument.GetElementsByTagName("spotMeasurement");
|
||||
|
||||
List<string> spotMeasurementsNamesInDoc = new List<string>();
|
||||
foreach (XmlElement spot in spotNodes)
|
||||
{
|
||||
string spotName = spot.Attributes.GetNamedItem("name").Value;
|
||||
spotMeasurementsNamesInDoc.Add(spotName);
|
||||
}
|
||||
|
||||
foreach (spotMeasurement spotMeasurement in spotMeasurements)
|
||||
{
|
||||
if (!spotMeasurementsNamesInDoc.Contains(spotMeasurement.name))
|
||||
{
|
||||
spotsToAdd.Add(spotMeasurement);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Console.WriteLine("bla");
|
||||
}
|
||||
|
||||
private void GetCurveTracesToAdd()
|
||||
{
|
||||
var curveNodes = xmlDocument.GetElementsByTagName("curveTrace");
|
||||
|
||||
List<string> curveTracesNamesInDoc = new List<string>();
|
||||
foreach (XmlElement curve in curveNodes)
|
||||
{
|
||||
string curveName = curve.Attributes.GetNamedItem("name").Value;
|
||||
curveTracesNamesInDoc.Add(curveName);
|
||||
}
|
||||
|
||||
foreach (curveTrace curveTrace in curveTraces)
|
||||
{
|
||||
if (!curveTracesNamesInDoc.Contains(curveTrace.name))
|
||||
{
|
||||
curveTracesToAdd.Add(curveTrace);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void GetNumberOfSpots()
|
||||
{
|
||||
var rootNode = xmlDocument.GetElementsByTagName("spots")[0];
|
||||
var stringCount = rootNode.Attributes.GetNamedItem("count").Value;
|
||||
this.SpotsCount = Int16.Parse(stringCount);
|
||||
}
|
||||
|
||||
private void GetNumberOfCurveTraces()
|
||||
{
|
||||
var rootNode = xmlDocument.GetElementsByTagName("curveTraces")[0];
|
||||
var stringCurveTracesCount = rootNode.Attributes.GetNamedItem("count").Value;
|
||||
this.CurveTracesCount = Int16.Parse(stringCurveTracesCount);
|
||||
}
|
||||
private void SerializeSpots()
|
||||
{
|
||||
if(spotsToAdd.Count > 0)
|
||||
{
|
||||
XmlSerializer x = new XmlSerializer(spotsToAdd[0].GetType());
|
||||
var rootNode = xmlDocument.GetElementsByTagName("spots")[0];
|
||||
int totalCount = spotsToAdd.Count + SpotsCount;
|
||||
rootNode.Attributes.GetNamedItem("count").Value = totalCount.ToString();
|
||||
var nav = rootNode.CreateNavigator();
|
||||
var emptyNamepsaces = new XmlSerializerNamespaces(new[] {XmlQualifiedName.Empty});
|
||||
|
||||
using (var writer = nav.AppendChild())
|
||||
{
|
||||
var serializer = new XmlSerializer(spotsToAdd[0].GetType());
|
||||
writer.WriteWhitespace("");
|
||||
|
||||
foreach (var spot in spotsToAdd)
|
||||
{
|
||||
serializer.Serialize(writer, spot, emptyNamepsaces);
|
||||
}
|
||||
|
||||
writer.Close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void SerializeCurveTraces()
|
||||
{
|
||||
if (curveTracesToAdd.Count > 0)
|
||||
{
|
||||
XmlSerializer x = new XmlSerializer(spotsToAdd[0].GetType());
|
||||
var rootNode = xmlDocument.GetElementsByTagName("curveTraces")[0];
|
||||
int totalCount = curveTracesToAdd.Count + CurveTracesCount;
|
||||
rootNode.Attributes.GetNamedItem("count").Value = totalCount.ToString();
|
||||
|
||||
var nav = rootNode.CreateNavigator();
|
||||
var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
|
||||
|
||||
using (var writer = nav.AppendChild())
|
||||
{
|
||||
var serializer = new XmlSerializer(curveTracesToAdd[0].GetType());
|
||||
writer.WriteWhitespace("");
|
||||
|
||||
foreach (var curve in curveTracesToAdd)
|
||||
{
|
||||
serializer.Serialize(writer, curve, emptyNamepsaces);
|
||||
}
|
||||
|
||||
writer.Close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void AddStandardCurveTraces()
|
||||
{
|
||||
var curveTrace1 = new curveTrace()
|
||||
{
|
||||
name = "-10uA..+10uA;Steps:51;Limit:2V",
|
||||
settlingTime = "0.01",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
forceType = "Current",
|
||||
percentageOfLineCycle = "_10_",
|
||||
compareAlgorithm = "Percentage",
|
||||
maxVoltage = "10",
|
||||
minVoltage = "10",
|
||||
maxCurrent = "10",
|
||||
minCurrent = "10",
|
||||
voltageAutoRange = "false",
|
||||
currentAutoRange = "false",
|
||||
start = "-0.00001",
|
||||
stop = "0.00001",
|
||||
stepCount = "51",
|
||||
initialSettlingTime = "0.01",
|
||||
stepSettlingTIme = "0.002",
|
||||
selfChecks = "OpenCircuit, ShortToGround"
|
||||
};
|
||||
|
||||
var curveTrace2 = new curveTrace()
|
||||
{
|
||||
name = "-100uA..+100uA;Steps:51;Limit:2V",
|
||||
settlingTime = "0.01",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
forceType = "Current",
|
||||
percentageOfLineCycle = "_10_",
|
||||
compareAlgorithm = "Percentage",
|
||||
maxVoltage = "10",
|
||||
minVoltage = "10",
|
||||
maxCurrent = "10",
|
||||
minCurrent = "10",
|
||||
voltageAutoRange = "false",
|
||||
currentAutoRange = "false",
|
||||
start = "-0.0001",
|
||||
stop = "0.0001",
|
||||
stepCount = "51",
|
||||
initialSettlingTime = "0.01",
|
||||
stepSettlingTIme = "0.002",
|
||||
selfChecks = "OpenCircuit, ShortToGround"
|
||||
};
|
||||
|
||||
var curveTrace3 = new curveTrace()
|
||||
{
|
||||
name = "-1mA..+1mA;Steps:51;Limit:2V",
|
||||
desc = "",
|
||||
settlingTime = "0.01",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
@@ -80,8 +261,9 @@ namespace ScimitarStandardTemplate
|
||||
stepSettlingTIme = "0.002",
|
||||
selfChecks = "OpenCircuit, ShortToGround"
|
||||
};
|
||||
|
||||
this.curveTraces.Add(curveTrace1);
|
||||
this.curveTraces.Add(curveTrace2);
|
||||
this.curveTraces.Add(curveTrace3);
|
||||
|
||||
}
|
||||
|
||||
@@ -90,7 +272,6 @@ namespace ScimitarStandardTemplate
|
||||
var spotMeasurement1 = new spotMeasurement()
|
||||
{
|
||||
name = "-10uA; Limit: 2V",
|
||||
desc = "",
|
||||
settlingTime = "0.003",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
@@ -110,7 +291,6 @@ namespace ScimitarStandardTemplate
|
||||
var spotMeasurement2 = new spotMeasurement()
|
||||
{
|
||||
name = "+10uA; Limit: 2V",
|
||||
desc = "",
|
||||
settlingTime = "0.003",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
@@ -130,7 +310,6 @@ namespace ScimitarStandardTemplate
|
||||
var spotMeasurement3 = new spotMeasurement()
|
||||
{
|
||||
name = "-1mA; Limit: 2V (SHORT/R)",
|
||||
desc = "",
|
||||
settlingTime = "0.003",
|
||||
supplyName = "MKx-style (30V/5A)",
|
||||
limit = "2",
|
||||
@@ -148,13 +327,21 @@ namespace ScimitarStandardTemplate
|
||||
};
|
||||
|
||||
spotMeasurements.Add(spotMeasurement1);
|
||||
//spotMeasurements.Add(spotMeasurement2);
|
||||
//spotMeasurements.Add(spotMeasurement3);
|
||||
spotMeasurements.Add(spotMeasurement2);
|
||||
spotMeasurements.Add(spotMeasurement3);
|
||||
}
|
||||
|
||||
private void BrowseButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
OpenFileBrowser();
|
||||
|
||||
LoadXmlDocument(FileName);
|
||||
GetNumberOfSpots();
|
||||
GetNumberOfCurveTraces();
|
||||
GetSpotsToAdd();
|
||||
GetCurveTracesToAdd();
|
||||
AddToDocument();
|
||||
|
||||
}
|
||||
|
||||
private void OpenFileBrowser ()
|
||||
@@ -163,8 +350,8 @@ namespace ScimitarStandardTemplate
|
||||
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
|
||||
|
||||
// Set filter for file extension and default file extension
|
||||
dlg.DefaultExt = ".txt";
|
||||
dlg.Filter = "Text documents (.txt)|*.txt";
|
||||
dlg.DefaultExt = ".xml";
|
||||
dlg.Filter = "xml documents (.xml)|*.xml";
|
||||
|
||||
// Display OpenFileDialog by calling ShowDialog method
|
||||
Nullable<bool> result = dlg.ShowDialog();
|
||||
@@ -175,6 +362,9 @@ namespace ScimitarStandardTemplate
|
||||
// Open document
|
||||
string filename = dlg.FileName;
|
||||
this.FileName = filename;
|
||||
this.DirectoryPath = System.IO.Path.GetDirectoryName(dlg.FileName);
|
||||
this.FilenameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(dlg.FileName);
|
||||
Console.WriteLine(FilenameWithoutExtension);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace ScimitarStandardTemplate
|
||||
|
||||
public ParametricOperation()
|
||||
{
|
||||
|
||||
this.desc = "Automatic Generated";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,16 @@ namespace ScimitarStandardTemplate
|
||||
|
||||
[XmlElement("spot")]
|
||||
public spot[] spots { get; set; }
|
||||
//public int[] nee;
|
||||
|
||||
public spotMeasurement()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Add()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class spot
|
||||
|
||||
Reference in New Issue
Block a user