Statistics, ProcesData, Plotter, IPlotter, GraphsTabPageCtrl, FlyingStartMassCollection changes
This commit is contained in:
parent
5f17dabb0b
commit
b844aafcf3
@ -30,7 +30,7 @@ namespace Config
|
|||||||
[Description("hr")] hour, /// 1 hour = 60 min = 3600 s
|
[Description("hr")] hour, /// 1 hour = 60 min = 3600 s
|
||||||
[Description("ms")] ms, /// 1 ms = 0.001 s
|
[Description("ms")] ms, /// 1 ms = 0.001 s
|
||||||
|
|
||||||
[Description("°C")] C, /// * degree Celsius
|
[Description("°C")] C, /// * degree Celsius (°C)
|
||||||
[Description("°F")] F, /// degree Fahrenheit
|
[Description("°F")] F, /// degree Fahrenheit
|
||||||
[Description("K")] K, /// degree Kelvin
|
[Description("K")] K, /// degree Kelvin
|
||||||
|
|
||||||
@ -293,8 +293,8 @@ namespace Config
|
|||||||
case Unit.hour: return v / 3600;
|
case Unit.hour: return v / 3600;
|
||||||
case Unit.ms: return 1000 * v;
|
case Unit.ms: return 1000 * v;
|
||||||
|
|
||||||
/// Temperature: internal representation in degree C
|
/// Temperature: internal representation in °C
|
||||||
case Unit.C: return v; /// degree Celsius
|
case Unit.C: return v; /// degree Celsius (°C)
|
||||||
case Unit.F: return 1.8 * v + 32; /// degree Fahrenheit
|
case Unit.F: return 1.8 * v + 32; /// degree Fahrenheit
|
||||||
case Unit.K: return v + 273.15; /// degree Kelvin
|
case Unit.K: return v + 273.15; /// degree Kelvin
|
||||||
|
|
||||||
@ -360,8 +360,8 @@ namespace Config
|
|||||||
case Unit.hour: return 3600 * v;
|
case Unit.hour: return 3600 * v;
|
||||||
case Unit.ms: return v / 1000;
|
case Unit.ms: return v / 1000;
|
||||||
|
|
||||||
/// Temperature: internal representation in degree C
|
/// Temperature: internal representation in °C
|
||||||
case Unit.C: return v; /// degree Celsius
|
case Unit.C: return v; /// degree Celsius (°C)
|
||||||
case Unit.F: return 5 * (v-32) / 9; /// degree Fahrenheit
|
case Unit.F: return 5 * (v-32) / 9; /// degree Fahrenheit
|
||||||
case Unit.K: return v - 273.15; /// degree Kelvin
|
case Unit.K: return v - 273.15; /// degree Kelvin
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
using System.Runtime.Serialization.Formatters.Binary;
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
@ -160,6 +161,45 @@ namespace GraphLib
|
|||||||
grid_off_y = off_y;
|
grid_off_y = off_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Load Samples from a file. Returns loaded points count.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pathName">File pathname</param>
|
||||||
|
/// <returns>Loaded points count</returns>
|
||||||
|
public int LoadSamples(string pathName, out float yMin, out float yMax)
|
||||||
|
{
|
||||||
|
yMin = float.MaxValue;
|
||||||
|
yMax = float.MinValue;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Int64 size = new FileInfo(pathName).Length;
|
||||||
|
if ((size % 8) != 0) return 0;
|
||||||
|
int samplesCount = (int)(size / 8L) - 1;
|
||||||
|
if (samplesCount <= 0) return 0;
|
||||||
|
|
||||||
|
PointF[] newSamples = new PointF[samplesCount];
|
||||||
|
using (BinaryReader reader = new BinaryReader(File.Open(pathName, FileMode.Open)))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < samplesCount; i++)
|
||||||
|
{
|
||||||
|
newSamples[i].X = reader.ReadSingle();
|
||||||
|
newSamples[i].Y = reader.ReadSingle();
|
||||||
|
}
|
||||||
|
yMin = reader.ReadSingle();
|
||||||
|
yMax = reader.ReadSingle();
|
||||||
|
}
|
||||||
|
|
||||||
|
Samples = newSamples;
|
||||||
|
return samplesCount;
|
||||||
|
}
|
||||||
|
catch (Exception exc)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Category("Properties")] // Take this out, and you will soon have problems with serialization;
|
[Category("Properties")] // Take this out, and you will soon have problems with serialization;
|
||||||
[DefaultValue(typeof(string), "")]
|
[DefaultValue(typeof(string), "")]
|
||||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
||||||
|
|||||||
@ -374,7 +374,14 @@ namespace GraphLib
|
|||||||
if (gPane.Sources.Count > 0)
|
if (gPane.Sources.Count > 0)
|
||||||
{
|
{
|
||||||
int val = hScrollBar1.Value;
|
int val = hScrollBar1.Value;
|
||||||
gPane.starting_idx = (int)(gPane.Sources[0].Length * (float)val / 10000.0f);
|
|
||||||
|
int maxLen = 0;
|
||||||
|
foreach (var s in DataSources)
|
||||||
|
{
|
||||||
|
if (s.Length > maxLen) maxLen = s.Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
gPane.starting_idx = (int)(maxLen * (float)val / 10000.0f);
|
||||||
gPane.Invalidate();
|
gPane.Invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1
GraphLib/PlotterDisplayEx.designer.cs
generated
1
GraphLib/PlotterDisplayEx.designer.cs
generated
@ -56,6 +56,7 @@ namespace GraphLib
|
|||||||
this.tb1.ShowToolTips = true;
|
this.tb1.ShowToolTips = true;
|
||||||
this.tb1.Size = new System.Drawing.Size(80, 26);
|
this.tb1.Size = new System.Drawing.Size(80, 26);
|
||||||
this.tb1.TabIndex = 1;
|
this.tb1.TabIndex = 1;
|
||||||
|
this.tb1.Visible = false;
|
||||||
this.tb1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.tb1_ButtonClick);
|
this.tb1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.tb1_ButtonClick);
|
||||||
//
|
//
|
||||||
// tbbSave
|
// tbbSave
|
||||||
|
|||||||
@ -125,64 +125,64 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACI
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACI
|
||||||
DgAAAk1TRnQBSQFMAgEBBAEAAQwBAAEMAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
DgAAAk1TRnQBSQFMAgEBBAEAARQBAAEUAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||||
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AKgADAQECwAABtwGV
|
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AKgADAQECwAABtgGV
|
||||||
AVAB/QHKAZgBWgH/AcoBlwFaAf8BygGXAVoB/wHKAZcBWgH/AcoBlwFZAf8ByQGXAVkB/wHJAZcBWQH/
|
AU8B/QHKAZgBWQH/AcoBlwFZAf8BygGXAVkB/wHKAZcBWQH/AcoBlwFYAf8ByQGXAVgB/wHJAZcBWAH/
|
||||||
AcoBmAFaAf8BtwGUAVAB/RQAAxQBHAMRARcDAgEDrAADTgGZA10B0gNNAf8BxwGVAVYB/wH5AfcB9gH/
|
AcoBmAFZAf8BtgGUAU8B/RQAAxQBHAMRARcDAgEDrAADTgGZA10B0gNMAf8BxwGVAVUB/wH5AfcB9gH/
|
||||||
AfkB8QHsAf8B+QHxAesB/wH4AfAB6QH/AfcB7QHmAf8B9AHqAeEB/wHyAegB3gH/AfoB+AH2Af8BxwGU
|
AfkB8QHsAf8B+QHxAesB/wH4AfAB6QH/AfcB7QHmAf8B9AHqAeEB/wHyAegB3gH/AfoB+AH2Af8BxwGU
|
||||||
AVYB/wMZAf8DWAHRA0QBeggAAxUBHQFiAlgB6QM6AWEDDQESAwABASwAAxsBJgMbASYDGwEmAxsBJgMb
|
AVUB/wMYAf8DWAHRA0QBeggAAxUBHQFiAlgB6QM6AWEDDQESAwABASwAAxsBJgMbASYDGwEmAxsBJgMb
|
||||||
ASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmEAADGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEm
|
ASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmEAADGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEm
|
||||||
AxsBJgMbASYDGwEmAxsBJgMbASYIAANVAf0DpwH/A7UB/wOBAf8BrwGsAaoB/wHFAcABvQH/AcUBwAG9
|
AxsBJgMbASYDGwEmAxsBJgMbASYIAANUAf0DpwH/A7UB/wOBAf8BrwGsAaoB/wHFAcABvQH/AcUBwAG9
|
||||||
Af8BxQHAAb0B/wHFAcABvQH/AcUBwAG9Af8BxQHAAb0B/wGtAaoBqAH/AyEB/wO1Af8DmwH/AxgB/wgA
|
Af8BxQHAAb0B/wHFAcABvQH/AcUBwAG9Af8BxQHAAb0B/wGtAaoBqAH/AyAB/wO1Af8DmwH/AxcB/wgA
|
||||||
AxUBHQNNAfoBOwIrAfwDXwHgAysBQgMNARIoAAMbASYDKwH8AYACgQH/AYACgQH/AYACgQH/AYACgQH/
|
AxUBHQNNAfoBOgIrAfwDXwHgAysBQgMNARIoAAMbASYDKwH8AYACgQH/AYACgQH/AYACgQH/AYACgQH/
|
||||||
AYACgQH/AYACgQH/AYACgQH/AYACgQH/AYACgQH/AxsBJhAAAxsBJgMrAfwBgAKBAf8BgAKBAf8BgAKB
|
AYACgQH/AYACgQH/AYACgQH/AYACgQH/AYACgQH/AxsBJhAAAxsBJgMrAfwBgAKBAf8BgAKBAf8BgAKB
|
||||||
Af8DIwE0AxsBJgMrAfwBgAKBAf8BgAKBAf8BgAKBAf8DIwE0CAADZQH/A7UB/wO1Af8DlQH/A4EB/wOB
|
Af8DIwE0AxsBJgMrAfwBgAKBAf8BgAKBAf8BgAKBAf8DIwE0CAADZAH/A7UB/wO1Af8DlQH/A4EB/wOB
|
||||||
Af8DbgH/A2MB/wNWAf8DRwH/AzgB/wM3Af8DYwH/A7UB/wO1Af8DGgH/CAADFQEdAV8CSgH7AfkB+gH5
|
Af8DbQH/A2IB/wNVAf8DRgH/AzcB/wM2Af8DYgH/A7UB/wO1Af8DGQH/CAADFQEdAV8CSgH7AfkB+gH5
|
||||||
Af8DfwH+AV8BUwFSAfsDVQGyAx0BKgMIAQsgAAMbASYDQAH9IP8DQAH9AxsBJgMAAQEMAAMbASYDQAH9
|
Af8DfwH+AV8BUwFSAfsDVQGyAx0BKgMIAQsgAAMbASYDQAH9IP8DQAH9AxsBJgMAAQEMAAMbASYDQAH9
|
||||||
AfwB/QH8Bf8DQAH9AxsBJgMbASYDQAH9AfwB/QH8Bf8DQAH9AxsBJgMAAQEEAANqAf8DuwH/A7sB/wON
|
AfwB/QH8Bf8DQAH9AxsBJgMbASYDQAH9AfwB/QH8Bf8DQAH9AxsBJgMAAQEEAANpAf8DuwH/A7sB/wON
|
||||||
Af8D1AH/A7kB/wO5Af8DuQH/A7kB/wO5Af8DuQH/A9MB/wODAf8DuwH/A7sB/wMfAf8IAAMVAR0DKwH8
|
Af8D1AH/A7kB/wO5Af8DuQH/A7kB/wO5Af8DuQH/A9MB/wODAf8DuwH/A7sB/wMeAf8IAAMVAR0DKwH8
|
||||||
AfoC+wH/AfUC9gH/AfkC+gH/ATwBLwEuAfwBbQJRAfcDQgF2AxYBHgMFAQcYAAMbASYDQAH9BP8B1QHb
|
AfoC+wH/AfUC9gH/AfkC+gH/ATsBLgEtAfwBbQJRAfcDQgF2AxYBHgMFAQcYAAMbASYDQAH9BP8B1QHb
|
||||||
AdgB/wHUAdsB1wH/AdQB2wHYAf8B0wHbAdcB/wHRAdkB1QH/Ac8B1wHTBf8DQAH9AxsBJgMBAQIMAAMb
|
AdgB/wHUAdsB1wH/AdQB2wHYAf8B0wHbAdcB/wHRAdkB1QH/Ac8B1wHTBf8DQAH9AxsBJgMBAQIMAAMb
|
||||||
ASYDQAH9AeIB5QHkAf8B2AHfAdwB/wNAAf0DGwEmAxsBJgNAAf0D8wH/AfcB+AH3Af8DQAH9AxsBJgMB
|
ASYDQAH9AeIB5QHkAf8B2AHfAdwB/wNAAf0DGwEmAxsBJgNAAf0D8wH/AfcB+AH3Af8DQAH9AxsBJgMB
|
||||||
AQIEAANvAf8D1wH/A9cB/wOXAf8D2AH/A78B/wO/Af8DvwH/A78B/wO/Af8DvwH/A9cB/wOOAf8D1wH/
|
AQIEAANuAf8D1wH/A9cB/wOXAf8D2AH/A78B/wO/Af8DvwH/A78B/wO/Af8DvwH/A9cB/wOOAf8D1wH/
|
||||||
A9cB/wM0Af8IAAMWAR4DKwH8A/sB/wHTAdoB1wH/AdoB3wHcAf8B9gH3AfYB/wHyAvMB/wE7AisB/AFg
|
A9cB/wMzAf8IAAMWAR4DKwH8A/sB/wHTAdoB1wH/AdoB3wHcAf8B9gH3AfYB/wHyAvMB/wE6AisB/AFg
|
||||||
AlkB6wMzAVMDEgEZAwQBBRAAAxsBJgNAAf0E/wHaAeAB3QH/AdsB4QHeAf8B3QHiAeAB/wHdAeIB4AH/
|
AlkB6wMzAVMDEgEZAwQBBRAAAxsBJgNAAf0E/wHaAeAB3QH/AdsB4QHeAf8B3QHiAeAB/wHdAeIB4AH/
|
||||||
AdsB4QHeAf8B2AHeAdsF/wNAAf0DGwEmAwEBAgwAAxsBJgNAAf0B4gHmAeQB/wHcAeIB3wH/A0AB/QMb
|
AdsB4QHeAf8B2AHeAdsF/wNAAf0DGwEmAwEBAgwAAxsBJgNAAf0B4gHmAeQB/wHcAeIB3wH/A0AB/QMb
|
||||||
ASYDGwEmA0AB/QHvAfEB8AH/AfAB8wHxAf8DQAH9AxsBJgMBAQIEAANzAf8D+QH/A/kB/wOrAf8D3wH/
|
ASYDGwEmA0AB/QHvAfEB8AH/AfAB8wHxAf8DQAH9AxsBJgMBAQIEAANyAf8D+QH/A/kB/wOrAf8D3wH/
|
||||||
A8sB/wPLAf8DywH/A8sB/wPLAf8DywH/A98B/wOjAf8D+QH/A/kB/wNWAf8IAAMWAR4DKwH8A/sB/wHf
|
A8sB/wPLAf8DywH/A8sB/wPLAf8DywH/A98B/wOjAf8D+QH/A/kB/wNVAf8IAAMWAR4DKwH8A/sB/wHf
|
||||||
AeQB4QH/Ad4B4wHhAf8B3gHjAeAB/wHjAecB5QH/AfQC9QH/A38B/gGRAkAB/QNWAbYDJgE5AxABFQwA
|
AeQB4QH/Ad4B4wHhAf8B3gHjAeAB/wHjAecB5QH/AfQC9QH/A38B/gGRAkAB/QNWAbYDJgE5AxABFQwA
|
||||||
AxsBJgNAAf0E/wHdAeMB4AH/AeEB5gHjAf8B5AHpAecB/wHmAeoB6AH/AeUB6QHnAf8B4gHnAeQF/wNA
|
AxsBJgNAAf0E/wHdAeMB4AH/AeEB5gHjAf8B5AHpAecB/wHmAeoB6AH/AeUB6QHnAf8B4gHnAeQF/wNA
|
||||||
Af0DGwEmAwEBAgwAAxsBJgNAAf0B5AHoAeUB/wHeAeMB4QH/A0AB/QMbASYDGwEmA0AB/QHsAe8B7gH/
|
Af0DGwEmAwEBAgwAAxsBJgNAAf0B5AHoAeUB/wHeAeMB4QH/A0AB/QMbASYDGwEmA0AB/QHsAe8B7gH/
|
||||||
AecB6wHpAf8DQAH9AxsBJgMBAQIEAANqAfkD/AH/A/wB/wPLAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPy
|
AecB6wHpAf8DQAH9AxsBJgMBAQIEAANqAfkD/AH/A/wB/wPLAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPy
|
||||||
Af8D8gH/A/IB/wPGAf8D/AH/A/wB/wNwAf4IAAMWAR4DKwH8A/sB/wHqAe4B7AH/AewB7wHuAf8B7AHv
|
Af8D8gH/A/IB/wPGAf8D/AH/A/wB/wNwAf4IAAMWAR4DKwH8A/sB/wHqAe4B7AH/AewB7wHuAf8B7AHv
|
||||||
Ae4B/wHrAe4B7QH/AekB7AHrAf8DfwH+ATsCKwH8AVgCVgG7Ax0BKgMGAQgMAAMbASYDQAH9BP8B3wHk
|
Ae4B/wHrAe4B7QH/AekB7AHrAf8DfwH+AToCKwH8AVgCVgG7Ax0BKgMGAQgMAAMbASYDQAH9BP8B3wHk
|
||||||
AeEB/wHkAekB5gH/AeoB7QHrAf8B7gHxAe8B/wHvAfEB8AH/AewB7wHuBf8DQAH9AxsBJgMBAQIMAAMb
|
AeEB/wHkAekB5gH/AeoB7QHrAf8B7gHxAe8B/wHvAfEB8AH/AewB7wHuBf8DQAH9AxsBJgMBAQIMAAMb
|
||||||
ASYDQAH9AesB7QHsAf8B3QHjAeAB/wNAAf0DGwEmAxsBJgNAAf0B7QHwAe8B/wHfAeQB4QH/A0AB/QMb
|
ASYDQAH9AesB7QHsAf8B3QHjAeAB/wNAAf0DGwEmAxsBJgNAAf0B7QHwAe8B/wHfAeQB4QH/A0AB/QMb
|
||||||
ASYDAQECBAADXQTSAf8D6AH/A3IB/wNyAf8DcgH/A3IB/wNyAf8DcgH/A3IB/wNyAf8DcgH/A3IB/wPo
|
ASYDAQECBAADXQTSAf8D6AH/A3EB/wNxAf8DcQH/A3EB/wNxAf8DcQH/A3EB/wNxAf8DcQH/A3EB/wPo
|
||||||
Af8DxAH/A1wB3AgAAxYBHgMrAfwD+wH/AfUC9gH/AfoB+wH6Af8D+QH/Ad0C3gH/AWoCRwH5A10B7QE6
|
Af8DxAH/A1wB3AgAAxYBHgMrAfwD+wH/AfUC9gH/AfoB+wH6Af8D+QH/Ad0C3gH/AWoCRwH5A10B7QE6
|
||||||
AjkBYAMNAREUAAMbASYDQAH9BP8B3AHiAd8B/wHkAegB5gH/AesB7gHtAf8B8gH0AfMB/wH3AvgB/wH2
|
AjkBYAMNAREUAAMbASYDQAH9BP8B3AHiAd8B/wHkAegB5gH/AesB7gHtAf8B8gH0AfMB/wH3AvgB/wH2
|
||||||
AfgB9wX/A0AB/QMbASYDAQECDAADGwEmA0AB/QHyAfQB8wH/AdoB3wHdAf8DQAH9AxsBJgMcASgDQAH9
|
AfgB9wX/A0AB/QMbASYDAQECDAADGwEmA0AB/QHyAfQB8wH/AdoB3wHdAf8DQAH9AxsBJgMcASgDQAH9
|
||||||
AfMB9QH0Af8B1gHdAdkB/wNAAf0DGwEmAwEBAgQAAy0BRQOaAf8DzAH/AccBiwFDAf8B+QH0Ae0B/wH+
|
AfMB9QH0Af8B1gHdAdkB/wNAAf0DGwEmAwEBAgQAAy0BRQOaAf8DzAH/AccBiwFCAf8B+QH0Ae0B/wH+
|
||||||
AegB2AH/Af4B6AHXAf8B/QHlAdMB/wH8AeQB0QH/AfoB4AHHAf8B+QHdAcMB/wH6AfQB7QH/AccBhQE/
|
AegB2AH/Af4B6AHXAf8B/QHlAdMB/wH8AeQB0QH/AfoB4AHHAf8B+QHdAcMB/wH6AfQB7QH/AccBhQE+
|
||||||
Af8DwwH/A2kB/wMtAUUIAAMWAR4DKwH8A/sB/wHwAfMB8gH/AeYC6AH/A00B+gFiAlIB9AFRAk8BpQMU
|
Af8DwwH/A2gB/wMtAUUIAAMWAR4DKwH8A/sB/wHwAfMB8gH/AeYC6AH/A00B+gFiAlIB9AFRAk8BpQMU
|
||||||
ARwDAAEBGAADGwEmA0AB/QT/AdgB3wHcAf8B4AHlAeMB/wHoAesB6gH/Ae8B8gHwAf8B9wH4AfcB/wP9
|
ARwDAAEBGAADGwEmA0AB/QT/AdgB3wHcAf8B4AHlAeMB/wHoAesB6gH/Ae8B8gHwAf8B9wH4AfcB/wP9
|
||||||
Bf8DQAH9AxsBJgMBAQIMAAMbASYDQAH9A/wB/wHVAdsB2AH/A0AB/QMbASYDHAEoA0AB/QP8Af8B0gHa
|
Bf8DQAH9AxsBJgMBAQIMAAMbASYDQAH9A/wB/wHVAdsB2AH/A0AB/QMbASYDHAEoA0AB/QP8Af8B0gHa
|
||||||
AdYB/wNAAf0DGwEmAwEBAggAAzsBYwNrAfMBxQGJAUEB/wH5AfQB7wH/Af4B5wHXAf8B/QHnAdUB/wH8
|
AdYB/wNAAf0DGwEmAwEBAggAAzsBYwNqAfMBxQGJAUAB/wH5AfQB7wH/Af4B5wHXAf8B/QHnAdUB/wH8
|
||||||
AeYB0gH/AfsB4QHMAf8B+AHcAcIB/wH2AdoBvQH/AfoB9AHvAf8BxAGDAT0B/wNdAfMDOwFjDAADFgEe
|
AeYB0gH/AfsB4QHMAf8B+AHcAcIB/wH2AdoBvQH/AfoB9AHvAf8BxAGDATwB/wNdAfMDOwFjDAADFgEe
|
||||||
AysB/AP7Af8BPwIzAfwDTQH6AVoCVwG9AxgBIgMCAQMgAAMbASYDQAH9IP8DQAH9AxsBJgMBAQIMAAMb
|
AysB/AP7Af8BPgIyAfwDTQH6AVoCVwG9AxgBIgMCAQMgAAMbASYDQAH9IP8DQAH9AxsBJgMBAQIMAAMb
|
||||||
ASYDQAH9CP8DQAH9AxsBJgMcASgDQAH9CP8DQAH9AxsBJgMBAQIMAAMHAQkBmgF9AUcC+QH0AfAB/wH8
|
ASYDQAH9CP8DQAH9AxsBJgMcASgDQAH9CP8DQAH9AxsBJgMBAQIMAAMHAQkBlgF6AUcC+QH0AfAB/wH8
|
||||||
AeYB0wH/Af0B5wHTAf8B+wHjAc0B/wH6AeAByAH/AfUB1gG7Af8B8wHUAbUB/wH4AfQB8AH/AZkBagFH
|
AeYB0wH/Af0B5wHTAf8B+wHjAc0B/wH6AeAByAH/AfUB1gG7Af8B8wHUAbUB/wH4AfQB8AH/AZUBagFH
|
||||||
AfkDBwEJEAADFgEeA0AB/QFbAjIB+wFgAlwB1AMjATMDBwEKKAADGwEmAysB/AEqAS4BLAH/ASoBLgEs
|
AfkDBwEJEAADFgEeA0AB/QFbAjIB+wFgAlwB1AMjATMDBwEKKAADGwEmAysB/AEpAS0BKwH/ASkBLQEr
|
||||||
Af8BKgEuASwB/wEqAS4BLAH/ASoBLgEsAf8BKgEuASwB/wEqAS4BLAH/ASoBLgEsAf8BKgEuASwB/wMb
|
Af8BKQEtASsB/wEpAS0BKwH/ASkBLQErAf8BKQEtASsB/wEpAS0BKwH/ASkBLQErAf8BKQEtASsB/wMb
|
||||||
ASYDAQECDAADGwEmAWMBVwFVAf4BKgEuASwB/wEqAS4BLAH/ASoBLgEsAf8DGwEmAxwBKAFjAVcBVQH+
|
ASYDAQECDAADGwEmAWMBVwFVAf4BKQEtASsB/wEpAS0BKwH/ASkBLQErAf8DGwEmAxwBKAFjAVcBVQH+
|
||||||
ASoBLgEsAf8BKgEuASwB/wEqAS4BLAH/AxsBJgMBAQIQAAGWAX0BUQH3AfkB9QHxAf8B/AHjAc8B/wH8
|
ASkBLQErAf8BKQEtASsB/wEpAS0BKwH/AxsBJgMBAQIQAAGSAXoBUQH3AfkB9QHxAf8B/AHjAc8B/wH8
|
||||||
AeQBzwH/AfoB4QHKAf8B+QHdAcQB/wH0AekB3wH/AfcB8gHsAf8B9QHvAekB/wGbAWABRQH7FAADFgEf
|
AeQBzwH/AfoB4QHKAf8B+QHdAcQB/wH0AekB3wH/AfcB8gHsAf8B9QHvAekB/wGZAV8BRQH7FAADFgEf
|
||||||
AV4CWgHYAygBPQMNAREwAAMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEm
|
AV4CWgHYAygBPQMNAREwAAMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEm
|
||||||
AxsBJgMAAQEMAAMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMA
|
AxsBJgMAAQEMAAMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMbASYDGwEmAxsBJgMA
|
||||||
AQEQAAGNAW0BSQH2AfkB9QHxAf8B/AHjAc0B/wH7AeMBzQH/AfkB4AHIAf8B+AHcAcIB/wH9AfsB+AH/
|
AQEQAAGJAWoBSQH2AfkB9QHxAf8B/AHjAc0B/wH7AeMBzQH/AfkB4AHIAf8B+AHcAcIB/wH9AfsB+AH/
|
||||||
AfwB5gHNAf8B4gG2AYQB/wJUAVIBphQAAxYBHwMRARcDAgEDuAABoAF2AU0B+gH3AfIB7AH/AfgB9AHu
|
AfwB5gHNAf8B4gG2AYQB/wJUAVIBphQAAxYBHwMRARcDAgEDuAABngF1AU0B+gH3AfIB7AH/AfgB9AHu
|
||||||
Af8B+AHzAe0B/wH4AfMB7QH/AfgB8gHsAf8B8gHmAdcB/wHiAbIBcgH/AZMBcwFiAfYDBQEHFAADAwEE
|
Af8B+AHzAe0B/wH4AfMB7QH/AfgB8gHsAf8B8gHmAdcB/wHiAbIBcQH/AZABcQFiAfYDBQEHFAADAwEE
|
||||||
wAADOgFgAlgBVgG7AbMBfwFPAf4ByAGMAUQB/wGWAYABUQH3AZYBgAFRAfcBsAF/AUwB/gNOAZQUAAFC
|
wAADOgFgAlgBVgG7AbEBfwFPAf4ByAGMAUMB/wGSAX8BUQH3AZIBfwFRAfcBrgF/AUwB/gNOAZQUAAFC
|
||||||
AU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAB3wX/AeABBwHHBf8CAAHBAf8BwAED
|
AU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAB3wX/AeABBwHHBf8CAAHBAf8BwAED
|
||||||
AcABAwIAAcAB/wHAAQMBwAEDAgABwAE/AcABAQHAAQECAAHAAQ8BwAEBAcABAQIAAcABAwHAAQEBwAEB
|
AcABAwIAAcAB/wHAAQMBwAEDAgABwAE/AcABAQHAAQECAAHAAQ8BwAEBAcABAQIAAcABAwHAAQEBwAEB
|
||||||
AgABwAEBAcABAQHAAQECAAHAAQEBwAEBAcABAQIAAcABBwHAAQEBwAEBAgABwAEPAcABAQHAAQEBgAEB
|
AgABwAEBAcABAQHAAQECAAHAAQEBwAEBAcABAQIAAcABBwHAAQEBwAEBAgABwAEPAcABAQHAAQEBgAEB
|
||||||
|
|||||||
@ -84,7 +84,7 @@ namespace GraphLib
|
|||||||
|
|
||||||
public float CurXD1 = 0;
|
public float CurXD1 = 0;
|
||||||
|
|
||||||
public float grid_distance_x = 200; // grid distance in samples ( draw a vertical line every 200 samples )
|
public float grid_distance_x = 60; // grid distance in samples ( draw a vertical line every 60 samples )
|
||||||
public float grid_off_x = 0;
|
public float grid_off_x = 0;
|
||||||
public float GraphCaptionLineHeight = 28;
|
public float GraphCaptionLineHeight = 28;
|
||||||
|
|
||||||
@ -452,7 +452,7 @@ namespace GraphLib
|
|||||||
|
|
||||||
if (layout == LayoutMode.NORMAL)
|
if (layout == LayoutMode.NORMAL)
|
||||||
{
|
{
|
||||||
DrawGraphCaption(CurGraphics, source, marker_pos, CurOffX + CurGraphIdx * (10 + yLabelAreaWidth), curOffY);
|
DrawGraphCaption(CurGraphics, source, marker_pos, CurOffX + CurGraphIdx * (50 + yLabelAreaWidth) + (CurGraphIdx==0 ? 0 : 50), curOffY);
|
||||||
|
|
||||||
if (CurGraphIdx == 0)
|
if (CurGraphIdx == 0)
|
||||||
{
|
{
|
||||||
@ -600,7 +600,7 @@ namespace GraphLib
|
|||||||
|
|
||||||
List<int> marker_pos = DrawGraphCurve(CurGraphics, source, CurOffX, curOffY + GraphCaptionLineHeight / 2);
|
List<int> marker_pos = DrawGraphCurve(CurGraphics, source, CurOffX, curOffY + GraphCaptionLineHeight / 2);
|
||||||
|
|
||||||
DrawGraphCaption(CurGraphics, source, marker_pos, CurOffX + CurGraphIdx * (10 + yLabelAreaWidth), pad_top);
|
DrawGraphCaption(CurGraphics, source, marker_pos, CurOffX + CurGraphIdx * (50 + yLabelAreaWidth) + (CurGraphIdx == 0 ? 0 : 50), pad_top);
|
||||||
|
|
||||||
DrawYLabels(CurGraphics, source, marker_pos, CurOffX, curOffY);
|
DrawYLabels(CurGraphics, source, marker_pos, CurOffX, curOffY);
|
||||||
|
|
||||||
@ -776,12 +776,15 @@ namespace GraphLib
|
|||||||
float y0 = (float)(source.grid_off_y * source.CurGraphHeight / source.DY + source.off_Y);
|
float y0 = (float)(source.grid_off_y * source.CurGraphHeight / source.DY + source.off_Y);
|
||||||
|
|
||||||
// draw horizontal zero grid lines
|
// draw horizontal zero grid lines
|
||||||
g.DrawLine(p2, new Point((int)CurrOffX, (int)(CurOffY + y0 + 0.5f)), new Point((int)(CurrOffX + source.CurGraphWidth + 0.5f), (int)(CurOffY + y0 + 0.5f)));
|
if (0 >= source.YD0 && 0 <= source.YD1)
|
||||||
|
{
|
||||||
|
g.DrawLine(p2, new Point((int)CurrOffX, (int)(CurOffY + y0 + 0.5f)), new Point((int)(CurrOffX + source.CurGraphWidth + 0.5f), (int)(CurOffY + y0 + 0.5f)));
|
||||||
|
}
|
||||||
|
|
||||||
// draw horizontal grid lines
|
// draw horizontal grid lines
|
||||||
for (Idx = (int)(source.grid_off_y);Idx > (int)(source.YD0 ); Idx -= (int)source.grid_distance_y)
|
for (float idy = source.grid_off_y; idy > source.YD0; idy -= source.grid_distance_y)
|
||||||
{
|
{
|
||||||
float y = (float)(Idx * source.CurGraphHeight) / source.DY + source.off_Y;
|
float y = (idy * source.CurGraphHeight) / source.DY + source.off_Y;
|
||||||
|
|
||||||
if (y >= 0 && y < source.CurGraphHeight)
|
if (y >= 0 && y < source.CurGraphHeight)
|
||||||
{
|
{
|
||||||
@ -792,9 +795,9 @@ namespace GraphLib
|
|||||||
}
|
}
|
||||||
|
|
||||||
// draw horizontal grid lines
|
// draw horizontal grid lines
|
||||||
for (Idx = (int)(source.grid_off_y); Idx < (int)(source.YD1 ); Idx += (int)source.grid_distance_y)
|
for (float idy = source.grid_off_y; idy < source.YD1; idy += source.grid_distance_y)
|
||||||
{
|
{
|
||||||
float y = (float)Idx * source.CurGraphHeight / source.DY + source.off_Y;
|
float y = (idy * source.CurGraphHeight) / source.DY + source.off_Y;
|
||||||
|
|
||||||
if (y >= 0 && y < source.CurGraphHeight)
|
if (y >= 0 && y < source.CurGraphHeight)
|
||||||
{
|
{
|
||||||
@ -969,70 +972,57 @@ namespace GraphLib
|
|||||||
{
|
{
|
||||||
pen.DashPattern = new float[] { 2, 2 };
|
pen.DashPattern = new float[] { 2, 2 };
|
||||||
|
|
||||||
|
float GridDistY = source.grid_distance_y;
|
||||||
|
///
|
||||||
|
if (source.AutoScaleY)
|
||||||
|
{
|
||||||
|
// calculate a matching grid distance
|
||||||
|
GridDistY = -Utilities.MostSignificantDigit(source.DY);
|
||||||
|
|
||||||
|
if (GridDistY == 0)
|
||||||
|
{
|
||||||
|
GridDistY = source.grid_distance_y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// draw labels for horizontal lines
|
// draw labels for horizontal lines
|
||||||
if (source.DY != 0)
|
if (source.DY != 0)
|
||||||
{
|
{
|
||||||
float Idx = 0;
|
float y0 = (float)(source.grid_off_y * source.CurGraphHeight / source.DY + source.off_Y);
|
||||||
|
if (y0 >= 0 && y0 < source.CurGraphHeight)
|
||||||
|
{
|
||||||
|
String value = (source.OnRenderYAxisLabel == null) ? "0" : source.OnRenderYAxisLabel(source, 0);
|
||||||
|
SizeF dim = g.MeasureString(value, legendFont);
|
||||||
|
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y0 + 0.5f + dim.Height / 2)));
|
||||||
|
}
|
||||||
|
|
||||||
float y0 = (float)(source.grid_off_y * source.CurGraphHeight / source.DY + source.off_Y);
|
for (float Idx = source.grid_off_y; Idx > source.YD0; Idx -= GridDistY)
|
||||||
|
|
||||||
String value = "" + Idx;
|
|
||||||
|
|
||||||
if (source.OnRenderYAxisLabel != null)
|
|
||||||
{
|
|
||||||
value = source.OnRenderYAxisLabel(source, Idx);
|
|
||||||
}
|
|
||||||
|
|
||||||
SizeF dim = g.MeasureString(value, legendFont);
|
|
||||||
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y0 + 0.5f + dim.Height / 2)));
|
|
||||||
|
|
||||||
float GridDistY = source.grid_distance_y;
|
|
||||||
|
|
||||||
if (source.AutoScaleY)
|
|
||||||
{
|
|
||||||
// calculate a matching grid distance
|
|
||||||
GridDistY = - Utilities.MostSignificantDigit(source.DY );
|
|
||||||
|
|
||||||
if (GridDistY == 0)
|
|
||||||
{
|
|
||||||
GridDistY = source.grid_distance_y;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Idx = (source.grid_off_y); Idx > (source.Cur_YD0); Idx -= GridDistY)
|
|
||||||
{
|
{
|
||||||
if (Idx != 0)
|
if (Idx != 0)
|
||||||
{
|
{
|
||||||
float y1 = (float)((Idx) * source.CurGraphHeight) / source.DY + source.off_Y;
|
float y1 = (float)(Idx * source.CurGraphHeight) / source.DY + source.off_Y;
|
||||||
|
|
||||||
value = "" + (Idx);
|
if (y1 >= 0 && y1 < source.CurGraphHeight)
|
||||||
|
{
|
||||||
if (source.OnRenderYAxisLabel != null)
|
string value = (source.OnRenderYAxisLabel == null) ? Idx.ToString() : source.OnRenderYAxisLabel(source, Idx);
|
||||||
{
|
SizeF dim = g.MeasureString(value, legendFont);
|
||||||
value = source.OnRenderYAxisLabel(source, Idx);
|
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y1 + 0.5f + dim.Height / 2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
dim = g.MeasureString(value, legendFont);
|
|
||||||
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y1 + 0.5f + dim.Height / 2)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Idx = (source.grid_off_y); Idx < (source.Cur_YD1); Idx += GridDistY)
|
for (float Idx = source.grid_off_y; Idx < source.YD1; Idx += GridDistY)
|
||||||
{
|
{
|
||||||
if (Idx != 0)
|
if (Idx != 0)
|
||||||
{
|
{
|
||||||
float y2 = (float)((Idx) * source.CurGraphHeight) / source.DY + source.off_Y;
|
float y2 = (float)(Idx * source.CurGraphHeight) / source.DY + source.off_Y;
|
||||||
|
|
||||||
value = "" + (Idx);
|
if (y2 >= 0 && y2 < source.CurGraphHeight)
|
||||||
|
{
|
||||||
if (source.OnRenderYAxisLabel != null)
|
string value = (source.OnRenderYAxisLabel == null) ? Idx.ToString() : source.OnRenderYAxisLabel(source, Idx);
|
||||||
{
|
SizeF dim = g.MeasureString(value, legendFont);
|
||||||
value = source.OnRenderYAxisLabel(source, Idx);
|
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y2 + 0.5f + dim.Height / 2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
dim = g.MeasureString(value, legendFont);
|
|
||||||
g.DrawString(value, legendFont, b, new PointF((int)offset_x - dim.Width, (int)(offset_y + y2 + 0.5f + dim.Height / 2)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,6 @@ namespace TBF.BenchControl.GenericDevices
|
|||||||
|
|
||||||
void UpdateGraph(int graphId, float x, float y);
|
void UpdateGraph(int graphId, float x, float y);
|
||||||
|
|
||||||
void StopGraph(int graphId);
|
void StopGraph(int graphId, float ymin, float ymax);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,8 @@ namespace TBF.BenchControl.Sequences
|
|||||||
int graphId = nextGraphId++;
|
int graphId = nextGraphId++;
|
||||||
string directory = Path.Combine(TBF.Program.GraphsDir, batchNr.ToString(), testName, repetition.ToString());
|
string directory = Path.Combine(TBF.Program.GraphsDir, batchNr.ToString(), testName, repetition.ToString());
|
||||||
Directory.CreateDirectory(directory);
|
Directory.CreateDirectory(directory);
|
||||||
writers.Add(graphId, new BinaryWriter(File.Open(Path.Combine(directory, caption), FileMode.Create)));
|
BinaryWriter writer = new BinaryWriter(File.Open(Path.Combine(directory, caption), FileMode.Create));
|
||||||
|
writers.Add(graphId, writer);
|
||||||
log.InfoFormat("Graph file #{0} successfully created (batch={1} test={2} repet={3} caption={4})",
|
log.InfoFormat("Graph file #{0} successfully created (batch={1} test={2} repet={3} caption={4})",
|
||||||
graphId, batchNr, testName, repetition, caption);
|
graphId, batchNr, testName, repetition, caption);
|
||||||
return graphId;
|
return graphId;
|
||||||
@ -60,12 +61,14 @@ namespace TBF.BenchControl.Sequences
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopGraph(int graphId)
|
public void StopGraph(int graphId, float ymin, float ymax)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BinaryWriter writer = writers[graphId];
|
BinaryWriter writer = writers[graphId];
|
||||||
writer.Close();
|
writer.Write(ymin);
|
||||||
|
writer.Write(ymax);
|
||||||
|
writer.Close();
|
||||||
writers.Remove(graphId);
|
writers.Remove(graphId);
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
|
|||||||
@ -81,14 +81,14 @@ namespace TBF.BenchControl.Sequences
|
|||||||
public static Statistics AmbPressStat = new Statistics(new Plotter("Ambient pressure"));
|
public static Statistics AmbPressStat = new Statistics(new Plotter("Ambient pressure"));
|
||||||
public static Statistics AmbHumiStat = new Statistics(new Plotter("Ambient humidity"));
|
public static Statistics AmbHumiStat = new Statistics(new Plotter("Ambient humidity"));
|
||||||
|
|
||||||
public static Statistics TempUpStat = new Statistics(0, 5, true, new Plotter("Temperature up"));
|
public static Statistics TempUpStat = new Statistics(0, 7, true, new Plotter("Temperature up"));
|
||||||
public static Statistics TempDownStat = new Statistics(0, 5, true, new Plotter("Temperature down"));
|
public static Statistics TempDownStat = new Statistics(0, 7, true, new Plotter("Temperature down"));
|
||||||
public static Statistics TempDiffStat = new Statistics(0, 5, true);
|
public static Statistics TempDiffStat = new Statistics(0, 7, true);
|
||||||
public static Statistics TempDivStat = new Statistics(0, 5, true, new Plotter("Temperature div"));
|
public static Statistics TempDivStat = new Statistics(0, 7, true, new Plotter("Temperature div"));
|
||||||
public static Statistics PressUpStat = new Statistics(5, 5, true, new Plotter("Pressure up"));
|
public static Statistics PressUpStat = new Statistics(5, 7, true, new Plotter("Pressure up"));
|
||||||
public static Statistics PressDownStat = new Statistics(5, 5, true, new Plotter("Pressure down"));
|
public static Statistics PressDownStat = new Statistics(5, 7, true, new Plotter("Pressure down"));
|
||||||
public static Statistics PressDeltaStat = new Statistics(5, 5, true);
|
public static Statistics PressDeltaStat = new Statistics(5, 7, true);
|
||||||
public static Statistics RefFlowStat = new Statistics(5, 5, true, new Plotter("Flow"));
|
public static Statistics RefFlowStat = new Statistics(5, 7, true, new Plotter("Flow"));
|
||||||
|
|
||||||
public static Statistics TempRefHiStat = new Statistics();
|
public static Statistics TempRefHiStat = new Statistics();
|
||||||
public static Statistics TempRefLoStat = new Statistics();
|
public static Statistics TempRefLoStat = new Statistics();
|
||||||
|
|||||||
@ -93,7 +93,7 @@ namespace TBF.BenchControl.Sequences
|
|||||||
if (recordingInProgress)
|
if (recordingInProgress)
|
||||||
{
|
{
|
||||||
recordingInProgress = false;
|
recordingInProgress = false;
|
||||||
plotter.StopGraph(graphId);
|
plotter.StopGraph(graphId, (float)min, (float)max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,7 +190,13 @@ namespace TBF.BenchControl.Sequences
|
|||||||
if (MedianFilter)
|
if (MedianFilter)
|
||||||
{
|
{
|
||||||
Array.Sort(sorted);
|
Array.Sort(sorted);
|
||||||
|
#if false
|
||||||
filteredValue = sorted[FilterSize / 2];
|
filteredValue = sorted[FilterSize / 2];
|
||||||
|
#else
|
||||||
|
double sum2 = 0;
|
||||||
|
for (int j = 1; j < FilterSize - 1; j++) sum2 += sorted[j];
|
||||||
|
filteredValue = sum2 / (FilterSize - 2);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -208,6 +214,6 @@ namespace TBF.BenchControl.Sequences
|
|||||||
|
|
||||||
public int StartGraph(int batchNr, string testName, int repetition) { return 1; }
|
public int StartGraph(int batchNr, string testName, int repetition) { return 1; }
|
||||||
public void UpdateGraph(int graphId, float x, float y) { }
|
public void UpdateGraph(int graphId, float x, float y) { }
|
||||||
public void StopGraph(int graphId) { }
|
public void StopGraph(int graphId, float ymin, float ymax) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -346,7 +346,11 @@ namespace TBF.BenchControl
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static void StopDevices()
|
public static void StopDevices()
|
||||||
{
|
{
|
||||||
foreach (var dev in devices) dev.StopDevice();
|
foreach (var dev in devices)
|
||||||
|
{
|
||||||
|
UiBridge.Bridge.OnActivity(null, string.Format("1. {0}", dev.Name)); /// Info
|
||||||
|
dev.StopDevice();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -356,7 +360,11 @@ namespace TBF.BenchControl
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static void StopDevices2()
|
public static void StopDevices2()
|
||||||
{
|
{
|
||||||
foreach (var dev in devices) dev.StopDevice2();
|
foreach (var dev in devices)
|
||||||
|
{
|
||||||
|
UiBridge.Bridge.OnActivity(null, string.Format("2. {0}", dev.Name)); /// Info
|
||||||
|
dev.StopDevice2();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -135,6 +135,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection
|
|||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
|
|
||||||
RefFlow.Val = (1.0 + 0.2 * Math.Sin(2 * Math.PI * (float)remainingTime.Val / test.TstTime)) * (test.Qfrom + test.Qto) / 2.0;
|
RefFlow.Val = (1.0 + 0.2 * Math.Sin(2 * Math.PI * (float)remainingTime.Val / test.TstTime)) * (test.Qfrom + test.Qto) / 2.0;
|
||||||
|
PressUp.Val = 2.7f;
|
||||||
|
PressDown.Val = 2.2f;
|
||||||
|
|
||||||
UpdateAllStatistics(StateMachine.Time);
|
UpdateAllStatistics(StateMachine.Time);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -218,6 +218,15 @@ namespace TBF
|
|||||||
public string[] RsltItems_Printer_CombinedWM; /// obsolete
|
public string[] RsltItems_Printer_CombinedWM; /// obsolete
|
||||||
public string[] RsltItems_Printer_HeatM; /// obsolete
|
public string[] RsltItems_Printer_HeatM; /// obsolete
|
||||||
|
|
||||||
|
/// Configuration of graphs
|
||||||
|
public bool Graph1_On;
|
||||||
|
public bool Graph2_On;
|
||||||
|
public bool Graph3_On;
|
||||||
|
public bool Graph4_On;
|
||||||
|
public bool Graph5_On;
|
||||||
|
public bool Graph6_On;
|
||||||
|
public GraphLib.PlotterGraphPaneEx.LayoutMode GraphsLayoutMode;
|
||||||
|
|
||||||
[XmlArrayAttribute("RsltsClmnWidths")]
|
[XmlArrayAttribute("RsltsClmnWidths")]
|
||||||
public int[] RsltsClmnWidths;
|
public int[] RsltsClmnWidths;
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
|
|||||||
@ -114,7 +114,7 @@ namespace TBF
|
|||||||
iPerlHeadsToolStripMenuItem.Visible = false;
|
iPerlHeadsToolStripMenuItem.Visible = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CycleRunning = false;
|
CycleRunning = true;
|
||||||
|
|
||||||
benchInitializationFailed = false;
|
benchInitializationFailed = false;
|
||||||
///
|
///
|
||||||
@ -547,8 +547,11 @@ namespace TBF
|
|||||||
|
|
||||||
if (BenchControl.StateMachine.Running && CycleRunning)
|
if (BenchControl.StateMachine.Running && CycleRunning)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Strings.Finish_the_session_please, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show(Strings.Finish_the_session_please, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||||
if (e is FormClosingEventArgs) (e as FormClosingEventArgs).Cancel = true;
|
if (e is FormClosingEventArgs)
|
||||||
|
{
|
||||||
|
(e as FormClosingEventArgs).Cancel = true;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -559,6 +562,13 @@ namespace TBF
|
|||||||
{
|
{
|
||||||
if (BenchControl.StateMachine.Running)
|
if (BenchControl.StateMachine.Running)
|
||||||
{
|
{
|
||||||
|
Bridge.Ui2Bench(UI2BenchCmd.Shutdown); /// Drain tanks and quit the main sequence
|
||||||
|
do
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
while (BenchControl.StateMachine.Running); /// Wait until StateMachine.Worker() completes
|
||||||
|
|
||||||
/// Show 'Closing_Test_Bench_Framework' modeless window in separate thread
|
/// Show 'Closing_Test_Bench_Framework' modeless window in separate thread
|
||||||
var form = new TBF.Forms.ModelessActivityForm()
|
var form = new TBF.Forms.ModelessActivityForm()
|
||||||
{
|
{
|
||||||
@ -567,14 +577,11 @@ namespace TBF
|
|||||||
FontSize = 24,
|
FontSize = 24,
|
||||||
FontStyle = FontStyle.Regular,
|
FontStyle = FontStyle.Regular,
|
||||||
BackgroundColor = Color.PeachPuff,
|
BackgroundColor = Color.PeachPuff,
|
||||||
StartActivityHandler = false,
|
StartActivityHandler = true,
|
||||||
};
|
};
|
||||||
Thread formThread = new Thread(() => form.ShowDialog());
|
Thread formThread = new Thread(() => form.ShowDialog());
|
||||||
formThread.Start();
|
formThread.Start();
|
||||||
|
|
||||||
Bridge.Ui2Bench(UI2BenchCmd.Shutdown); /// Drain tanks and quit the main sequence
|
|
||||||
|
|
||||||
while (BenchControl.StateMachine.Running) { } /// Wait until StateMachine.Worker() completes
|
|
||||||
BenchControl.StateMachine.StopDevices();
|
BenchControl.StateMachine.StopDevices();
|
||||||
BenchControl.StateMachine.StopDevices2();
|
BenchControl.StateMachine.StopDevices2();
|
||||||
|
|
||||||
|
|||||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("2.18.803.0")]
|
[assembly: AssemblyVersion("2.18.810.0")]
|
||||||
[assembly: AssemblyFileVersion("2.18.803.0")]
|
[assembly: AssemblyFileVersion("2.18.810.0")]
|
||||||
|
|||||||
36
TBF/Resources/Strings.Designer.cs
generated
36
TBF/Resources/Strings.Designer.cs
generated
@ -996,6 +996,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to current.
|
||||||
|
/// </summary>
|
||||||
|
internal static string current {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("current", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Data.
|
/// Looks up a localized string similar to Data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -1680,6 +1689,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Flow.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Flow {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Flow", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Flow [m3/h].
|
/// Looks up a localized string similar to Flow [m3/h].
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -2868,6 +2886,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Pressure.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Pressure {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Pressure", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Pressure [bar].
|
/// Looks up a localized string similar to Pressure [bar].
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -3462,6 +3489,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Refresh.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Refresh {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Refresh", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Reg. valve.
|
/// Looks up a localized string similar to Reg. valve.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1320,4 +1320,16 @@
|
|||||||
<data name="Finish_the_session_please" xml:space="preserve">
|
<data name="Finish_the_session_please" xml:space="preserve">
|
||||||
<value>Ukončete měření prosím</value>
|
<value>Ukončete měření prosím</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Refresh" xml:space="preserve">
|
||||||
|
<value>Obnovit</value>
|
||||||
|
</data>
|
||||||
|
<data name="current" xml:space="preserve">
|
||||||
|
<value>současný</value>
|
||||||
|
</data>
|
||||||
|
<data name="Flow" xml:space="preserve">
|
||||||
|
<value>Průtok</value>
|
||||||
|
</data>
|
||||||
|
<data name="Pressure" xml:space="preserve">
|
||||||
|
<value>Tlak</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -1461,4 +1461,16 @@
|
|||||||
<data name="Finish_the_session_please" xml:space="preserve">
|
<data name="Finish_the_session_please" xml:space="preserve">
|
||||||
<value>Beenden Sie die Messungen bitte</value>
|
<value>Beenden Sie die Messungen bitte</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Refresh" xml:space="preserve">
|
||||||
|
<value>Aktualisierung</value>
|
||||||
|
</data>
|
||||||
|
<data name="current" xml:space="preserve">
|
||||||
|
<value>aktuell</value>
|
||||||
|
</data>
|
||||||
|
<data name="Flow" xml:space="preserve">
|
||||||
|
<value>Durchfluss</value>
|
||||||
|
</data>
|
||||||
|
<data name="Pressure" xml:space="preserve">
|
||||||
|
<value>Druck</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -1852,4 +1852,16 @@
|
|||||||
<data name="Finish_the_session_please" xml:space="preserve">
|
<data name="Finish_the_session_please" xml:space="preserve">
|
||||||
<value>Finish measurements please</value>
|
<value>Finish measurements please</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Refresh" xml:space="preserve">
|
||||||
|
<value>Refresh</value>
|
||||||
|
</data>
|
||||||
|
<data name="current" xml:space="preserve">
|
||||||
|
<value>current</value>
|
||||||
|
</data>
|
||||||
|
<data name="Flow" xml:space="preserve">
|
||||||
|
<value>Flow</value>
|
||||||
|
</data>
|
||||||
|
<data name="Pressure" xml:space="preserve">
|
||||||
|
<value>Pressure</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace TBF.Screens
|
|
||||||
{
|
|
||||||
public class Graph
|
|
||||||
{
|
|
||||||
public Graph(string fileName)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,101 +1,291 @@
|
|||||||
///
|
///
|
||||||
/// Copyright (c) 2017 Sensus Metering Systems
|
/// Copyright (c) 2018 Sensus Slovensko a.s.
|
||||||
///
|
///
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using TBF.Resources;
|
using TBF.Resources;
|
||||||
using TBF.UiBridge;
|
using TBF.UiBridge;
|
||||||
using GraphLib;
|
using GraphLib;
|
||||||
|
using log4net;
|
||||||
|
|
||||||
namespace TBF.Screens
|
namespace TBF.Screens
|
||||||
{
|
{
|
||||||
public partial class GraphsTabPageCtrl : UserControl
|
public partial class GraphsTabPageCtrl : UserControl
|
||||||
{
|
{
|
||||||
readonly int numGraphs;
|
static readonly ILog log = LogManager.GetLogger(typeof(GraphsTabPageCtrl));
|
||||||
DataSource[] dataSources;
|
|
||||||
|
|
||||||
|
static readonly GraphInfo[] SupportedGraphs = new GraphInfo[] {
|
||||||
|
new GraphInfo { FileName = "Flow", Caption = string.Format("Q [m3/h]", Strings.Flow) },
|
||||||
|
new GraphInfo { FileName = "Pressure up", Caption = string.Format("Pr up [bar]", Strings.Pressure) },
|
||||||
|
new GraphInfo { FileName = "Pressure down", Caption = string.Format("Pr dw [bar]", Strings.Pressure) },
|
||||||
|
new GraphInfo { FileName = "Temperature up", Caption = string.Format("T up [°C]", Strings.Temperature) },
|
||||||
|
new GraphInfo { FileName = "Temperature down", Caption = string.Format("T dw [°C]", Strings.Temperature) },
|
||||||
|
new GraphInfo { FileName = "Temperature div", Caption = string.Format("T di [°C]", Strings.Temperature) },
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
PlotterGraphPaneEx.LayoutMode layoutMode;
|
||||||
|
CheckBox[] checkBoxes;
|
||||||
|
string selectedGraphsPath;
|
||||||
|
int selectedBatchNr;
|
||||||
|
string selectedTestName;
|
||||||
|
|
||||||
public GraphsTabPageCtrl()
|
public GraphsTabPageCtrl()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
button1.Text = Strings.ClearBtnText;
|
|
||||||
|
|
||||||
plotterDisplayEx.Smoothing = System.Drawing.Drawing2D.SmoothingMode.None;
|
/// checkBoxes array must be initialized before other actions
|
||||||
|
checkBoxes = new CheckBox[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6 };
|
||||||
|
|
||||||
dataSources = CreateDataSources(new string[] { "Flow", "Temperature", "Pressure", "Reg. valve position" });
|
Localize();
|
||||||
numGraphs = dataSources.Length;
|
|
||||||
CalcDataGraphs(plotterDisplayEx, dataSources);
|
|
||||||
|
|
||||||
plotterDisplayEx.Refresh();
|
UpdateCheckBoxesVisibility();
|
||||||
|
checkBox1.Checked = Program.LocalSettings.Graph1_On;
|
||||||
|
checkBox2.Checked = Program.LocalSettings.Graph2_On;
|
||||||
|
checkBox3.Checked = Program.LocalSettings.Graph3_On;
|
||||||
|
checkBox4.Checked = Program.LocalSettings.Graph4_On;
|
||||||
|
checkBox5.Checked = Program.LocalSettings.Graph5_On;
|
||||||
|
checkBox6.Checked = Program.LocalSettings.Graph6_On;
|
||||||
|
|
||||||
Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
layoutMode = Program.LocalSettings.GraphsLayoutMode;
|
||||||
|
layoutModeComboBox.Text = layoutMode.ToString();
|
||||||
|
for (PlotterGraphPaneEx.LayoutMode mode = 0; mode <= PlotterGraphPaneEx.LayoutMode.TILES_HOR; mode++)
|
||||||
{
|
{
|
||||||
if (InvokeRequired)
|
layoutModeComboBox.Items.Add(mode.ToString());
|
||||||
{
|
}
|
||||||
Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessData), sender, args);
|
|
||||||
}
|
|
||||||
else OnProcessData(sender, args);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
UpdateTestsHistory(testsHistoryTreeView);
|
||||||
{
|
|
||||||
/// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnProcessData(object sender, ProcessDataEventArgs args)
|
selectedGraphsPath = null;
|
||||||
{
|
|
||||||
|
|
||||||
//if (!paused && isRunning == true)
|
//Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
||||||
//{
|
//{
|
||||||
//try
|
// if (InvokeRequired)
|
||||||
//{
|
// {
|
||||||
// gPane.starting_idx += Math.Min(RichTextBoxFinds.BenchControl.StateMachine.;
|
// Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessData), sender, args);
|
||||||
// UpdateScrollBar();
|
// }
|
||||||
// gPane.Invalidate();
|
// else OnProcessData(sender, args);
|
||||||
//}
|
//};
|
||||||
//catch { }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DataSource[] CreateDataSources(string[] names)
|
//void OnProcessData(object sender, ProcessDataEventArgs args)
|
||||||
|
//{
|
||||||
|
|
||||||
|
// if (!paused && isRunning == true)
|
||||||
|
// {
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// gPane.starting_idx += Math.Min(RichTextBoxFinds.BenchControl.StateMachine.;
|
||||||
|
// UpdateScrollBar();
|
||||||
|
// gPane.Invalidate();
|
||||||
|
// }
|
||||||
|
// catch { }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
void Localize()
|
||||||
{
|
{
|
||||||
DataSource[] ds = new DataSource[names.Length];
|
refreshButton.Text = Strings.Refresh;
|
||||||
|
for (int i = 0; i < checkBoxes.Length; i++)
|
||||||
for (int i = 0; i < names.Length; i++)
|
|
||||||
{
|
{
|
||||||
ds[i] = new DataSource();
|
if (i < SupportedGraphs.Length)
|
||||||
ds[i].Name = names[i];
|
{
|
||||||
ds[i].OnRenderXAxisLabel += RenderXLabel;
|
checkBoxes[i].Text = SupportedGraphs[i].Caption;
|
||||||
ds[i].OnRenderYAxisLabel = RenderYLabel;
|
}
|
||||||
ds[i].Length = 5800;
|
|
||||||
ds[i].AutoScaleY = false;
|
|
||||||
ds[i].SetDisplayRangeY(-250, 250);
|
|
||||||
ds[i].SetGridDistanceY(100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ds;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void CalcDataGraphs(PlotterDisplayEx display, DataSource[] dataSources)
|
void UpdateCheckBoxesVisibility()
|
||||||
{
|
{
|
||||||
this.SuspendLayout();
|
for (int i = 0; i < checkBoxes.Length; i++)
|
||||||
|
{
|
||||||
display.SetDisplayRangeX(0, 400);
|
checkBoxes[i].Visible = (i < SupportedGraphs.Length);
|
||||||
display.PanelLayout = PlotterGraphPaneEx.LayoutMode.STACKED;
|
|
||||||
|
|
||||||
display.DataSources.Clear();
|
|
||||||
for (int j = 0; j < dataSources.Length; j++)
|
|
||||||
{
|
|
||||||
display.DataSources.Add(dataSources[j]);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ApplyColorSchema(display);
|
private void refreshButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
UpdateTestsHistory(testsHistoryTreeView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateTestsHistory(TreeView treeView)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string[] batches = Directory.GetDirectories(Program.GraphsDir);
|
||||||
|
treeView.Nodes.Clear();
|
||||||
|
for (int i = batches.Length - 1; i >= Math.Max(0, batches.Length - 20); i--)
|
||||||
|
{
|
||||||
|
string b = batches[i];
|
||||||
|
string bstr = Path.GetFileName(b);
|
||||||
|
if ((TBF.BenchControl.Sequences.ProcessData.BatchRslts != null) && bstr.Equals(TBF.BenchControl.Sequences.ProcessData.BatchRslts.Batch.BatchNr.ToString()))
|
||||||
|
{
|
||||||
|
bstr = Strings.current;
|
||||||
|
}
|
||||||
|
TreeNode node = new TreeNode(bstr);
|
||||||
|
node.Tag = null;
|
||||||
|
treeView.Nodes.Add(node);
|
||||||
|
string[] tests = Directory.GetDirectories(b);
|
||||||
|
foreach (var t in tests)
|
||||||
|
{
|
||||||
|
string testNameStr = Path.GetFileName(t);
|
||||||
|
TreeNode subnode = new TreeNode(testNameStr);
|
||||||
|
node.Nodes.Add(subnode);
|
||||||
|
string[] repetitions = Directory.GetDirectories(t);
|
||||||
|
if (repetitions.Length == 1)
|
||||||
|
{
|
||||||
|
subnode.Tag = string.Format("{0}~{1}~{2}", repetitions[0], bstr, testNameStr);
|
||||||
|
}
|
||||||
|
else if (repetitions.Length > 1)
|
||||||
|
{
|
||||||
|
subnode.Tag = null;
|
||||||
|
foreach (var r in repetitions)
|
||||||
|
{
|
||||||
|
string repetStr = Path.GetFileName(r);
|
||||||
|
TreeNode subsubnode = new TreeNode(repetStr);
|
||||||
|
subsubnode.Tag = string.Format("{0}~{1}~{2}/{3}", r, bstr, testNameStr, repetStr);
|
||||||
|
subnode.Nodes.Add(subsubnode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subnode.Tag = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception exc)
|
||||||
|
{
|
||||||
|
log.ErrorFormat("UpdateTestsHistory() failed: {0}", exc.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void testsHistoryTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Node.Tag is string)
|
||||||
|
{
|
||||||
|
string[] fields = (e.Node.Tag as string).Split(new char[]{'~'});
|
||||||
|
selectedGraphsPath = fields[0];
|
||||||
|
selectedBatchNr = int.Parse(fields[1]);
|
||||||
|
selectedTestName = fields[2];
|
||||||
|
ShowGraphs(plotterDisplayEx, selectedGraphsPath, selectedBatchNr, selectedTestName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ShowGraphs(PlotterDisplayEx display, string path, int batchNr, string testName)
|
||||||
|
{
|
||||||
|
Color[] colors = { Color.DarkRed,
|
||||||
|
Color.DarkSlateGray,
|
||||||
|
Color.DarkCyan,
|
||||||
|
Color.DarkGreen,
|
||||||
|
Color.DarkBlue ,
|
||||||
|
Color.DarkMagenta,
|
||||||
|
Color.DeepPink };
|
||||||
|
|
||||||
|
float[] gridY = { 0.0002f, 0.0005f, 0.001f, 0.002f, 0.005f, 0.01f, 0.02f, 0.05f, 0.1f, 0.2f, 0.5f, 1, 2, 5, 10, 20, 50, 100, 200, 500 };
|
||||||
|
|
||||||
|
this.SuspendLayout();
|
||||||
|
|
||||||
|
display.Smoothing = System.Drawing.Drawing2D.SmoothingMode.None;
|
||||||
|
display.SetDisplayRangeX(0, 300);
|
||||||
|
display.PanelLayout = layoutMode;
|
||||||
|
display.BackgroundColorTop = Color.White;
|
||||||
|
display.BackgroundColorBot = Color.White;
|
||||||
|
display.SolidGridColor = Color.LightGray;
|
||||||
|
display.DashedGridColor = Color.LightGray;
|
||||||
|
|
||||||
|
display.DataSources.Clear();
|
||||||
|
|
||||||
|
bool first = true;
|
||||||
|
for (int i = 0; i < checkBoxes.Length; i++)
|
||||||
|
{
|
||||||
|
if (checkBoxes[i].Checked && SupportedGraphs.Length > i)
|
||||||
|
{
|
||||||
|
DataSource dataSrc = new DataSource();
|
||||||
|
|
||||||
|
float ymin;
|
||||||
|
float ymax;
|
||||||
|
int samplesCount = dataSrc.LoadSamples(Path.Combine(path, SupportedGraphs[i].FileName), out ymin, out ymax);
|
||||||
|
|
||||||
|
/// Following section of code makes sure graps 1, 2 and graphs 3, 4, 5 use the same scale (Y-axis)
|
||||||
|
DataSource dummyDS = new DataSource();
|
||||||
|
float y1, y2, y3, y4;
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[2].FileName), out y1, out y2);
|
||||||
|
if (y1 < ymin) ymin = y1;
|
||||||
|
if (y2 > ymax) ymax = y2;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[1].FileName), out y1, out y2);
|
||||||
|
if (y1 < ymin) ymin = y1;
|
||||||
|
if (y2 > ymax) ymax = y2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[4].FileName), out y1, out y2);
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[5].FileName), out y3, out y4);
|
||||||
|
if (y1 < ymin) ymin = y1;
|
||||||
|
if (y2 > ymax) ymax = y2;
|
||||||
|
if (y3 < ymin) ymin = y3;
|
||||||
|
if (y4 > ymax) ymax = y4;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[3].FileName), out y1, out y2);
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[5].FileName), out y3, out y4);
|
||||||
|
if (y1 < ymin) ymin = y1;
|
||||||
|
if (y2 > ymax) ymax = y2;
|
||||||
|
if (y3 < ymin) ymin = y3;
|
||||||
|
if (y4 > ymax) ymax = y4;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[3].FileName), out y1, out y2);
|
||||||
|
dummyDS.LoadSamples(Path.Combine(path, SupportedGraphs[4].FileName), out y3, out y4);
|
||||||
|
if (y1 < ymin) ymin = y1;
|
||||||
|
if (y2 > ymax) ymax = y2;
|
||||||
|
if (y3 < ymin) ymin = y3;
|
||||||
|
if (y4 > ymax) ymax = y4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
{
|
||||||
|
first = false;
|
||||||
|
dataSrc.Name = string.Format("{0} {1} {2}", batchNr, testName, SupportedGraphs[i].Caption);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dataSrc.Name = SupportedGraphs[i].Caption;
|
||||||
|
}
|
||||||
|
dataSrc.OnRenderXAxisLabel += RenderXLabel;
|
||||||
|
dataSrc.OnRenderYAxisLabel = RenderYLabel;
|
||||||
|
dataSrc.AutoScaleY = false;
|
||||||
|
dataSrc.SetDisplayRangeY(ymin * 0.9f, ymax * 1.1f);
|
||||||
|
|
||||||
|
float d = ymax * 1.1f - ymin * 0.9f;
|
||||||
|
int j = gridY.Length - 1;
|
||||||
|
while ((2 * gridY[j] > d) && (j > 0)) j--;
|
||||||
|
dataSrc.SetGridDistanceY(gridY[j]);
|
||||||
|
|
||||||
|
dataSrc.GraphColor = colors[i % colors.Length];
|
||||||
|
|
||||||
|
display.DataSources.Add(dataSrc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.ResumeLayout();
|
this.ResumeLayout();
|
||||||
display.Refresh();
|
display.Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private string RenderXLabel(DataSource s, int idx)
|
private string RenderXLabel(DataSource s, int idx)
|
||||||
{
|
{
|
||||||
if (s.AutoScaleX)
|
if (s.AutoScaleX)
|
||||||
@ -107,7 +297,7 @@ namespace TBF.Screens
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return string.Format("{0}\"", (int)(s.Samples[idx].X / 200));
|
return ((int)(s.Samples[idx].X)).ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,76 +306,37 @@ namespace TBF.Screens
|
|||||||
return string.Format("{0:0.0}", value);
|
return string.Format("{0:0.0}", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApplyColorSchema(PlotterDisplayEx display)
|
private void checkBox1_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph1_On = checkBox1.Checked; AnyCBChanged(); }
|
||||||
|
private void checkBox2_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph2_On = checkBox2.Checked; AnyCBChanged(); }
|
||||||
|
private void checkBox3_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph3_On = checkBox3.Checked; AnyCBChanged(); }
|
||||||
|
private void checkBox4_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph4_On = checkBox4.Checked; AnyCBChanged(); }
|
||||||
|
private void checkBox5_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph5_On = checkBox5.Checked; AnyCBChanged(); }
|
||||||
|
private void checkBox6_CheckedChanged(object sender, EventArgs e) { Program.LocalSettings.Graph6_On = checkBox6.Checked; AnyCBChanged(); }
|
||||||
|
|
||||||
|
void AnyCBChanged()
|
||||||
{
|
{
|
||||||
Color[] colors = { Color.DarkRed,
|
if (selectedGraphsPath != null)
|
||||||
Color.DarkSlateGray,
|
|
||||||
Color.DarkCyan,
|
|
||||||
Color.DarkGreen,
|
|
||||||
Color.DarkBlue ,
|
|
||||||
Color.DarkMagenta,
|
|
||||||
Color.DeepPink };
|
|
||||||
|
|
||||||
for (int i = 0; i < numGraphs; i++)
|
|
||||||
{
|
{
|
||||||
display.DataSources[i].GraphColor = colors[i % 7];
|
ShowGraphs(plotterDisplayEx, selectedGraphsPath, selectedBatchNr, selectedTestName);
|
||||||
}
|
|
||||||
|
|
||||||
display.BackgroundColorTop = Color.White;
|
|
||||||
display.BackgroundColorBot = Color.White;
|
|
||||||
display.SolidGridColor = Color.LightGray;
|
|
||||||
display.DashedGridColor = Color.LightGray;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void CalcSinusFunction_0(DataSource dataSrc, int idx)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < dataSrc.Length; i++)
|
|
||||||
{
|
|
||||||
dataSrc.Samples[i].X = i;
|
|
||||||
dataSrc.Samples[i].Y = (float)(((float)200 * Math.Sin((idx + 1) * (i + 1.0) * 48 / dataSrc.Length)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void CalcSinusFunction_1(DataSource dataSrc, int idx)
|
private void layoutModeComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < dataSrc.Length; i++)
|
for (PlotterGraphPaneEx.LayoutMode mode = 0; mode <= PlotterGraphPaneEx.LayoutMode.TILES_HOR; mode++)
|
||||||
{
|
{
|
||||||
dataSrc.Samples[i].X = i;
|
if (layoutModeComboBox.Text.Equals(mode.ToString()) && layoutMode != mode)
|
||||||
|
{
|
||||||
dataSrc.Samples[i].Y = (float)(((float)20 *
|
Program.LocalSettings.GraphsLayoutMode = layoutMode = mode;
|
||||||
Math.Sin(20 * (idx + 1) * (i + 1) * Math.PI / dataSrc.Length)) *
|
ShowGraphs(plotterDisplayEx, selectedGraphsPath, selectedBatchNr, selectedTestName);
|
||||||
Math.Sin(40 * (idx + 1) * (i + 1) * Math.PI / dataSrc.Length)) +
|
}
|
||||||
(float)(((float)200 *
|
|
||||||
Math.Sin(200 * (idx + 1) * (i + 1) * Math.PI / dataSrc.Length)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void CalcSinusFunction_2(DataSource dataSrc, int idx)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < dataSrc.Length; i++)
|
|
||||||
{
|
|
||||||
dataSrc.Samples[i].X = i;
|
|
||||||
|
|
||||||
dataSrc.Samples[i].Y = (float)(((float)20 *
|
|
||||||
Math.Sin(40 * (idx + 1) * i * Math.PI / dataSrc.Length)) *
|
|
||||||
Math.Sin(160 * (idx + 1) * i * Math.PI / dataSrc.Length)) +
|
|
||||||
(float)(((float)200 *
|
|
||||||
Math.Sin(4 * (idx + 1) * i * Math.PI / dataSrc.Length)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void CalcSinusFunction_3(DataSource dataSrc, int idx, float time)
|
|
||||||
{
|
|
||||||
PointF[] samps = dataSrc.Samples;
|
|
||||||
for (int i = 0; i < samps.Length; i++)
|
|
||||||
{
|
|
||||||
samps[i].X = i;
|
|
||||||
samps[i].Y = 200 + (float)((200 * Math.Sin((idx + 1) * (time + i * 100) / 8000.0))) +
|
|
||||||
+(float)((40 * Math.Sin((idx + 1) * (time + i * 200) / 2000.0)));
|
|
||||||
/**
|
|
||||||
(float)( 4* Math.Sin( ((time + (i+8) * 100) / 900.0)))+
|
|
||||||
(float)(28 * Math.Sin(((time + (i + 8) * 100) / 290.0))); */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class GraphInfo
|
||||||
|
{
|
||||||
|
public string FileName; /// Name of a file written y the plotter
|
||||||
|
public string Caption; /// Displayed graph lable
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
125
TBF/Screens/GraphsTabPageCtrl.designer.cs
generated
125
TBF/Screens/GraphsTabPageCtrl.designer.cs
generated
@ -33,22 +33,28 @@ namespace TBF.Screens
|
|||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GraphsTabPageCtrl));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GraphsTabPageCtrl));
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
|
||||||
this.splitContainer = new System.Windows.Forms.SplitContainer();
|
this.splitContainer = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.testsHistoryTreeView = new System.Windows.Forms.TreeView();
|
||||||
this.plotterDisplayEx = new GraphLib.PlotterDisplayEx();
|
this.plotterDisplayEx = new GraphLib.PlotterDisplayEx();
|
||||||
|
this.refreshButton = new System.Windows.Forms.Button();
|
||||||
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.checkBox6 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBox5 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBox4 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBox3 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBox2 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBox1 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.layoutModeComboBox = new System.Windows.Forms.ComboBox();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
||||||
this.splitContainer.Panel1.SuspendLayout();
|
this.splitContainer.Panel1.SuspendLayout();
|
||||||
this.splitContainer.Panel2.SuspendLayout();
|
this.splitContainer.Panel2.SuspendLayout();
|
||||||
this.splitContainer.SuspendLayout();
|
this.splitContainer.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
|
this.splitContainer1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// button1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.button1, "button1");
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
|
||||||
//
|
|
||||||
// splitContainer
|
// splitContainer
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.splitContainer, "splitContainer");
|
resources.ApplyResources(this.splitContainer, "splitContainer");
|
||||||
@ -58,12 +64,18 @@ namespace TBF.Screens
|
|||||||
// splitContainer.Panel1
|
// splitContainer.Panel1
|
||||||
//
|
//
|
||||||
this.splitContainer.Panel1.BackColor = System.Drawing.SystemColors.Control;
|
this.splitContainer.Panel1.BackColor = System.Drawing.SystemColors.Control;
|
||||||
this.splitContainer.Panel1.Controls.Add(this.button1);
|
this.splitContainer.Panel1.Controls.Add(this.testsHistoryTreeView);
|
||||||
//
|
//
|
||||||
// splitContainer.Panel2
|
// splitContainer.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer.Panel2.Controls.Add(this.plotterDisplayEx);
|
this.splitContainer.Panel2.Controls.Add(this.plotterDisplayEx);
|
||||||
//
|
//
|
||||||
|
// testsHistoryTreeView
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.testsHistoryTreeView, "testsHistoryTreeView");
|
||||||
|
this.testsHistoryTreeView.Name = "testsHistoryTreeView";
|
||||||
|
this.testsHistoryTreeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.testsHistoryTreeView_NodeMouseClick);
|
||||||
|
//
|
||||||
// plotterDisplayEx
|
// plotterDisplayEx
|
||||||
//
|
//
|
||||||
this.plotterDisplayEx.BackColor = System.Drawing.Color.Transparent;
|
this.plotterDisplayEx.BackColor = System.Drawing.Color.Transparent;
|
||||||
@ -75,25 +87,116 @@ namespace TBF.Screens
|
|||||||
this.plotterDisplayEx.Name = "plotterDisplayEx";
|
this.plotterDisplayEx.Name = "plotterDisplayEx";
|
||||||
this.plotterDisplayEx.SolidGridColor = System.Drawing.Color.DarkGray;
|
this.plotterDisplayEx.SolidGridColor = System.Drawing.Color.DarkGray;
|
||||||
//
|
//
|
||||||
|
// refreshButton
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.refreshButton, "refreshButton");
|
||||||
|
this.refreshButton.Name = "refreshButton";
|
||||||
|
this.refreshButton.UseVisualStyleBackColor = true;
|
||||||
|
this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
|
||||||
|
//
|
||||||
|
// splitContainer1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
||||||
|
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||||
|
this.splitContainer1.Name = "splitContainer1";
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.layoutModeComboBox);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox6);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox5);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox4);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox3);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox2);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.checkBox1);
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.refreshButton);
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel2.Controls.Add(this.splitContainer);
|
||||||
|
//
|
||||||
|
// checkBox6
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox6, "checkBox6");
|
||||||
|
this.checkBox6.Name = "checkBox6";
|
||||||
|
this.checkBox6.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox6.CheckedChanged += new System.EventHandler(this.checkBox6_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBox5
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox5, "checkBox5");
|
||||||
|
this.checkBox5.Name = "checkBox5";
|
||||||
|
this.checkBox5.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBox4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox4, "checkBox4");
|
||||||
|
this.checkBox4.Name = "checkBox4";
|
||||||
|
this.checkBox4.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBox3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox3, "checkBox3");
|
||||||
|
this.checkBox3.Name = "checkBox3";
|
||||||
|
this.checkBox3.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBox2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox2, "checkBox2");
|
||||||
|
this.checkBox2.Name = "checkBox2";
|
||||||
|
this.checkBox2.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.checkBox1, "checkBox1");
|
||||||
|
this.checkBox1.Name = "checkBox1";
|
||||||
|
this.checkBox1.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
|
||||||
|
//
|
||||||
|
// layoutModeComboBox
|
||||||
|
//
|
||||||
|
this.layoutModeComboBox.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.layoutModeComboBox, "layoutModeComboBox");
|
||||||
|
this.layoutModeComboBox.Name = "layoutModeComboBox";
|
||||||
|
this.layoutModeComboBox.SelectedIndexChanged += new System.EventHandler(this.layoutModeComboBox_SelectedIndexChanged);
|
||||||
|
//
|
||||||
// GraphsTabPageCtrl
|
// GraphsTabPageCtrl
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.Silver;
|
this.BackColor = System.Drawing.Color.Silver;
|
||||||
this.Controls.Add(this.splitContainer);
|
this.Controls.Add(this.splitContainer1);
|
||||||
this.Name = "GraphsTabPageCtrl";
|
this.Name = "GraphsTabPageCtrl";
|
||||||
this.splitContainer.Panel1.ResumeLayout(false);
|
this.splitContainer.Panel1.ResumeLayout(false);
|
||||||
this.splitContainer.Panel2.ResumeLayout(false);
|
this.splitContainer.Panel2.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
|
||||||
this.splitContainer.ResumeLayout(false);
|
this.splitContainer.ResumeLayout(false);
|
||||||
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
|
this.splitContainer1.Panel1.PerformLayout();
|
||||||
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
|
this.splitContainer1.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.Button button1;
|
|
||||||
private System.Windows.Forms.SplitContainer splitContainer;
|
private System.Windows.Forms.SplitContainer splitContainer;
|
||||||
private GraphLib.PlotterDisplayEx plotterDisplayEx;
|
private GraphLib.PlotterDisplayEx plotterDisplayEx;
|
||||||
|
private System.Windows.Forms.TreeView testsHistoryTreeView;
|
||||||
|
private System.Windows.Forms.Button refreshButton;
|
||||||
|
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox6;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox5;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox4;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox3;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox2;
|
||||||
|
private System.Windows.Forms.CheckBox checkBox1;
|
||||||
|
private System.Windows.Forms.ComboBox layoutModeComboBox;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,51 +117,42 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="button1.Font" type="System.Drawing.Font, System.Drawing">
|
|
||||||
<value>Microsoft Sans Serif, 8.25pt</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="button1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 34</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 2, 2, 2</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>42, 30</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="button1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>&Btn1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
|
||||||
<value>button1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Parent" xml:space="preserve">
|
|
||||||
<value>splitContainer.Panel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="splitContainer.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="splitContainer.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="splitContainer.IsSplitterFixed" type="System.Boolean, mscorlib">
|
<data name="splitContainer.IsSplitterFixed" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="splitContainer.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="splitContainer.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="testsHistoryTreeView.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="testsHistoryTreeView.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="testsHistoryTreeView.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>125, 655</value>
|
||||||
|
</data>
|
||||||
|
<data name="testsHistoryTreeView.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>testsHistoryTreeView.Name" xml:space="preserve">
|
||||||
|
<value>testsHistoryTreeView</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>testsHistoryTreeView.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>testsHistoryTreeView.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>testsHistoryTreeView.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<data name=">>splitContainer.Panel1.Name" xml:space="preserve">
|
<data name=">>splitContainer.Panel1.Name" xml:space="preserve">
|
||||||
<value>splitContainer.Panel1</value>
|
<value>splitContainer.Panel1</value>
|
||||||
</data>
|
</data>
|
||||||
@ -181,7 +172,7 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="plotterDisplayEx.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="plotterDisplayEx.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>896, 689</value>
|
<value>836, 655</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="plotterDisplayEx.TabIndex" type="System.Int32, mscorlib">
|
<data name="plotterDisplayEx.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@ -211,10 +202,10 @@
|
|||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="splitContainer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="splitContainer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>965, 689</value>
|
<value>965, 655</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="splitContainer.SplitterDistance" type="System.Int32, mscorlib">
|
<data name="splitContainer.SplitterDistance" type="System.Int32, mscorlib">
|
||||||
<value>65</value>
|
<value>125</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="splitContainer.TabIndex" type="System.Int32, mscorlib">
|
<data name="splitContainer.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
@ -226,11 +217,275 @@
|
|||||||
<value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>splitContainer.Parent" xml:space="preserve">
|
<data name=">>splitContainer.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>splitContainer1.Panel2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>splitContainer.ZOrder" xml:space="preserve">
|
<data name=">>splitContainer.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="refreshButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 2</value>
|
||||||
|
</data>
|
||||||
|
<data name="refreshButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>125, 28</value>
|
||||||
|
</data>
|
||||||
|
<data name="refreshButton.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="refreshButton.Text" xml:space="preserve">
|
||||||
|
<value>Refresh</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>refreshButton.Name" xml:space="preserve">
|
||||||
|
<value>refreshButton</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>refreshButton.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>refreshButton.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>refreshButton.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.IsSplitterFixed" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.Orientation" type="System.Windows.Forms.Orientation, System.Windows.Forms">
|
||||||
|
<value>Horizontal</value>
|
||||||
|
</data>
|
||||||
|
<data name="layoutModeComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>129, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="layoutModeComboBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>137, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="layoutModeComboBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>layoutModeComboBox.Name" xml:space="preserve">
|
||||||
|
<value>layoutModeComboBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>layoutModeComboBox.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>layoutModeComboBox.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>layoutModeComboBox.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>880, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox6.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox6.Text" xml:space="preserve">
|
||||||
|
<value>checkBox6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox6.Name" xml:space="preserve">
|
||||||
|
<value>checkBox6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox6.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox6.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox6.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox5.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox5.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>760, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox5.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox5.Text" xml:space="preserve">
|
||||||
|
<value>checkBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox5.Name" xml:space="preserve">
|
||||||
|
<value>checkBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox5.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox5.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox5.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>640, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox4.Text" xml:space="preserve">
|
||||||
|
<value>checkBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox4.Name" xml:space="preserve">
|
||||||
|
<value>checkBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox4.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox4.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>520, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox3.Text" xml:space="preserve">
|
||||||
|
<value>checkBox3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox3.Name" xml:space="preserve">
|
||||||
|
<value>checkBox3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox3.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox3.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>400, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox2.Text" xml:space="preserve">
|
||||||
|
<value>checkBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox2.Name" xml:space="preserve">
|
||||||
|
<value>checkBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox2.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>280, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="checkBox1.Text" xml:space="preserve">
|
||||||
|
<value>checkBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox1.Name" xml:space="preserve">
|
||||||
|
<value>checkBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox1.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>checkBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel1.Name" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel1.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel2.Name" xml:space="preserve">
|
||||||
|
<value>splitContainer1.Panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel2.Parent" xml:space="preserve">
|
||||||
|
<value>splitContainer1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>965, 689</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.SplitterDistance" type="System.Int32, mscorlib">
|
||||||
|
<value>30</value>
|
||||||
|
</data>
|
||||||
|
<data name="splitContainer1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Name" xml:space="preserve">
|
||||||
|
<value>splitContainer1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>splitContainer1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
@ -1575,7 +1575,6 @@
|
|||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>Strings.zh-CN.resx</DependentUpon>
|
<DependentUpon>Strings.zh-CN.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Screens\Graph.cs" />
|
|
||||||
<Compile Include="Screens\GraphsTabPageCtrl.cs">
|
<Compile Include="Screens\GraphsTabPageCtrl.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user