Compare commits

..
Author SHA1 Message Date
Milan Hanajik 2958d83527 Reconfigured for Munich 2017-03-08 10:35:31 +01:00
Milan Hanajik 3c51b92e5e Serious bug in saving/printing results for compound meters fixed, ver. 2.12.486 2017-03-08 10:35:08 +01:00
Milan Hanajik 697b0b3538 Munich : ResultsBrowser prints the bench name, ver. 2.12.485 2017-03-08 07:26:03 +01:00
Milan Hanajik 08b47776ec German only text when a camera was not detected on startup. 2017-03-08 06:52:18 +01:00
Milan Hanajik 0370d1f582 TestStartEndForm (and IHasWMStatesForm interface) added to DataEntry.Munich3 2017-03-07 19:01:49 +01:00
Milan Hanajik fa5b427d4d Simulated mode for FixedStartMassCollection method, Bug fix in DataEntry.Standard6.TestStartEndForm, ver. 2.12.485 2017-03-07 19:00:36 +01:00
Milan Hanajik 21102bb991 Compound meter result items added, ver. 2.12.484 2017-03-07 11:53:29 +01:00
Milan Hanajik b00b6e8412 Munich : Printer clean-up and fixes, ver. 2.12.483 2017-03-07 09:45:00 +01:00
Milan Hanajik 5b4a9c0129 Network.Camera.CLP1611 : IP address can be specified. 2017-03-06 13:21:10 +01:00
Milan Hanajik dc2b945230 Some progress on Easytherm communication. 2017-03-06 00:33:44 +01:00
Milan Hanajik 9ff58c9e0b ver. 2.12.482 2017-03-02 14:12:14 +01:00
Milan Hanajik df0a38e3c6 MettlerToledo.TankDraining, ITankDrainingCfg, ITankDraining class/interfaces added, EmptyValve --> DrainValve 2017-03-02 09:17:22 +01:00
Milan Hanajik 33b349e333 ComponentsManagerDlg : Up and down button implemented. 2017-02-28 22:39:56 +01:00
Milan Hanajik ab14866575 'AskYesNoForm' and 'MessageBoxForm' widths are calculated from the text width. 2017-02-28 13:50:17 +01:00
Milan Hanajik 0f6a3ffa80 Width of the form with "Test bench framework program is closing" is calculated from the text width. 2017-02-28 13:49:18 +01:00
Milan Hanajik fde4b8b16f Resources cleanup 2017-02-28 12:35:41 +01:00
Milan Hanajik c450eaf339 Logging into TBF program in case central users server is not running (and login fails) is fixed, ver. 2.12.481 2017-02-28 11:09:09 +01:00
Milan Hanajik 30819bbacd Output.FileWriters.Enhanced : Bug fix for Badger Meter, ver. 2.12.479 2017-02-22 20:39:22 +01:00
85 changed files with 2129 additions and 3147 deletions
+2 -2
View File
@@ -18,7 +18,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;MUNICH</DefineConstants>
<DefineConstants>TRACE;DEBUG;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
@@ -28,7 +28,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;MUNICH</DefineConstants>
<DefineConstants>TRACE;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+11
View File
@@ -78,6 +78,7 @@ namespace Config.Entities
Compound,
HeatMeterVolume,
HeatMeterEnergy,
SingleOrCompound, /// Only used when querying results
}
public enum Medium
@@ -247,6 +248,15 @@ namespace Config.Entities
public enum ItemCategory
{
#if LANG_DE
[Description("Allgemein")] Other,
[Description("Prüfstanddaten")] BenchData,
[Description("Prüfstandergebnisse")] BenchResult,
[Description("Prüfpunktdaten")] TestData,
[Description("Prüfpunktergebnisse")] TestResult,
[Description("Wasserzelledaten")] MeterData,
[Description("Wasserzelleergebnisse")] MeterResult,
#else
[Description("Other")] Other,
[Description("Bench data")] BenchData,
[Description("Bench result")] BenchResult,
@@ -254,6 +264,7 @@ namespace Config.Entities
[Description("Test result")] TestResult,
[Description("Meter data")] MeterData,
[Description("Meter result")] MeterResult,
#endif
Count,
}
+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.12.475.0")]
[assembly: AssemblyFileVersion("2.12.475.0")]
[assembly: AssemblyVersion("2.12.486.0")]
[assembly: AssemblyFileVersion("2.12.486.0")]
+6 -6
View File
@@ -265,7 +265,7 @@ namespace DeviceTest
{
radioButton1.Text = "SetTemperature(10)";
radioButton2.Text = "SetTemperature(20)";
radioButton3.Text = "SetTemperature(30)";
radioButton3.Text = "GetSomethig(0,1)";
}
else if (className == "Modbus.TankSelector")
{
@@ -286,7 +286,7 @@ namespace DeviceTest
{
radioButton21.Text = "SetTemperature(10)";
radioButton22.Text = "SetTemperature(20)";
radioButton23.Text = "SetTemperature(30)";
radioButton23.Text = "GetSomethig(0,1)";
}
else if (className == "Modbus.TankSelector")
{
@@ -307,7 +307,7 @@ namespace DeviceTest
{
radioButton31.Text = "SetTemperature(10)";
radioButton32.Text = "SetTemperature(20)";
radioButton33.Text = "SetTemperature(30)";
radioButton33.Text = "GetSomethig(0,1)";
}
else if (className == "Modbus.TankSelector")
{
@@ -659,7 +659,7 @@ namespace DeviceTest
{
operation1 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
operation2 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
operation3 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(30);
operation3 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).ReadTemperatureOp();
}
else if (tbfComponent1forOp is TBF.BenchControl.Modbus.TankSelector.TankSelector)
{
@@ -687,7 +687,7 @@ namespace DeviceTest
{
operation21 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
operation22 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
operation23 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(30);
operation23 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).ReadTemperatureOp();
}
else if (tbfComponent2forOp is TBF.BenchControl.Modbus.TankSelector.TankSelector)
{
@@ -715,7 +715,7 @@ namespace DeviceTest
{
operation31 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
operation32 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
operation33 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).SetTemperatureOp(30);
operation33 = (tbfComponent1forOp as TBF.BenchControl.Modbus.Easytherm.Easytherm).ReadTemperatureOp();
}
else if (tbfComponent3forOp is TBF.BenchControl.Modbus.TankSelector.TankSelector)
{
+16 -3
View File
@@ -92,7 +92,7 @@ namespace Results.Entities
public virtual MeterTestRslt GetMeterTestRslt(string testName)
{
return GetMeterTestRslt(testName, CompoundMeterId.Single);
return GetMeterTestRslt(testName, CompoundMeterId.SingleOrCompound);
}
public virtual MeterTestRslt GetMeterTestRslt(string testName, Config.Entities.CompoundMeterId meterId)
@@ -101,9 +101,22 @@ namespace Results.Entities
string testNameL = testName.ToLower();
foreach (var mtr in MeterTestRslts)
{
if ((mtr.CompoundMeterId == (byte)meterId) && mtr.Name().ToLower().Equals(testNameL))
if (mtr.Name().ToLower().Equals(testNameL))
{
return mtr;
if (mtr.CompoundMeterId == (byte)meterId)
{
return mtr;
}
else if (meterId == Config.Entities.CompoundMeterId.SingleOrCompound &&
mtr.CompoundMeterId == (byte)Config.Entities.CompoundMeterId.Single)
{
return mtr;
}
else if (meterId == Config.Entities.CompoundMeterId.SingleOrCompound &&
mtr.CompoundMeterId == (byte)Config.Entities.CompoundMeterId.Compound)
{
return mtr;
}
}
}
return null;
+5
View File
@@ -59,7 +59,12 @@ namespace Results.Forms
{
Text = Strings.Configuration;
availableResultsLabel.Text = Strings.Available_results;
availableTabControl.TabPages[0].Text = "A...Z";
availableTabControl.TabPages[1].Text = Strings.Quantity;
availableTabControl.TabPages[2].Text = Strings.Category;
selectedResultsLabel.Text = Strings.Selected_results;
addButton.Text = Strings.Add;
removeButton.Text = Strings.Remove;
removeAllButton.Text = Strings.Remove_all;
+10 -1
View File
@@ -102,7 +102,16 @@ namespace Results
Start_volume_aux, /// 92
End_volume, /// 93
End_volume_main, /// 94
End_volume_aux, /// 95
End_volume_aux, /// 95
Error_main, /// 96
Error_aux, /// 97
Serial_Nr_main, /// 98
Serial_Nr_aux, /// 99
End_state_main, /// 100
End_state_aux, /// 101
Q_rise, /// 102
Q_fall, /// 103
Count,
}
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2016-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -111,10 +111,11 @@ namespace Results.Output.Printers.Munich
/// <remarks>This provides the print logic for our document</remarks>
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
{
// Run base code
/// Run base code
base.OnPrintPage(e);
e.Graphics.DrawImageUnscaled(Results.Properties.Resources.Headpic, 0, 0);
/// Draw 2550 x 3507 'headpic' scaled to A4 at 100 DPI
e.Graphics.DrawImage(Results.Properties.Resources.Headpic, new Rectangle(0, 0, 827, 1137));
/// Set print area size and margins (in dots using 80 dpi)
int printHeight = base.DefaultPageSettings.PaperSize.Height - base.DefaultPageSettings.Margins.Top - base.DefaultPageSettings.Margins.Bottom;
@@ -240,7 +241,7 @@ namespace Results.Output.Printers.Munich
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientHumiAve().ToString("F0") + " %");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Luftdruck");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientPressAve().ToString("F0") + " mbar");
PrintAt(e, Tab2, lineNr * SpacingOne, Config.Units.ConvertTo(Config.Unit.mbar, wm.Batch.AmbientPressAve()).ToString("F0") + " mbar");
lineNr++;
PrintAt(e, Tab3, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d"));
+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.12.475.0")]
[assembly: AssemblyFileVersion("2.12.475.0")]
[assembly: AssemblyVersion("2.12.486.0")]
[assembly: AssemblyFileVersion("2.12.486.0")]
+18
View File
@@ -132,6 +132,15 @@ namespace Results.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Category.
/// </summary>
internal static string Category {
get {
return ResourceManager.GetString("Category", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Compound.
/// </summary>
@@ -609,6 +618,15 @@ namespace Results.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Quantity.
/// </summary>
internal static string Quantity {
get {
return ResourceManager.GetString("Quantity", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Ref.pulses.
/// </summary>
+6
View File
@@ -189,4 +189,10 @@
<data name="Page" xml:space="preserve">
<value>str.</value>
</data>
<data name="Category" xml:space="preserve">
<value>Kategorie</value>
</data>
<data name="Quantity" xml:space="preserve">
<value>Veličina</value>
</data>
</root>
+6
View File
@@ -375,4 +375,10 @@
<data name="Single" xml:space="preserve">
<value>Einzel</value>
</data>
<data name="Category" xml:space="preserve">
<value>Kategorie</value>
</data>
<data name="Quantity" xml:space="preserve">
<value>Größe</value>
</data>
</root>
+6
View File
@@ -426,4 +426,10 @@
<data name="Start_mass" xml:space="preserve">
<value>Start mass</value>
</data>
<data name="Category" xml:space="preserve">
<value>Category</value>
</data>
<data name="Quantity" xml:space="preserve">
<value>Quantity</value>
</data>
</root>
+2 -2
View File
@@ -18,7 +18,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;MUNICH</DefineConstants>
<DefineConstants>TRACE;DEBUG;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
@@ -27,7 +27,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;MUNICH</DefineConstants>
<DefineConstants>TRACE;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+2 -2
View File
@@ -33,10 +33,10 @@ namespace Results
/// <summary>
/// Converts float number to a string with the specified number of valid digits
/// Converts float number to a string with the specified number of significant digits
/// </summary>
/// <param name="value">Float value to be converted to a string</param>
/// <param name="validDigits">Number of valid digits: 4, 3, or 2 (otherwise a full precision number is printed)</param>
/// <param name="validDigits">Number of significant digits: 4, 3, or 2 (otherwise a full precision number is printed)</param>
/// <returns>String representation of the float number</returns>
public static string DoubleToStr(double value, int validDigits)
{
+11 -9
View File
@@ -217,18 +217,20 @@ namespace Results
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state, Strings.End_state, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => w.EndState));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses, Strings.Pulses + "()", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : w.GetMeterTestRslt(t).PulsesMeter.ToString()));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses__liter, Strings.PulsesLiter + "()", Quantity.PulsePerLtr, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : (string.IsNullOrEmpty(p) ? w.GetMeterTestRslt(t).PulsesPerLiter.ToString()
: w.GetMeterTestRslt(t).PulsesPerLiter.ToString(p))));
: w.GetMeterTestRslt(t).PulsesPerLiter.ToString(p))));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_pulses, Strings.RefPulses + "()", Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : w.GetMeterTestRslt(t).PulsesMaster.ToString()));
/// Water meters results (combined)
//AllItems.Add(new ItemSpec("Q rise", "Q rise [m3/h]", null, (x, y, z) => (z.QRise() == 0) ? "-" : Utils.DoubleToStr(z.QRise(), 4)));
//AllItems.Add(new ItemSpec("Q fall", "Q fall [m3/h]", null, (x, y, z) => (z.QFall() == 0) ? "-" : Utils.DoubleToStr(z.QFall(), 4)));
//AllItems.Add(new ItemSpec("Error large WM", "Error-L [%]", null, (x, y, z) => x.Error.ToString("F2")));
//AllItems.Add(new ItemSpec("Error small WM", "Error-S [%]", null, (x, y, z) => y.Error.ToString("F2")));
//AllItems.Add(new ItemSpec("Serial Nr large WM", "s/n", null, (x, y, z) => x.SerialNr()));
//AllItems.Add(new ItemSpec("Serial Nr small WM", "s/n", null, (x, y, z) => y.SerialNr()));
//AllItems.Add(new ItemSpec("End state large WM", "End state", null, (x, y, z) => x.EndState()));
//AllItems.Add(new ItemSpec("End state small WM", "End state", null, (x, y, z) => y.EndState()));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_rise, Strings.Q_rise, Quantity.Flow, ItemCategory.MeterResult, (w, t, u, f, p) => (w.QRise == 0) ? "-" : Utils.DoubleToStr(w.QRise, 4)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_fall, Strings.Q_fall, Quantity.Flow, ItemCategory.MeterResult, (w, t, u, f, p) => (w.QFall == 0) ? "-" : Utils.DoubleToStr(w.QFall, 4)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_main, Strings.Err_main + "()", Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) == null) ? "" : (string.IsNullOrEmpty(p) ? w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).Error.ToString()
: w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).Error.ToString(p))));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_aux, Strings.Err_aux + "()", Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) == null) ? "" : (string.IsNullOrEmpty(p) ? w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).Error.ToString()
: w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).Error.ToString(p))));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_main, Strings.sn_main, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => w.SerialNr));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_aux, Strings.sn_aux, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => w.SerialNrAux));
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_main, Strings.EndState_main, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => w.EndState));
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_aux, Strings.EndState_aux, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => w.EndStateAux));
/// Batch info
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_bench_ID, Strings.Bench, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => w.Batch.TestBenchId.ToString()));
+3 -3
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Sensus")]
[assembly: AssemblyProduct("ResultsBrowser")]
[assembly: AssemblyCopyright("Copyright © 2015 - 2016 Sensus Slovensko a.s.")]
[assembly: AssemblyCopyright("Copyright © 2015 - 2017 Sensus Slovensko a.s.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.12.478.0")]
[assembly: AssemblyFileVersion("2.12.478.0")]
[assembly: AssemblyVersion("2.12.486.0")]
[assembly: AssemblyFileVersion("2.12.486.0")]
+2 -2
View File
@@ -21,7 +21,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;MUNICH</DefineConstants>
<DefineConstants>TRACE;DEBUG;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
@@ -31,7 +31,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;MUNICH</DefineConstants>
<DefineConstants>TRACE;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+8 -1
View File
@@ -75,6 +75,13 @@ namespace ResultsBrowser
checkBox3.Visible = !string.IsNullOrEmpty(checkBox3.Text);
}
string BenchName()
{
return checkBox1.Checked ? Program.LocalSettings.Bench1
: checkBox2.Checked ? Program.LocalSettings.Bench2
: Program.LocalSettings.Bench3;
}
void Localize()
{
filtersGroupBox.Text = Strings.Filters;
@@ -292,7 +299,7 @@ namespace ResultsBrowser
#if MUNICH
foreach (var wm in waterMeters)
{
new Results.Output.Printers.Munich.MunichPrintDocument("", wm, Config.Entities.PageOrientation.Portrait).Print();
new Results.Output.Printers.Munich.MunichPrintDocument(string.Format("4/13 - {0}", BenchName()), wm, Config.Entities.PageOrientation.Portrait).Print();
}
#elif CEVAK_PT40_272
IList<Results.Entities.Batch> batches = new List<Results.Entities.Batch>();
+4
View File
@@ -16,6 +16,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResultsBrowser", "ResultsBr
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceTest", "DeviceTest\DeviceTest.csproj", "{6D3384DC-4638-4A92-91A8-F39D900377C6}"
ProjectSection(ProjectDependencies) = postProject
{439D0878-C76E-452B-B17D-209A89E91D36} = {439D0878-C76E-452B-B17D-209A89E91D36}
{9D0DCC88-DC81-47EB-9FDD-4C3907871BFB} = {9D0DCC88-DC81-47EB-9FDD-4C3907871BFB}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dirichlet.Numerics", "Dirichlet.Numerics\Dirichlet.Numerics.csproj", "{439D0878-C76E-452B-B17D-209A89E91D36}"
EndProject
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -10,7 +10,7 @@ using TBF.BenchControl.GenericDevices;
namespace TBF.BenchControl.DataEntry.Munich3
{
public class EntryForm : ComponentBase, IOperation, IDataEntry, IHasCycleBeginForm, IHasCycleEndForm
public class EntryForm : ComponentBase, IOperation, IDataEntry, IHasCycleBeginForm, IHasCycleEndForm, IHasWMStatesForm
{
private static readonly ILog log = LogManager.GetLogger(typeof(EntryForm));
public override string ToString() { return string.Format("DataEntry.Munich3({0})", Cfg.ToString(1)); }
@@ -28,19 +28,24 @@ namespace TBF.BenchControl.DataEntry.Munich3
bool[] disabled;
public bool Disabled(int wmNr) { return (wmNr >= 0 && wmNr < disabled.Length) ? disabled[wmNr] : false; }
string[] wmEndState;
public string WMCycleEndState(int wmNr) { return (wmNr >= 0 && wmNr < wmEndState.Length) ? wmEndState[wmNr] : string.Empty; }
string[] wmCycleEndState;
public string WMCycleEndState(int wmNr) { return (wmNr >= 0 && wmNr < wmCycleEndState.Length) ? wmCycleEndState[wmNr] : string.Empty; }
public float WMState(int wmNr)
{
float retVal;
if (wmNr >= 0 && wmNr < wmEndState.Length && Utils.TryParseUFloat(wmEndState[wmNr], out retVal)) return retVal;
return 0;
}
float[] wmStartState;
public float WMStartState(int wmNr) { return (wmNr >= 0 && wmNr < wmStartState.Length) ? wmStartState[wmNr] : 0; }
float[] wmEndState;
public float WMEndState(int wmNr) { return (wmNr >= 0 && wmNr < wmEndState.Length) ? wmEndState[wmNr] : 0; }
string[] wmStartStateStr;
System.Windows.Forms.Form modelessDlg;
double refVolume;
double errLimLo;
double errLimHi;
bool resultSaved;
Results.Entities.WaterMeter[] waterMeters; /// Reference to ...ProcessData.BatchRslts.WaterMeters[]
@@ -50,6 +55,8 @@ namespace TBF.BenchControl.DataEntry.Munich3
None,
ShowFormAtCycleBeginning,
ShowFormAtCycleEnd,
EnterTestStartStates,
EnterTestEndStates,
}
CurrentOp currentOp;
@@ -66,7 +73,10 @@ namespace TBF.BenchControl.DataEntry.Munich3
serialNr = new string[Config.Data.WMsCount];
disabled = new bool[Config.Data.WMsCount];
wmEndState = new string[Config.Data.WMsCount];
wmStartState = new float[Config.Data.WMsCount];
wmStartStateStr = new string[Config.Data.WMsCount];
wmEndState = new float[Config.Data.WMsCount];
wmCycleEndState = new string[Config.Data.WMsCount];
currentOp = CurrentOp.None;
log.Debug(this.ToString());
@@ -90,11 +100,24 @@ namespace TBF.BenchControl.DataEntry.Munich3
return this;
}
/// <returns>Reference to the operation</returns>
public IOperation ShowWMSNsAndStatesFormOp()
{
return null;
}
/// <returns>Reference to the operation</returns>
public IOperation ShowTestStartFormOp()
{
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
currentOp = CurrentOp.EnterTestStartStates;
return this;
}
/// <returns>Reference to the operation</returns>
public IOperation ShowTestEndFormOp(double refVolume, double errLimLo, double errLimHi)
{
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
currentOp = CurrentOp.EnterTestEndStates;
this.refVolume = refVolume;
this.errLimLo = errLimLo;
this.errLimHi = errLimHi;
return this;
}
delegate void EntryFormDlgt(EntryForm myRef);
///
@@ -114,6 +137,18 @@ namespace TBF.BenchControl.DataEntry.Munich3
myRef.modelessDlg = endForm;
modelessDlg.Show();
}
///
void OpenTestStartStatesDlg(EntryForm myRef)
{
myRef.modelessDlg = new TestStartEndForm(Config.Data.WMsCount, disabled);
modelessDlg.Show();
}
///
void OpenTestEndStatesDlg(EntryForm myRef)
{
myRef.modelessDlg = new TestStartEndForm(Config.Data.WMsCount, wmStartStateStr, disabled, refVolume, errLimLo, errLimHi);
modelessDlg.Show();
}
/// <summary>Start this operation</summary>
public void Start()
@@ -127,7 +162,13 @@ namespace TBF.BenchControl.DataEntry.Munich3
case CurrentOp.ShowFormAtCycleEnd:
Program.MainWnd.Invoke(new EntryFormDlgt(OpenEndDlg), this);
break;
}
case CurrentOp.EnterTestStartStates:
Program.MainWnd.Invoke(new EntryFormDlgt(OpenTestStartStatesDlg), this);
break;
case CurrentOp.EnterTestEndStates:
Program.MainWnd.Invoke(new EntryFormDlgt(OpenTestEndStatesDlg), this);
break;
}
}
/// <summary>Run this operation</summary>
@@ -164,11 +205,36 @@ namespace TBF.BenchControl.DataEntry.Munich3
{
if (waterMeters[i] != null)
{
wmEndState[i] = waterMeters[i].EndState = dlg.EndStateText[i];
wmCycleEndState[i] = waterMeters[i].EndState = dlg.EndStateText[i];
waterMeters[i].YearOfProduction = dlg.YearOfProduction[i];
}
}
}
else if (modelessDlg is TestStartEndForm && currentOp == CurrentOp.EnterTestStartStates)
{
/// Fixed start test - start
TestStartEndForm dlg = (modelessDlg as TestStartEndForm);
if (dlg != null)
{
for (int i = 0; i < dlg.WaterMetersCount; i++)
{
wmStartState[i] = dlg.WMStartState[i];
wmStartStateStr[i] = dlg.WMStartStateStr[i];
}
}
}
else if (modelessDlg is TestStartEndForm && currentOp == CurrentOp.EnterTestEndStates)
{
/// Fixed start test - end
TestStartEndForm dlg = (modelessDlg as TestStartEndForm);
if (dlg != null)
{
for (int i = 0; i < dlg.WaterMetersCount; i++)
{
wmEndState[i] = dlg.WMEndState[i];
}
}
}
resultSaved = true;
modelessDlg = null;
}
@@ -0,0 +1,464 @@
///
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Windows.Forms;
using log4net;
using TBF.Resources;
namespace TBF.BenchControl.DataEntry.Munich3
{
public partial class TestStartEndForm : Form, GenericDevices.IHasCompleted
{
private static readonly ILog log = LogManager.GetLogger(typeof(TestStartEndForm));
// Set to 'true' when the form closes
public bool Completed { get { return completed; } }
bool completed;
/// <summary> Number of water meters </summary>
public readonly int WaterMetersCount;
readonly bool[] disabled;
// To be retrieved after the form closes
public float[] WMStartState;
// To be retrieved after the form closes
public readonly string[] WMStartStateStr;
// To be retrieved after the form closes
public float[] WMEndState;
bool endStates; /// false=start states, true=end states
double refVolume;
double warningLimLo; /// limit to display exclamation mark, typically 2x errLimLo
double warningLimHi; /// limit to display exclamation mark, typically 2x errLimHi
/// <summary>
/// Constructor to fill in start states
/// </summary>
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
public TestStartEndForm(int waterMetersCount, bool[] disabled)
{
endStates = false;
this.WaterMetersCount = waterMetersCount;
this.disabled = disabled;
InitializeComponent();
WMStartState = new float[waterMetersCount];
WMStartStateStr = new string[waterMetersCount];
completed = false;
StartForceCloseHandler();
}
/// <summary>
/// Constructor to fill in end states
/// </summary>
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
public TestStartEndForm(int waterMetersCount, string[] wmStartStateStr, bool[] disabled,
double refVolume, double errLimLo, double errLimHi)
{
endStates = true;
this.WaterMetersCount = waterMetersCount;
this.WMStartStateStr = wmStartStateStr;
if (wmStartStateStr == null || wmStartStateStr.Length != waterMetersCount)
throw (new Exception("Invalid 'wmStartStateStr' argument"));
this.disabled = disabled;
this.refVolume = refVolume;
this.warningLimLo = 2 * errLimLo;
this.warningLimHi = 2 * errLimHi;
InitializeComponent();
WMEndState = new float[waterMetersCount];
completed = false;
StartForceCloseHandler();
}
/// <summary> Parameterless constructor for all watermeters </summary>
public TestStartEndForm()
: this(Config.Data.WMsCount, null)
{
}
private void CycleEndForm_Load(object sender, EventArgs e)
{
Localize();
Height = 70 + 90 * WaterMetersCount;
if (WaterMetersCount < 1) groupBox1.Visible = false;
if (WaterMetersCount < 2) groupBox2.Visible = false;
if (WaterMetersCount < 3) groupBox3.Visible = false;
if (WaterMetersCount < 4) groupBox4.Visible = false;
if (WaterMetersCount < 5) groupBox5.Visible = false;
if (WaterMetersCount < 6) groupBox6.Visible = false;
if (endStates)
{
if (WaterMetersCount >= 1) wmStartStateTextBox1.Text = WMStartStateStr[0];
if (WaterMetersCount >= 2) wmStartStateTextBox2.Text = WMStartStateStr[1];
if (WaterMetersCount >= 3) wmStartStateTextBox3.Text = WMStartStateStr[2];
if (WaterMetersCount >= 4) wmStartStateTextBox4.Text = WMStartStateStr[3];
if (WaterMetersCount >= 5) wmStartStateTextBox5.Text = WMStartStateStr[4];
if (WaterMetersCount >= 6) wmStartStateTextBox6.Text = WMStartStateStr[5];
wmEndStateTextBox1.Enabled = (disabled.Length >= 1 && !disabled[0]);
wmEndStateTextBox2.Enabled = (disabled.Length >= 2 && !disabled[1]);
wmEndStateTextBox3.Enabled = (disabled.Length >= 3 && !disabled[2]);
wmEndStateTextBox4.Enabled = (disabled.Length >= 4 && !disabled[3]);
wmEndStateTextBox5.Enabled = (disabled.Length >= 5 && !disabled[4]);
wmEndStateTextBox6.Enabled = (disabled.Length >= 6 && !disabled[5]);
}
else
{
wmStartStateTextBox1.Enabled = (disabled.Length >= 1 && !disabled[0]);
wmStartStateTextBox2.Enabled = (disabled.Length >= 2 && !disabled[1]);
wmStartStateTextBox3.Enabled = (disabled.Length >= 3 && !disabled[2]);
wmStartStateTextBox4.Enabled = (disabled.Length >= 4 && !disabled[3]);
wmStartStateTextBox5.Enabled = (disabled.Length >= 5 && !disabled[4]);
wmStartStateTextBox6.Enabled = (disabled.Length >= 6 && !disabled[5]);
}
}
void Localize()
{
Text = Strings.Water_Meter_States;
groupBox1.Text = Strings.Water_Meter + " 1";
groupBox2.Text = Strings.Water_Meter + " 2";
groupBox3.Text = Strings.Water_Meter + " 3";
groupBox4.Text = Strings.Water_Meter + " 4";
groupBox5.Text = Strings.Water_Meter + " 5";
groupBox6.Text = Strings.Water_Meter + " 6";
wmStateLabel1.Text = Strings.WMState;
wmStateLabel2.Text = Strings.WMState;
wmStateLabel3.Text = Strings.WMState;
wmStateLabel4.Text = Strings.WMState;
wmStateLabel5.Text = Strings.WMState;
wmStateLabel6.Text = Strings.WMState;
startLabel.Text = Strings.Start;
endLabel.Text = Strings.End;
okButton.Text = Strings.OkBtnText;
}
private void okButton_Click(object sender, EventArgs e)
{
try
{
if (endStates)
{
if (wmEndStateTextBox1.Enabled) WMEndState[0] = Utils.ParseUFloat(wmEndStateTextBox1.Text);
if (wmEndStateTextBox2.Enabled) WMEndState[1] = Utils.ParseUFloat(wmEndStateTextBox2.Text);
if (wmEndStateTextBox3.Enabled) WMEndState[2] = Utils.ParseUFloat(wmEndStateTextBox3.Text);
if (wmEndStateTextBox4.Enabled) WMEndState[3] = Utils.ParseUFloat(wmEndStateTextBox4.Text);
if (wmEndStateTextBox5.Enabled) WMEndState[4] = Utils.ParseUFloat(wmEndStateTextBox5.Text);
if (wmEndStateTextBox6.Enabled) WMEndState[5] = Utils.ParseUFloat(wmEndStateTextBox6.Text);
}
else
{
if (wmStartStateTextBox1.Enabled)
{
WMStartStateStr[0] = wmStartStateTextBox1.Text;
WMStartState[0] = Utils.ParseUFloat(wmStartStateTextBox1.Text);
}
if (wmStartStateTextBox2.Enabled)
{
WMStartStateStr[1] = wmStartStateTextBox2.Text;
WMStartState[1] = Utils.ParseUFloat(wmStartStateTextBox2.Text);
}
if (wmStartStateTextBox3.Enabled)
{
WMStartStateStr[2] = wmStartStateTextBox3.Text;
WMStartState[2] = Utils.ParseUFloat(wmStartStateTextBox3.Text);
}
if (wmStartStateTextBox4.Enabled)
{
WMStartStateStr[3] = wmStartStateTextBox4.Text;
WMStartState[3] = Utils.ParseUFloat(wmStartStateTextBox4.Text);
}
if (wmStartStateTextBox5.Enabled)
{
WMStartStateStr[4] = wmStartStateTextBox5.Text;
WMStartState[4] = Utils.ParseUFloat(wmStartStateTextBox5.Text);
}
if (wmStartStateTextBox6.Enabled)
{
WMStartStateStr[5] = wmStartStateTextBox6.Text;
WMStartState[5] = Utils.ParseUFloat(wmStartStateTextBox6.Text);
}
}
}
catch
{
return;
}
completed = true;
Close();
}
#region Forced close handling
public void StartForceCloseHandler()
{
UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
{
if (InvokeRequired) { Invoke(new EventHandler<EventArgs>(OnForceClose), sender, args); }
else OnForceClose(sender, args);
};
}
void OnForceClose(object sender, EventArgs args)
{
DialogResult = DialogResult.Cancel;
Close();
}
#endregion
private void wmEndStateTextBox1_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox1.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox1.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { };
exclamation1.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmEndStateTextBox2_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox2.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox2.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { err = 1000.0f; };
exclamation2.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmEndStateTextBox3_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox3.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox3.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { err = 1000.0f; };
exclamation3.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmEndStateTextBox4_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox4.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox4.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { err = 1000.0f; };
exclamation4.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmEndStateTextBox5_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox5.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox5.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { err = 1000.0f; };
exclamation5.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmEndStateTextBox6_TextChanged(object sender, EventArgs e)
{
double err = 0;
try
{
float endState = Utils.ParseUFloat(wmEndStateTextBox6.Text);
float startState = Utils.ParseUFloat(wmStartStateTextBox6.Text);
err = 100.0 * (endState - startState - refVolume) / refVolume;
}
catch { err = 1000.0f; };
exclamation6.Visible = (err < warningLimLo) || (warningLimHi < err);
}
private void wmStartStateTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox2.Enabled) wmStartStateTextBox2.Focus();
else if (wmStartStateTextBox3.Enabled) wmStartStateTextBox3.Focus();
else if (wmStartStateTextBox4.Enabled) wmStartStateTextBox4.Focus();
else if (wmStartStateTextBox5.Enabled) wmStartStateTextBox5.Focus();
else if (wmStartStateTextBox6.Enabled) wmStartStateTextBox6.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmStartStateTextBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox3.Enabled) wmStartStateTextBox3.Focus();
else if (wmStartStateTextBox4.Enabled) wmStartStateTextBox4.Focus();
else if (wmStartStateTextBox5.Enabled) wmStartStateTextBox5.Focus();
else if (wmStartStateTextBox6.Enabled) wmStartStateTextBox6.Focus();
else if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmStartStateTextBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox4.Enabled) wmStartStateTextBox4.Focus();
else if (wmStartStateTextBox5.Enabled) wmStartStateTextBox5.Focus();
else if (wmStartStateTextBox6.Enabled) wmStartStateTextBox6.Focus();
else if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
else if (wmStartStateTextBox2.Enabled) wmStartStateTextBox2.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmStartStateTextBox4_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox5.Enabled) wmStartStateTextBox5.Focus();
else if (wmStartStateTextBox6.Enabled) wmStartStateTextBox6.Focus();
else if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
else if (wmStartStateTextBox2.Enabled) wmStartStateTextBox2.Focus();
else if (wmStartStateTextBox3.Enabled) wmStartStateTextBox3.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmStartStateTextBox5_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox6.Enabled) wmStartStateTextBox6.Focus();
else if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
else if (wmStartStateTextBox2.Enabled) wmStartStateTextBox2.Focus();
else if (wmStartStateTextBox3.Enabled) wmStartStateTextBox3.Focus();
else if (wmStartStateTextBox4.Enabled) wmStartStateTextBox4.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmStartStateTextBox6_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
else if (wmStartStateTextBox1.Enabled) wmStartStateTextBox1.Focus();
else if (wmStartStateTextBox3.Enabled) wmStartStateTextBox3.Focus();
else if (wmStartStateTextBox4.Enabled) wmStartStateTextBox4.Focus();
else if (wmStartStateTextBox5.Enabled) wmStartStateTextBox5.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox2.Enabled) wmEndStateTextBox2.Focus();
else if (wmEndStateTextBox3.Enabled) wmEndStateTextBox3.Focus();
else if (wmEndStateTextBox4.Enabled) wmEndStateTextBox4.Focus();
else if (wmEndStateTextBox5.Enabled) wmEndStateTextBox5.Focus();
else if (wmEndStateTextBox6.Enabled) wmEndStateTextBox6.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox3.Enabled) wmEndStateTextBox3.Focus();
else if (wmEndStateTextBox4.Enabled) wmEndStateTextBox4.Focus();
else if (wmEndStateTextBox5.Enabled) wmEndStateTextBox5.Focus();
else if (wmEndStateTextBox6.Enabled) wmEndStateTextBox6.Focus();
else if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox4.Enabled) wmEndStateTextBox4.Focus();
else if (wmEndStateTextBox5.Enabled) wmEndStateTextBox5.Focus();
else if (wmEndStateTextBox6.Enabled) wmEndStateTextBox6.Focus();
else if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
else if (wmEndStateTextBox2.Enabled) wmEndStateTextBox2.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox4_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox5.Enabled) wmEndStateTextBox5.Focus();
else if (wmEndStateTextBox6.Enabled) wmEndStateTextBox6.Focus();
else if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
else if (wmEndStateTextBox2.Enabled) wmEndStateTextBox2.Focus();
else if (wmEndStateTextBox3.Enabled) wmEndStateTextBox3.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox5_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox6.Enabled) wmEndStateTextBox6.Focus();
else if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
else if (wmEndStateTextBox2.Enabled) wmEndStateTextBox2.Focus();
else if (wmEndStateTextBox3.Enabled) wmEndStateTextBox3.Focus();
else if (wmEndStateTextBox4.Enabled) wmEndStateTextBox4.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
private void wmEndStateTextBox6_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
else if (wmEndStateTextBox1.Enabled) wmEndStateTextBox1.Focus();
else if (wmEndStateTextBox3.Enabled) wmEndStateTextBox3.Focus();
else if (wmEndStateTextBox4.Enabled) wmEndStateTextBox4.Focus();
else if (wmEndStateTextBox5.Enabled) wmEndStateTextBox5.Focus();
}
else if (e.KeyChar == '+') okButton_Click(sender, e);
}
}
}
@@ -0,0 +1,512 @@
///
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
namespace TBF.BenchControl.DataEntry.Munich3
{
partial class TestStartEndForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.exclamation2 = new System.Windows.Forms.Label();
this.wmStartStateTextBox2 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox2 = new System.Windows.Forms.TextBox();
this.wmStateLabel2 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.exclamation1 = new System.Windows.Forms.Label();
this.wmStartStateTextBox1 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox1 = new System.Windows.Forms.TextBox();
this.wmStateLabel1 = new System.Windows.Forms.Label();
this.okButton = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.exclamation3 = new System.Windows.Forms.Label();
this.wmStartStateTextBox3 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox3 = new System.Windows.Forms.TextBox();
this.wmStateLabel3 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.exclamation4 = new System.Windows.Forms.Label();
this.wmStartStateTextBox4 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox4 = new System.Windows.Forms.TextBox();
this.wmStateLabel4 = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.exclamation5 = new System.Windows.Forms.Label();
this.wmStartStateTextBox5 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox5 = new System.Windows.Forms.TextBox();
this.wmStateLabel5 = new System.Windows.Forms.Label();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.exclamation6 = new System.Windows.Forms.Label();
this.wmStartStateTextBox6 = new System.Windows.Forms.TextBox();
this.wmEndStateTextBox6 = new System.Windows.Forms.TextBox();
this.wmStateLabel6 = new System.Windows.Forms.Label();
this.startLabel = new System.Windows.Forms.Label();
this.endLabel = new System.Windows.Forms.Label();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox6.SuspendLayout();
this.SuspendLayout();
//
// groupBox2
//
this.groupBox2.Controls.Add(this.exclamation2);
this.groupBox2.Controls.Add(this.wmStartStateTextBox2);
this.groupBox2.Controls.Add(this.wmEndStateTextBox2);
this.groupBox2.Controls.Add(this.wmStateLabel2);
this.groupBox2.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox2.ForeColor = System.Drawing.Color.Black;
this.groupBox2.Location = new System.Drawing.Point(25, 122);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(547, 81);
this.groupBox2.TabIndex = 2;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Water Meter 2";
//
// exclamation2
//
this.exclamation2.AutoSize = true;
this.exclamation2.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation2.ForeColor = System.Drawing.Color.Red;
this.exclamation2.Location = new System.Drawing.Point(515, 27);
this.exclamation2.Name = "exclamation2";
this.exclamation2.Size = new System.Drawing.Size(30, 38);
this.exclamation2.TabIndex = 4;
this.exclamation2.Text = "!";
this.exclamation2.Visible = false;
//
// wmStartStateTextBox2
//
this.wmStartStateTextBox2.Enabled = false;
this.wmStartStateTextBox2.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox2.Name = "wmStartStateTextBox2";
this.wmStartStateTextBox2.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox2.TabIndex = 3;
this.wmStartStateTextBox2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox2_KeyPress);
//
// wmEndStateTextBox2
//
this.wmEndStateTextBox2.Enabled = false;
this.wmEndStateTextBox2.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox2.Name = "wmEndStateTextBox2";
this.wmEndStateTextBox2.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox2.TabIndex = 1;
this.wmEndStateTextBox2.TextChanged += new System.EventHandler(this.wmEndStateTextBox2_TextChanged);
this.wmEndStateTextBox2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox2_KeyPress);
//
// wmStateLabel2
//
this.wmStateLabel2.AutoSize = true;
this.wmStateLabel2.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel2.Name = "wmStateLabel2";
this.wmStateLabel2.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel2.TabIndex = 0;
this.wmStateLabel2.Text = "State:";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.exclamation1);
this.groupBox1.Controls.Add(this.wmStartStateTextBox1);
this.groupBox1.Controls.Add(this.wmEndStateTextBox1);
this.groupBox1.Controls.Add(this.wmStateLabel1);
this.groupBox1.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox1.ForeColor = System.Drawing.Color.Black;
this.groupBox1.Location = new System.Drawing.Point(25, 32);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(547, 81);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Water Meter 1";
//
// exclamation1
//
this.exclamation1.AutoSize = true;
this.exclamation1.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation1.ForeColor = System.Drawing.Color.Red;
this.exclamation1.Location = new System.Drawing.Point(515, 27);
this.exclamation1.Name = "exclamation1";
this.exclamation1.Size = new System.Drawing.Size(30, 38);
this.exclamation1.TabIndex = 3;
this.exclamation1.Text = "!";
this.exclamation1.Visible = false;
//
// wmStartStateTextBox1
//
this.wmStartStateTextBox1.Enabled = false;
this.wmStartStateTextBox1.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox1.Name = "wmStartStateTextBox1";
this.wmStartStateTextBox1.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox1.TabIndex = 2;
this.wmStartStateTextBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox1_KeyPress);
//
// wmEndStateTextBox1
//
this.wmEndStateTextBox1.Enabled = false;
this.wmEndStateTextBox1.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox1.Name = "wmEndStateTextBox1";
this.wmEndStateTextBox1.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox1.TabIndex = 1;
this.wmEndStateTextBox1.TextChanged += new System.EventHandler(this.wmEndStateTextBox1_TextChanged);
this.wmEndStateTextBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox1_KeyPress);
//
// wmStateLabel1
//
this.wmStateLabel1.AutoSize = true;
this.wmStateLabel1.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel1.Name = "wmStateLabel1";
this.wmStateLabel1.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel1.TabIndex = 0;
this.wmStateLabel1.Text = "State:";
//
// okButton
//
this.okButton.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.okButton.ForeColor = System.Drawing.Color.Black;
this.okButton.Location = new System.Drawing.Point(603, 46);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(98, 63);
this.okButton.TabIndex = 7;
this.okButton.Text = "OK";
this.okButton.UseVisualStyleBackColor = true;
this.okButton.Click += new System.EventHandler(this.okButton_Click);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.exclamation3);
this.groupBox3.Controls.Add(this.wmStartStateTextBox3);
this.groupBox3.Controls.Add(this.wmEndStateTextBox3);
this.groupBox3.Controls.Add(this.wmStateLabel3);
this.groupBox3.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox3.ForeColor = System.Drawing.Color.Black;
this.groupBox3.Location = new System.Drawing.Point(25, 212);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(547, 81);
this.groupBox3.TabIndex = 3;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Water Meter 3";
//
// exclamation3
//
this.exclamation3.AutoSize = true;
this.exclamation3.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation3.ForeColor = System.Drawing.Color.Red;
this.exclamation3.Location = new System.Drawing.Point(515, 27);
this.exclamation3.Name = "exclamation3";
this.exclamation3.Size = new System.Drawing.Size(30, 38);
this.exclamation3.TabIndex = 5;
this.exclamation3.Text = "!";
this.exclamation3.Visible = false;
//
// wmStartStateTextBox3
//
this.wmStartStateTextBox3.Enabled = false;
this.wmStartStateTextBox3.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox3.Name = "wmStartStateTextBox3";
this.wmStartStateTextBox3.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox3.TabIndex = 4;
this.wmStartStateTextBox3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox3_KeyPress);
//
// wmEndStateTextBox3
//
this.wmEndStateTextBox3.Enabled = false;
this.wmEndStateTextBox3.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox3.Name = "wmEndStateTextBox3";
this.wmEndStateTextBox3.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox3.TabIndex = 1;
this.wmEndStateTextBox3.TextChanged += new System.EventHandler(this.wmEndStateTextBox3_TextChanged);
this.wmEndStateTextBox3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox3_KeyPress);
//
// wmStateLabel3
//
this.wmStateLabel3.AutoSize = true;
this.wmStateLabel3.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel3.Name = "wmStateLabel3";
this.wmStateLabel3.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel3.TabIndex = 0;
this.wmStateLabel3.Text = "State:";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.exclamation4);
this.groupBox4.Controls.Add(this.wmStartStateTextBox4);
this.groupBox4.Controls.Add(this.wmEndStateTextBox4);
this.groupBox4.Controls.Add(this.wmStateLabel4);
this.groupBox4.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox4.ForeColor = System.Drawing.Color.Black;
this.groupBox4.Location = new System.Drawing.Point(25, 302);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(547, 81);
this.groupBox4.TabIndex = 4;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Water Meter 4";
//
// exclamation4
//
this.exclamation4.AutoSize = true;
this.exclamation4.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation4.ForeColor = System.Drawing.Color.Red;
this.exclamation4.Location = new System.Drawing.Point(515, 27);
this.exclamation4.Name = "exclamation4";
this.exclamation4.Size = new System.Drawing.Size(30, 38);
this.exclamation4.TabIndex = 5;
this.exclamation4.Text = "!";
this.exclamation4.Visible = false;
//
// wmStartStateTextBox4
//
this.wmStartStateTextBox4.Enabled = false;
this.wmStartStateTextBox4.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox4.Name = "wmStartStateTextBox4";
this.wmStartStateTextBox4.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox4.TabIndex = 4;
this.wmStartStateTextBox4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox4_KeyPress);
//
// wmEndStateTextBox4
//
this.wmEndStateTextBox4.Enabled = false;
this.wmEndStateTextBox4.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox4.Name = "wmEndStateTextBox4";
this.wmEndStateTextBox4.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox4.TabIndex = 1;
this.wmEndStateTextBox4.TextChanged += new System.EventHandler(this.wmEndStateTextBox4_TextChanged);
this.wmEndStateTextBox4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox4_KeyPress);
//
// wmStateLabel4
//
this.wmStateLabel4.AutoSize = true;
this.wmStateLabel4.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel4.Name = "wmStateLabel4";
this.wmStateLabel4.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel4.TabIndex = 0;
this.wmStateLabel4.Text = "State:";
//
// groupBox5
//
this.groupBox5.Controls.Add(this.exclamation5);
this.groupBox5.Controls.Add(this.wmStartStateTextBox5);
this.groupBox5.Controls.Add(this.wmEndStateTextBox5);
this.groupBox5.Controls.Add(this.wmStateLabel5);
this.groupBox5.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox5.ForeColor = System.Drawing.Color.Black;
this.groupBox5.Location = new System.Drawing.Point(25, 392);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(547, 81);
this.groupBox5.TabIndex = 5;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "Water Meter 5";
//
// exclamation5
//
this.exclamation5.AutoSize = true;
this.exclamation5.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation5.ForeColor = System.Drawing.Color.Red;
this.exclamation5.Location = new System.Drawing.Point(515, 27);
this.exclamation5.Name = "exclamation5";
this.exclamation5.Size = new System.Drawing.Size(30, 38);
this.exclamation5.TabIndex = 5;
this.exclamation5.Text = "!";
this.exclamation5.Visible = false;
//
// wmStartStateTextBox5
//
this.wmStartStateTextBox5.Enabled = false;
this.wmStartStateTextBox5.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox5.Name = "wmStartStateTextBox5";
this.wmStartStateTextBox5.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox5.TabIndex = 4;
this.wmStartStateTextBox5.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox5_KeyPress);
//
// wmEndStateTextBox5
//
this.wmEndStateTextBox5.Enabled = false;
this.wmEndStateTextBox5.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox5.Name = "wmEndStateTextBox5";
this.wmEndStateTextBox5.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox5.TabIndex = 1;
this.wmEndStateTextBox5.TextChanged += new System.EventHandler(this.wmEndStateTextBox5_TextChanged);
this.wmEndStateTextBox5.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox5_KeyPress);
//
// wmStateLabel5
//
this.wmStateLabel5.AutoSize = true;
this.wmStateLabel5.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel5.Name = "wmStateLabel5";
this.wmStateLabel5.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel5.TabIndex = 0;
this.wmStateLabel5.Text = "State:";
//
// groupBox6
//
this.groupBox6.Controls.Add(this.exclamation6);
this.groupBox6.Controls.Add(this.wmStartStateTextBox6);
this.groupBox6.Controls.Add(this.wmEndStateTextBox6);
this.groupBox6.Controls.Add(this.wmStateLabel6);
this.groupBox6.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupBox6.ForeColor = System.Drawing.Color.Black;
this.groupBox6.Location = new System.Drawing.Point(25, 482);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(547, 81);
this.groupBox6.TabIndex = 6;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "Water Meter 6";
//
// exclamation6
//
this.exclamation6.AutoSize = true;
this.exclamation6.Font = new System.Drawing.Font("Verdana", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.exclamation6.ForeColor = System.Drawing.Color.Red;
this.exclamation6.Location = new System.Drawing.Point(515, 27);
this.exclamation6.Name = "exclamation6";
this.exclamation6.Size = new System.Drawing.Size(30, 38);
this.exclamation6.TabIndex = 5;
this.exclamation6.Text = "!";
this.exclamation6.Visible = false;
//
// wmStartStateTextBox6
//
this.wmStartStateTextBox6.Enabled = false;
this.wmStartStateTextBox6.Location = new System.Drawing.Point(164, 31);
this.wmStartStateTextBox6.Name = "wmStartStateTextBox6";
this.wmStartStateTextBox6.Size = new System.Drawing.Size(163, 31);
this.wmStartStateTextBox6.TabIndex = 4;
this.wmStartStateTextBox6.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmStartStateTextBox6_KeyPress);
//
// wmEndStateTextBox6
//
this.wmEndStateTextBox6.Enabled = false;
this.wmEndStateTextBox6.Location = new System.Drawing.Point(350, 31);
this.wmEndStateTextBox6.Name = "wmEndStateTextBox6";
this.wmEndStateTextBox6.Size = new System.Drawing.Size(163, 31);
this.wmEndStateTextBox6.TabIndex = 1;
this.wmEndStateTextBox6.TextChanged += new System.EventHandler(this.wmEndStateTextBox6_TextChanged);
this.wmEndStateTextBox6.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.wmEndStateTextBox6_KeyPress);
//
// wmStateLabel6
//
this.wmStateLabel6.AutoSize = true;
this.wmStateLabel6.Location = new System.Drawing.Point(18, 34);
this.wmStateLabel6.Name = "wmStateLabel6";
this.wmStateLabel6.Size = new System.Drawing.Size(68, 23);
this.wmStateLabel6.TabIndex = 0;
this.wmStateLabel6.Text = "State:";
//
// startLabel
//
this.startLabel.AutoSize = true;
this.startLabel.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.startLabel.Location = new System.Drawing.Point(245, 11);
this.startLabel.Name = "startLabel";
this.startLabel.Size = new System.Drawing.Size(56, 23);
this.startLabel.TabIndex = 8;
this.startLabel.Text = "Start";
//
// endLabel
//
this.endLabel.AutoSize = true;
this.endLabel.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.endLabel.Location = new System.Drawing.Point(431, 11);
this.endLabel.Name = "endLabel";
this.endLabel.Size = new System.Drawing.Size(46, 23);
this.endLabel.TabIndex = 9;
this.endLabel.Text = "End";
//
// TestStartEndForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DarkGoldenrod;
this.ClientSize = new System.Drawing.Size(729, 586);
this.Controls.Add(this.endLabel);
this.Controls.Add(this.startLabel);
this.Controls.Add(this.groupBox6);
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.okButton);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "TestStartEndForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.Text = "End States";
this.TopMost = true;
this.Load += new System.EventHandler(this.CycleEndForm_Load);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox6.ResumeLayout(false);
this.groupBox6.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox wmEndStateTextBox2;
private System.Windows.Forms.Label wmStateLabel2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox wmEndStateTextBox1;
private System.Windows.Forms.Label wmStateLabel1;
private System.Windows.Forms.Button okButton;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.TextBox wmEndStateTextBox3;
private System.Windows.Forms.Label wmStateLabel3;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.TextBox wmEndStateTextBox4;
private System.Windows.Forms.Label wmStateLabel4;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.TextBox wmEndStateTextBox5;
private System.Windows.Forms.Label wmStateLabel5;
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.TextBox wmEndStateTextBox6;
private System.Windows.Forms.Label wmStateLabel6;
private System.Windows.Forms.TextBox wmStartStateTextBox2;
private System.Windows.Forms.TextBox wmStartStateTextBox1;
private System.Windows.Forms.TextBox wmStartStateTextBox3;
private System.Windows.Forms.TextBox wmStartStateTextBox4;
private System.Windows.Forms.TextBox wmStartStateTextBox5;
private System.Windows.Forms.TextBox wmStartStateTextBox6;
private System.Windows.Forms.Label startLabel;
private System.Windows.Forms.Label endLabel;
private System.Windows.Forms.Label exclamation2;
private System.Windows.Forms.Label exclamation1;
private System.Windows.Forms.Label exclamation3;
private System.Windows.Forms.Label exclamation4;
private System.Windows.Forms.Label exclamation5;
private System.Windows.Forms.Label exclamation6;
}
}
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="clearButton.Text" xml:space="preserve">
<value>&amp;Usunąć</value>
</data>
</root>
@@ -151,8 +151,6 @@ namespace TBF.BenchControl.DataEntry.Standard12
{
Localize();
//Height = 115 + 90 * WaterMetersCount;
for (int i = 0; i < TextBoxesCount; i++)
{
if (i < WaterMetersCount)
@@ -196,6 +194,8 @@ namespace TBF.BenchControl.DataEntry.Standard12
}
}
}
//Height = 85 + 44 * WaterMetersCount;
}
void Localize()
@@ -41,8 +41,6 @@ namespace TBF.BenchControl.DataEntry.Standard6
enabledComboBoxes = new List<ComboBox>();
StartForceCloseHandler();
Height = 147 + WaterMetersCount * 90;
}
/// <summary> Parameterless constructor for all watermeters </summary>
@@ -73,24 +71,29 @@ namespace TBF.BenchControl.DataEntry.Standard6
if (WaterMetersCount < 4) { groupBox4.Visible = false; } else { enabledComboBoxes.Add(comboBox4); }
if (WaterMetersCount < 5) { groupBox5.Visible = false; } else { enabledComboBoxes.Add(comboBox5); }
if (WaterMetersCount < 6) { groupBox6.Visible = false; } else { enabledComboBoxes.Add(comboBox6); }
}
Height = 147 + WaterMetersCount * 90;
}
void Localize()
{
Text = Strings.Data;
orderGroupBox.Text = Strings.Purchase_order;
groupBox1.Text = Strings.Water_Meter + " 1";
groupBox2.Text = Strings.Water_Meter + " 2";
groupBox3.Text = Strings.Water_Meter + " 3";
groupBox4.Text = Strings.Water_Meter + " 4";
groupBox5.Text = Strings.Water_Meter + " 5";
groupBox6.Text = Strings.Water_Meter + " 6";
label1.Text = Strings.Serial_Number;
label2.Text = Strings.Serial_Number;
label3.Text = Strings.Serial_Number;
label4.Text = Strings.Serial_Number;
label5.Text = Strings.Serial_Number;
label6.Text = Strings.Serial_Number;
okButton.Text = Strings.OkBtnText;
clearButton.Text = Strings.ClearBtnText;
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Windows.Forms;
@@ -87,7 +87,7 @@ namespace TBF.BenchControl.DataEntry.Standard6
{
Localize();
Height = 115 + 90 * WaterMetersCount;
Height = 70 + 90 * WaterMetersCount;
if (WaterMetersCount < 1) groupBox1.Visible = false;
if (WaterMetersCount < 2) groupBox2.Visible = false;
@@ -104,39 +104,43 @@ namespace TBF.BenchControl.DataEntry.Standard6
if (WaterMetersCount >= 4) wmStartStateTextBox4.Text = WMStartStateStr[3];
if (WaterMetersCount >= 5) wmStartStateTextBox5.Text = WMStartStateStr[4];
if (WaterMetersCount >= 6) wmStartStateTextBox6.Text = WMStartStateStr[5];
wmEndStateTextBox1.Enabled = (disabled == null || disabled.Length < 1 || !disabled[0]);
wmEndStateTextBox2.Enabled = (disabled == null || disabled.Length < 2 || !disabled[1]);
wmEndStateTextBox3.Enabled = (disabled == null || disabled.Length < 3 || !disabled[2]);
wmEndStateTextBox4.Enabled = (disabled == null || disabled.Length < 4 || !disabled[3]);
wmEndStateTextBox5.Enabled = (disabled == null || disabled.Length < 5 || !disabled[4]);
wmEndStateTextBox6.Enabled = (disabled == null || disabled.Length < 6 || !disabled[5]);
wmEndStateTextBox1.Enabled = (disabled.Length >= 1 && !disabled[0]);
wmEndStateTextBox2.Enabled = (disabled.Length >= 2 && !disabled[1]);
wmEndStateTextBox3.Enabled = (disabled.Length >= 3 && !disabled[2]);
wmEndStateTextBox4.Enabled = (disabled.Length >= 4 && !disabled[3]);
wmEndStateTextBox5.Enabled = (disabled.Length >= 5 && !disabled[4]);
wmEndStateTextBox6.Enabled = (disabled.Length >= 6 && !disabled[5]);
}
else
{
wmStartStateTextBox1.Enabled = (disabled == null || disabled.Length < 1 || !disabled[0]);
wmStartStateTextBox2.Enabled = (disabled == null || disabled.Length < 2 || !disabled[1]);
wmStartStateTextBox3.Enabled = (disabled == null || disabled.Length < 3 || !disabled[2]);
wmStartStateTextBox4.Enabled = (disabled == null || disabled.Length < 4 || !disabled[3]);
wmStartStateTextBox5.Enabled = (disabled == null || disabled.Length < 5 || !disabled[4]);
wmStartStateTextBox6.Enabled = (disabled == null || disabled.Length < 6 || !disabled[5]);
wmStartStateTextBox1.Enabled = (disabled.Length >= 1 && !disabled[0]);
wmStartStateTextBox2.Enabled = (disabled.Length >= 2 && !disabled[1]);
wmStartStateTextBox3.Enabled = (disabled.Length >= 3 && !disabled[2]);
wmStartStateTextBox4.Enabled = (disabled.Length >= 4 && !disabled[3]);
wmStartStateTextBox5.Enabled = (disabled.Length >= 5 && !disabled[4]);
wmStartStateTextBox6.Enabled = (disabled.Length >= 6 && !disabled[5]);
}
}
void Localize()
{
Text = Strings.Water_Meter_States;
groupBox1.Text = Strings.Water_Meter + " 1";
groupBox2.Text = Strings.Water_Meter + " 2";
groupBox3.Text = Strings.Water_Meter + " 3";
groupBox4.Text = Strings.Water_Meter + " 4";
groupBox5.Text = Strings.Water_Meter + " 5";
groupBox6.Text = Strings.Water_Meter + " 6";
wmStateLabel1.Text = Strings.WMState;
wmStateLabel2.Text = Strings.WMState;
wmStateLabel3.Text = Strings.WMState;
wmStateLabel4.Text = Strings.WMState;
wmStateLabel5.Text = Strings.WMState;
wmStateLabel6.Text = Strings.WMState;
startLabel.Text = Strings.Start;
endLabel.Text = Strings.End;
okButton.Text = Strings.OkBtnText;
@@ -0,0 +1,14 @@
///
/// Copyright (c) 2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TBF.BenchControl.GenericDevices
{
public interface ITankDraining
{
}
}
@@ -0,0 +1,29 @@
///
/// Copyright (c) 2017 Sensus Metering Systems
///
namespace TBF.BenchControl.GenericDevices
{
public interface ITankDrainingCfg
{
/// <summary>
/// Max. mass of water in 'kg' or volume in 'l'
/// </summary>
float Capacity { get; }
/// <summary>
/// 'Empty' water mass in 'kg' or volume in 'l'
/// </summary>
float Empty { get; }
/// <summary>
/// Time in [s] to drain the tank completely
/// </summary>
int DrainTimeSec { get; }
/// <summary>
/// Name of the drain valve
/// </summary>
string DrainValve { get; }
}
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.IO;
@@ -10,7 +10,7 @@ using TBF.BenchControl.Generic;
namespace TBF.BenchControl.MettlerToledo.Standard
{
public class BalanceCfg : ComponentCfgBase, GenericDevices.IBalanceCfg, GenericDevices.ICalibInfoCfg
public class BalanceCfg : ComponentCfgBase, GenericDevices.IBalanceCfg, GenericDevices.ICalibInfoCfg, GenericDevices.ITankDrainingCfg
{
public IComponentCfgCtrl GetControl() { return new BalanceCfgCtrl(); }
@@ -23,10 +23,38 @@ namespace TBF.BenchControl.MettlerToledo.Standard
public int DataBits;
public StopBits StopBits;
public Handshake Handshake;
public float Capacity; /// Max. water mass in 'kg' or volume in 'l'
public float Empty; /// 'Empty' water mass in 'kg' or volume in 'l'
/// Max. water mass in 'kg' or volume in 'l'
private float capacity;
public float Capacity
{
get { return capacity; }
set { capacity = value; }
}
/// Mass threshold for 'Tank is empty' in 'kg' (or volume in 'l')
private float empty;
public float Empty
{
get { return empty; }
set { empty = value; }
}
private string drainValve;
public string DrainValve
{
get { return drainValve; }
set { drainValve = value; }
}
private int drainTimeSec;
public int DrainTimeSec
{
get { return drainTimeSec; }
set { drainTimeSec = value; }
}
public string Format;
public int EmptyTimeSec; /// s
/// Buoyancy related serialized parameters displayed in Metrology tab page
private float buoyancyTemp;
@@ -78,7 +106,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard
/// Private parameterless constructor invoked by all other (public) constructors
BalanceCfg()
{
Name = "WT";
Name = "WT1";
ParentName = string.Empty;
ComPortNr = 3;
BaudRate = 2400;
@@ -89,7 +117,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
Capacity = 200.0f;
Empty = 20.0f;
Format = "F3";
EmptyTimeSec = 180;
DrainValve = "VB1";
DrainTimeSec = 180;
BuoyancyTemp = 20.0f;
BuoyancyPress = 1.0f;
BuoyancyHumi = 40.0f;
@@ -103,8 +132,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
public string ToString(int i)
{
return string.Format("Name={0}, {1}kg, empty={2}kg, fmt.={3}, emptyTm={4}s, Com{5}, {6}Bd, {7}-bits, parity={8}, stopBits={9}, {10}",
Name, Capacity, Empty, Format, EmptyTimeSec, ComPortNr, BaudRate, DataBits, Parity, StopBits, Handshake);
return string.Format("Name={0}, {1}kg, empty={2}kg, fmt.={3}, drainTm={4}s, Com{5}, {6}Bd, {7}-bits, parity={8}, stopBits={9}, {10}",
Name, Capacity, Empty, Format, DrainTimeSec, ComPortNr, BaudRate, DataBits, Parity, StopBits, Handshake);
}
}
}
@@ -53,45 +53,47 @@ namespace TBF.BenchControl.MettlerToledo.Standard
this.emptyTextBox = new System.Windows.Forms.TextBox();
this.emptyLabel = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.emptyTimeTextBox = new System.Windows.Forms.TextBox();
this.drainTimeTextBox = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.formatTextBox = new System.Windows.Forms.TextBox();
this.formatLabel = new System.Windows.Forms.Label();
this.drainValveComboBox = new System.Windows.Forms.ComboBox();
this.drainingValveLabel = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// handshakeComboBox
//
this.handshakeComboBox.Enabled = false;
this.handshakeComboBox.FormattingEnabled = true;
this.handshakeComboBox.Location = new System.Drawing.Point(236, 216);
this.handshakeComboBox.Location = new System.Drawing.Point(236, 222);
this.handshakeComboBox.Name = "handshakeComboBox";
this.handshakeComboBox.Size = new System.Drawing.Size(43, 21);
this.handshakeComboBox.TabIndex = 25;
this.handshakeComboBox.TabIndex = 27;
//
// stopBitsComboBox
//
this.stopBitsComboBox.Enabled = false;
this.stopBitsComboBox.FormattingEnabled = true;
this.stopBitsComboBox.Location = new System.Drawing.Point(236, 193);
this.stopBitsComboBox.Location = new System.Drawing.Point(236, 200);
this.stopBitsComboBox.Name = "stopBitsComboBox";
this.stopBitsComboBox.Size = new System.Drawing.Size(43, 21);
this.stopBitsComboBox.TabIndex = 23;
this.stopBitsComboBox.TabIndex = 25;
//
// parityComboBox
//
this.parityComboBox.Enabled = false;
this.parityComboBox.FormattingEnabled = true;
this.parityComboBox.Location = new System.Drawing.Point(100, 216);
this.parityComboBox.Location = new System.Drawing.Point(100, 222);
this.parityComboBox.Name = "parityComboBox";
this.parityComboBox.Size = new System.Drawing.Size(43, 21);
this.parityComboBox.TabIndex = 19;
this.parityComboBox.TabIndex = 21;
//
// nameTextBox
//
this.nameTextBox.Enabled = false;
this.nameTextBox.Location = new System.Drawing.Point(136, 27);
this.nameTextBox.Location = new System.Drawing.Point(137, 27);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(143, 20);
this.nameTextBox.Size = new System.Drawing.Size(142, 20);
this.nameTextBox.TabIndex = 2;
//
// nameLabel
@@ -106,7 +108,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard
// classNameLabel
//
this.classNameLabel.AutoSize = true;
this.classNameLabel.Location = new System.Drawing.Point(133, 7);
this.classNameLabel.Location = new System.Drawing.Point(134, 9);
this.classNameLabel.Name = "classNameLabel";
this.classNameLabel.Size = new System.Drawing.Size(89, 13);
this.classNameLabel.TabIndex = 0;
@@ -115,184 +117,204 @@ namespace TBF.BenchControl.MettlerToledo.Standard
// handshakeLabel
//
this.handshakeLabel.AutoSize = true;
this.handshakeLabel.Location = new System.Drawing.Point(162, 219);
this.handshakeLabel.Location = new System.Drawing.Point(162, 225);
this.handshakeLabel.Name = "handshakeLabel";
this.handshakeLabel.Size = new System.Drawing.Size(62, 13);
this.handshakeLabel.TabIndex = 24;
this.handshakeLabel.TabIndex = 26;
this.handshakeLabel.Text = "Handshake";
//
// stopBitsLabel
//
this.stopBitsLabel.AutoSize = true;
this.stopBitsLabel.Location = new System.Drawing.Point(162, 196);
this.stopBitsLabel.Location = new System.Drawing.Point(162, 203);
this.stopBitsLabel.Name = "stopBitsLabel";
this.stopBitsLabel.Size = new System.Drawing.Size(49, 13);
this.stopBitsLabel.TabIndex = 22;
this.stopBitsLabel.TabIndex = 24;
this.stopBitsLabel.Text = "Stop Bits";
//
// dataBitsTextBox
//
this.dataBitsTextBox.Enabled = false;
this.dataBitsTextBox.Location = new System.Drawing.Point(236, 170);
this.dataBitsTextBox.Location = new System.Drawing.Point(236, 178);
this.dataBitsTextBox.Name = "dataBitsTextBox";
this.dataBitsTextBox.Size = new System.Drawing.Size(43, 20);
this.dataBitsTextBox.TabIndex = 21;
this.dataBitsTextBox.TabIndex = 23;
//
// dataBitsLabel
//
this.dataBitsLabel.AutoSize = true;
this.dataBitsLabel.Location = new System.Drawing.Point(162, 173);
this.dataBitsLabel.Location = new System.Drawing.Point(162, 181);
this.dataBitsLabel.Name = "dataBitsLabel";
this.dataBitsLabel.Size = new System.Drawing.Size(50, 13);
this.dataBitsLabel.TabIndex = 20;
this.dataBitsLabel.TabIndex = 22;
this.dataBitsLabel.Text = "Data Bits";
//
// partityLabel
//
this.partityLabel.AutoSize = true;
this.partityLabel.Location = new System.Drawing.Point(26, 221);
this.partityLabel.Location = new System.Drawing.Point(26, 225);
this.partityLabel.Name = "partityLabel";
this.partityLabel.Size = new System.Drawing.Size(33, 13);
this.partityLabel.TabIndex = 18;
this.partityLabel.TabIndex = 20;
this.partityLabel.Text = "Parity";
//
// baudRateTextBox
//
this.baudRateTextBox.Enabled = false;
this.baudRateTextBox.Location = new System.Drawing.Point(100, 193);
this.baudRateTextBox.Location = new System.Drawing.Point(100, 200);
this.baudRateTextBox.Name = "baudRateTextBox";
this.baudRateTextBox.Size = new System.Drawing.Size(43, 20);
this.baudRateTextBox.TabIndex = 17;
this.baudRateTextBox.TabIndex = 19;
//
// baudRateLabel
//
this.baudRateLabel.AutoSize = true;
this.baudRateLabel.Location = new System.Drawing.Point(26, 196);
this.baudRateLabel.Location = new System.Drawing.Point(26, 203);
this.baudRateLabel.Name = "baudRateLabel";
this.baudRateLabel.Size = new System.Drawing.Size(58, 13);
this.baudRateLabel.TabIndex = 16;
this.baudRateLabel.Text = "Baud Rate";
this.baudRateLabel.Size = new System.Drawing.Size(53, 13);
this.baudRateLabel.TabIndex = 18;
this.baudRateLabel.Text = "Baud rate";
//
// comPortNrTextBox
//
this.comPortNrTextBox.Enabled = false;
this.comPortNrTextBox.Location = new System.Drawing.Point(100, 170);
this.comPortNrTextBox.Location = new System.Drawing.Point(100, 178);
this.comPortNrTextBox.Name = "comPortNrTextBox";
this.comPortNrTextBox.Size = new System.Drawing.Size(43, 20);
this.comPortNrTextBox.TabIndex = 15;
this.comPortNrTextBox.TabIndex = 17;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(26, 173);
this.label1.Location = new System.Drawing.Point(26, 181);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(68, 13);
this.label1.TabIndex = 14;
this.label1.Text = "Serial Port #:";
this.label1.Size = new System.Drawing.Size(67, 13);
this.label1.TabIndex = 16;
this.label1.Text = "Serial port #:";
//
// capacityLabel
//
this.capacityLabel.AutoSize = true;
this.capacityLabel.Location = new System.Drawing.Point(26, 54);
this.capacityLabel.Location = new System.Drawing.Point(26, 82);
this.capacityLabel.Name = "capacityLabel";
this.capacityLabel.Size = new System.Drawing.Size(76, 13);
this.capacityLabel.TabIndex = 3;
this.capacityLabel.Text = "Tank Capacity";
this.capacityLabel.Size = new System.Drawing.Size(75, 13);
this.capacityLabel.TabIndex = 5;
this.capacityLabel.Text = "Tank capacity";
//
// capacityTextBox
//
this.capacityTextBox.Enabled = false;
this.capacityTextBox.Location = new System.Drawing.Point(137, 51);
this.capacityTextBox.Location = new System.Drawing.Point(137, 79);
this.capacityTextBox.Name = "capacityTextBox";
this.capacityTextBox.Size = new System.Drawing.Size(43, 20);
this.capacityTextBox.TabIndex = 4;
this.capacityTextBox.TabIndex = 6;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(186, 54);
this.label2.Location = new System.Drawing.Point(186, 82);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(19, 13);
this.label2.TabIndex = 5;
this.label2.TabIndex = 7;
this.label2.Text = "kg";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(186, 77);
this.label3.Location = new System.Drawing.Point(186, 104);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(19, 13);
this.label3.TabIndex = 8;
this.label3.TabIndex = 10;
this.label3.Text = "kg";
//
// emptyTextBox
//
this.emptyTextBox.Enabled = false;
this.emptyTextBox.Location = new System.Drawing.Point(137, 74);
this.emptyTextBox.Location = new System.Drawing.Point(137, 101);
this.emptyTextBox.Name = "emptyTextBox";
this.emptyTextBox.Size = new System.Drawing.Size(43, 20);
this.emptyTextBox.TabIndex = 7;
this.emptyTextBox.TabIndex = 9;
//
// emptyLabel
//
this.emptyLabel.AutoSize = true;
this.emptyLabel.Location = new System.Drawing.Point(26, 77);
this.emptyLabel.Location = new System.Drawing.Point(26, 104);
this.emptyLabel.Name = "emptyLabel";
this.emptyLabel.Size = new System.Drawing.Size(64, 13);
this.emptyLabel.TabIndex = 6;
this.emptyLabel.Text = "Tank Empty";
this.emptyLabel.Size = new System.Drawing.Size(109, 13);
this.emptyLabel.TabIndex = 8;
this.emptyLabel.Text = "Tank empty threshold";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(186, 123);
this.label4.Location = new System.Drawing.Point(186, 149);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(24, 13);
this.label4.TabIndex = 13;
this.label4.TabIndex = 15;
this.label4.Text = "sec";
//
// emptyTimeTextBox
// drainTimeTextBox
//
this.emptyTimeTextBox.Enabled = false;
this.emptyTimeTextBox.Location = new System.Drawing.Point(137, 120);
this.emptyTimeTextBox.Name = "emptyTimeTextBox";
this.emptyTimeTextBox.Size = new System.Drawing.Size(43, 20);
this.emptyTimeTextBox.TabIndex = 12;
this.drainTimeTextBox.Enabled = false;
this.drainTimeTextBox.Location = new System.Drawing.Point(137, 146);
this.drainTimeTextBox.Name = "drainTimeTextBox";
this.drainTimeTextBox.Size = new System.Drawing.Size(43, 20);
this.drainTimeTextBox.TabIndex = 14;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(26, 123);
this.label5.Location = new System.Drawing.Point(26, 149);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(90, 13);
this.label5.TabIndex = 11;
this.label5.Text = "Tank Empty Time";
this.label5.Size = new System.Drawing.Size(54, 13);
this.label5.TabIndex = 13;
this.label5.Text = "Drain time";
//
// formatTextBox
//
this.formatTextBox.Enabled = false;
this.formatTextBox.Location = new System.Drawing.Point(137, 97);
this.formatTextBox.Location = new System.Drawing.Point(137, 49);
this.formatTextBox.Name = "formatTextBox";
this.formatTextBox.Size = new System.Drawing.Size(43, 20);
this.formatTextBox.TabIndex = 10;
this.formatTextBox.TabIndex = 4;
//
// formatLabel
//
this.formatLabel.AutoSize = true;
this.formatLabel.Location = new System.Drawing.Point(26, 100);
this.formatLabel.Location = new System.Drawing.Point(26, 52);
this.formatLabel.Name = "formatLabel";
this.formatLabel.Size = new System.Drawing.Size(76, 13);
this.formatLabel.TabIndex = 9;
this.formatLabel.TabIndex = 3;
this.formatLabel.Text = "Decimal points";
//
// drainValveComboBox
//
this.drainValveComboBox.Enabled = false;
this.drainValveComboBox.FormattingEnabled = true;
this.drainValveComboBox.Location = new System.Drawing.Point(137, 123);
this.drainValveComboBox.Name = "drainValveComboBox";
this.drainValveComboBox.Size = new System.Drawing.Size(143, 21);
this.drainValveComboBox.TabIndex = 12;
//
// drainingValveLabel
//
this.drainingValveLabel.AutoSize = true;
this.drainingValveLabel.Location = new System.Drawing.Point(26, 126);
this.drainingValveLabel.Name = "drainingValveLabel";
this.drainingValveLabel.Size = new System.Drawing.Size(61, 13);
this.drainingValveLabel.TabIndex = 11;
this.drainingValveLabel.Text = "Drain valve";
//
// BalanceCfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.drainValveComboBox);
this.Controls.Add(this.drainingValveLabel);
this.Controls.Add(this.formatTextBox);
this.Controls.Add(this.formatLabel);
this.Controls.Add(this.label4);
this.Controls.Add(this.emptyTimeTextBox);
this.Controls.Add(this.drainTimeTextBox);
this.Controls.Add(this.label5);
this.Controls.Add(this.label3);
this.Controls.Add(this.emptyTextBox);
@@ -347,9 +369,11 @@ namespace TBF.BenchControl.MettlerToledo.Standard
private System.Windows.Forms.TextBox emptyTextBox;
private System.Windows.Forms.Label emptyLabel;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox emptyTimeTextBox;
private System.Windows.Forms.TextBox drainTimeTextBox;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox formatTextBox;
private System.Windows.Forms.Label formatLabel;
private System.Windows.Forms.ComboBox drainValveComboBox;
private System.Windows.Forms.Label drainingValveLabel;
}
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Globalization;
@@ -14,6 +14,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
{
static readonly ILog log = LogManager.GetLogger(typeof(BalanceCfgCtrl));
ComponentParametersDlg parent;
public bool ShowMore { get { return false; } }
BalanceCfg config;
@@ -27,6 +29,55 @@ namespace TBF.BenchControl.MettlerToledo.Standard
}
}
int GetParityIx(Parity par)
{
if (par == Parity.None) return 0;
if (par == Parity.Even) return 0;
if (par == Parity.Odd) return 0;
return -1;
}
Parity GetParity(string str)
{
if (str.Equals(Parity.None.ToString())) return Parity.None;
if (str.Equals(Parity.Even.ToString())) return Parity.Even;
if (str.Equals(Parity.Odd.ToString())) return Parity.Odd;
return (Parity)(-1);
}
int GetStopBitsIx(StopBits sb)
{
if (sb == StopBits.None) return 0;
if (sb == StopBits.One) return 1;
if (sb == StopBits.OnePointFive) return 2;
if (sb == StopBits.Two) return 3;
return -1;
}
StopBits GetStopBits(string str)
{
if (str.Equals(StopBits.None.ToString())) return StopBits.None;
if (str.Equals(StopBits.One.ToString())) return StopBits.One;
if (str.Equals(StopBits.OnePointFive.ToString())) return StopBits.OnePointFive;
if (str.Equals(StopBits.Two.ToString())) return StopBits.Two;
return (StopBits)(-1);
}
int GetHandshakeIx(Handshake par)
{
if (par == Handshake.None) return 0;
if (par == Handshake.RequestToSend) return 0;
if (par == Handshake.XOnXOff) return 0;
return -1;
}
Handshake GetHandshake(string str)
{
if (str.Equals(Handshake.None.ToString())) return Handshake.None;
if (str.Equals(Handshake.RequestToSend.ToString())) return Handshake.RequestToSend;
if (str.Equals(Handshake.XOnXOff.ToString())) return Handshake.XOnXOff;
return (Handshake)(-1);
}
public BalanceCfgCtrl()
{
InitializeComponent();
@@ -45,55 +96,23 @@ namespace TBF.BenchControl.MettlerToledo.Standard
handshakeComboBox.Items.Add(Handshake.XOnXOff.ToString());
}
int GetParityIx(Parity par)
{
if (par == Parity.None) return 0;
if (par == Parity.Even) return 0;
if (par == Parity.Odd) return 0;
return -1;
}
Parity GetParity(string str)
{
if (str.Equals(Parity.None.ToString())) return Parity.None;
if (str.Equals(Parity.Even.ToString())) return Parity.Even;
if (str.Equals(Parity.Odd.ToString())) return Parity.Odd;
return (Parity)(-1);
}
int GetStopBitsIx(StopBits sb)
{
if (sb == StopBits.None) return 0;
if (sb == StopBits.One) return 1;
if (sb == StopBits.OnePointFive) return 2;
if (sb == StopBits.Two) return 3;
return -1;
}
StopBits GetStopBits(string str)
{
if (str.Equals(StopBits.None.ToString())) return StopBits.None;
if (str.Equals(StopBits.One.ToString())) return StopBits.One;
if (str.Equals(StopBits.OnePointFive.ToString())) return StopBits.OnePointFive;
if (str.Equals(StopBits.Two.ToString())) return StopBits.Two;
return (StopBits)(-1);
}
int GetHandshakeIx(Handshake par)
{
if (par == Handshake.None) return 0;
if (par == Handshake.RequestToSend) return 0;
if (par == Handshake.XOnXOff) return 0;
return -1;
}
Handshake GetHandshake(string str)
{
if (str.Equals(Handshake.None.ToString())) return Handshake.None;
if (str.Equals(Handshake.RequestToSend.ToString())) return Handshake.RequestToSend;
if (str.Equals(Handshake.XOnXOff.ToString())) return Handshake.XOnXOff;
return (Handshake)(-1);
}
private void BalanceCfgCtrl_Load(object sender, EventArgs e)
{
parent = ParentForm as ComponentParametersDlg;
if (parent == null) return;
if (parent.TbfComponents != null)
{
drainValveComboBox.Items.Add("---");
foreach (var cmpnt in parent.TbfComponents)
{
if (TbfComponents.CmpntFactoryFromClassName(cmpnt.ClassName) is Elde.Valve.ValveFactory)
{
drainValveComboBox.Items.Add(cmpnt.Name);
}
}
}
Redraw();
}
@@ -110,7 +129,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
capacityTextBox.Text = config.Capacity.ToString();
emptyTextBox.Text = config.Empty.ToString();
formatTextBox.Text = (config.Format.Length > 1) ? config.Format.Substring(1) : config.Format;
emptyTimeTextBox.Text = config.EmptyTimeSec.ToString();
drainTimeTextBox.Text = config.DrainTimeSec.ToString();
drainValveComboBox.Text = string.IsNullOrEmpty(config.DrainValve) ? "---" : config.DrainValve;
comPortNrTextBox.Text = config.ComPortNr.ToString();
baudRateTextBox.Text = config.BaudRate.ToString();
@@ -126,7 +146,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
capacityTextBox.Enabled = true;
emptyTextBox.Enabled = true;
formatTextBox.Enabled = true;
emptyTimeTextBox.Enabled = true;
drainTimeTextBox.Enabled = true;
drainValveComboBox.Enabled = true;
comPortNrTextBox.Enabled = true;
baudRateTextBox.Enabled = true;
@@ -172,10 +193,15 @@ namespace TBF.BenchControl.MettlerToledo.Standard
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "'Decimal points' should be between 0 and 9";
}
if (!int.TryParse(emptyTimeTextBox.Text, out dummy) || dummy < 1 || dummy > 999)
if (!drainValveComboBox.Items.Contains(drainValveComboBox.Text))
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "Invalid 'Drain valve'";
}
if (!int.TryParse(drainTimeTextBox.Text, out dummy) || dummy < 1 || dummy > 999)
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "'Tank Empty Time' should be between 1 and 999 sec";
message += Environment.NewLine + "'Tank drain time' should be between 1 and 999 sec";
}
return flags;
@@ -191,7 +217,8 @@ namespace TBF.BenchControl.MettlerToledo.Standard
config.Capacity = Utils.ParseUFloat(capacityTextBox.Text);
config.Empty = Utils.ParseUFloat(emptyTextBox.Text);
config.Format = "F" + formatTextBox.Text;
config.EmptyTimeSec = int.Parse(emptyTimeTextBox.Text);
config.DrainTimeSec = int.Parse(drainTimeTextBox.Text);
config.DrainValve = drainValveComboBox.Text.Equals("---") ? string.Empty : drainValveComboBox.Text;
config.ComPortNr = int.Parse(comPortNrTextBox.Text);
config.BaudRate = int.Parse(baudRateTextBox.Text);
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -19,7 +19,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard
/// <note>
/// Implemented and tested on 15.10.2013 by Milan Hanajik
/// </note>
public class BalanceDev : ComponentBase, IDevice, GenericDevices.IBalance
public class BalanceDev : TankDraining, IDevice, GenericDevices.IBalance
{
/// <summary>
/// Info: StartMassMeasurement() and "Balnce response = .., Mass = ..."
@@ -49,7 +49,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard
public int BalanceNr { get { return balanceNr; } }
public double Capacity { get { return balanceCfg.Capacity; } }
public int EmptyTimeSec { get { return balanceCfg.EmptyTimeSec; } }
public int EmptyTimeSec { get { return balanceCfg.DrainTimeSec; } }
/// Buoyancy
public float BuoyancyTemp { get { return balanceCfg.BuoyancyTemp; } }
@@ -0,0 +1,26 @@
///
/// Copyright (c) 2017 Sensus Metering Systems
///
using System;
namespace TBF.BenchControl.MettlerToledo
{
public class TankDraining : ComponentBase
{
public GenericDevices.IValve DrainValve;
GenericDevices.ITankDrainingCfg tankManagementCfg;
public TankDraining()
: base()
{
}
public TankDraining(Generic.IComponentCfg cfg)
: base(cfg)
{
tankManagementCfg = cfg as GenericDevices.ITankDrainingCfg;
if (tankManagementCfg == null) throw new Exception(string.Format("Cannot create component {0}", cfg.Name));
}
}
}
@@ -128,8 +128,9 @@ namespace TBF.BenchControl.Modbus.Common
serialPort.Write(message, 0, message.Length);
Debug.WriteLine(Telegram.LogTelegram("Sending message ", message));
log.Debug(Telegram.LogTelegram("Sending message ", message));
string s = Telegram.LogTelegram("Sending message ", message);
Debug.WriteLine(s);
log.Debug(s);
}
@@ -143,19 +144,22 @@ namespace TBF.BenchControl.Modbus.Common
{
byte[] buffer = new byte[nrBytes];
serialPort.Read(buffer, 0, nrBytes);
string s = Telegram.LogTelegram("Received: ", buffer);
Debug.WriteLine(s);
if (nrBytes >=3)
int deviceAddress = (nrBytes >= 1) ? buffer[0] : 0;
int function = (nrBytes >= 2) ? buffer[1] : 0;
if ((nrBytes >= 4) && Telegram.VerifyTelegramCRC(buffer))
{
int deviceAddress = buffer[0];
int function = buffer[1];
int bytesCount = buffer[2];
if (nrBytes == bytesCount + 5 && Telegram.VerifyTelegramCRC(buffer))
{
receivedTelegrams[deviceAddress].Enqueue(buffer);
Debug.WriteLine("Valid telegram received: ReceivedTelegrams[{0}].Count = {1}", deviceAddress, receivedTelegrams[deviceAddress].Count);
}
receivedTelegrams[deviceAddress].Enqueue(buffer);
string s = string.Format("{0} address={1} count={2}", Telegram.LogTelegram("Telegram received: ", buffer), deviceAddress, receivedTelegrams[deviceAddress].Count);
Debug.WriteLine(s);
log.Debug(s);
}
else
{
string s = Telegram.LogTelegram("Invalid data received ", buffer);
Debug.WriteLine(s);
log.Debug(s);
}
}
}
@@ -58,26 +58,48 @@ namespace TBF.BenchControl.Modbus.Easytherm
/// Set outputs of QuidoRS board
/// </summary>
/// <param name="temperature">output value</param>
public void SetTemperature(ushort temperature)
public void SetTemperature(float temperature)
{
temperatureSetpoint = temperature;
SendTemperature(temperatureSetpoint);
}
if (temperature < 0 || temperature > 100) return; /// temperature out of range
private void SendTemperature(ushort temperatureSetpoint)
{
byte[] msg = new byte[8];
ushort temperatureSetpoint = (ushort)(100 * temperature);
ushort destAddress = (ushort)2;
byte[] msg = new byte[8];
msg[0] = easythermCfg.ModbusAddress;
msg[1] = (byte)Function.PresetSingleRegister;
msg[2] = 0; /// Relative address Hi
msg[3] = 2; /// Relative address Lo
msg[2] = (byte)(destAddress >> 8); /// Relative address Hi
msg[3] = (byte)(destAddress & 0xFF); /// Relative address Lo
msg[4] = (byte)(temperatureSetpoint >> 8); /// Output data Hi
msg[5] = (byte)(temperatureSetpoint & 0xFF); /// Output data Lo
modbus.SendMessage(msg);
}
/// <summary>
/// Set outputs of QuidoRS board
/// </summary>
/// <param name="temperature">output value</param>
public void GetSomething(ushort address, int len)
{
ReadSomething(address, len);
}
private void ReadSomething(ushort address, int len)
{
byte[] msg = new byte[8];
msg[0] = easythermCfg.ModbusAddress;
msg[1] = (byte)Function.ReadInputRegister;
msg[2] = (byte)(address >> 8); /// Relative address Hi
msg[3] = (byte)(address & 0xFF); /// Relative address Lo
msg[4] = (byte)((len >> 8) & 0xFF); /// Data length Hi
msg[5] = (byte)(len & 0xFF); /// Data length Lo
modbus.SendMessage(msg);
}
/// <summary>
/// Events: SetOpututsDone, Error
@@ -95,9 +117,9 @@ namespace TBF.BenchControl.Modbus.Easytherm
/// <param name="outValue">Reference to a variable for the pressure in Bar</param>
/// <param name="setOutputsDone">Event returned when SetOutput is done</param>
/// <returns>SetOutputsOp instance reference casted to IOperaton</returns>
public IOperation ReadTemperatureOp(ushort outValue, Event setOutputsDone)
public IOperation ReadTemperatureOp()
{
return new ReadTemperatureOp(this, outValue, setOutputsDone);
return new ReadTemperatureOp(this);
}
}
}
@@ -23,24 +23,25 @@ namespace TBF.BenchControl.Modbus.Easytherm
/// <param name="easytherm">Pressure meter reference</param>
/// <param name="pressure">Reference to the measured pressure variable, value is in bar</param>
/// <param name="eventDone">Event to be returned by Run() when completed OK</param>
public ReadTemperatureOp(Easytherm easytherm, ushort outValue, Event eventDone)
public ReadTemperatureOp(Easytherm easytherm, Event eventDone)
{
if (easytherm == null) throw new ArgumentNullException("easytherm");
this.easytherm = easytherm;
this.outValue = outValue;
//this.outValue = outValue;
this.eventDone = eventDone;
log.Debug(this.ToString());
}
public ReadTemperatureOp(Easytherm easytherm, ushort outValue)
: this(easytherm, outValue, Event.SetOutputsDone)
public ReadTemperatureOp(Easytherm easytherm)
: this(easytherm, Event.Done)
{
}
/// <summary>Start this operation</summary>
public void Start()
{
}
easytherm.GetSomething(0, 1);
}
/// <summary>Run this operation</summary>
public Event Run()
@@ -15,7 +15,7 @@ namespace TBF.BenchControl.Modbus.Easytherm
/// Set by the constructor
readonly Easytherm easytherm;
readonly Event eventDone;
ushort temperatureSetpoint;
float temperatureSetpoint;
/// <summary>
/// Events: PressureInDone, PressureOutDone or Error
@@ -23,7 +23,7 @@ namespace TBF.BenchControl.Modbus.Easytherm
/// <param name="easytherm">Pressure meter reference</param>
/// <param name="pressure">Reference to the measured pressure variable, value is in bar</param>
/// <param name="eventDone">Event to be returned by Run() when completed OK</param>
public SetTemperatureOp(Easytherm easytherm, ushort temperatureSetpoint, Event eventDone)
public SetTemperatureOp(Easytherm easytherm, float temperatureSetpoint, Event eventDone)
{
if (easytherm == null) throw new ArgumentNullException("easytherm");
this.easytherm = easytherm;
@@ -32,8 +32,8 @@ namespace TBF.BenchControl.Modbus.Easytherm
log.Debug(this.ToString());
}
public SetTemperatureOp(Easytherm easytherm, ushort outValue)
: this(easytherm, outValue, Event.SetOutputsDone)
public SetTemperatureOp(Easytherm easytherm, float temperatureSetpoint)
: this(easytherm, temperatureSetpoint, Event.SetOutputsDone)
{
}
@@ -12,6 +12,7 @@ using System.Timers;
using log4net;
using Config.Entities;
using TBF.BenchControl.Network.Telnet;
using TBF.Resources;
using WinSCP;
namespace TBF.BenchControl.Network.Camera.CLP1611
@@ -138,9 +139,9 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
if (CameraCfg.DebugLevel == DebugMode.Simulate) return;
/// Detect a camera
bool cameraDetected = DetectCamera(CameraCfg.HardwareAddress, true,
out ipAddress, out hardware, out revision, out serial, out sdCardVer);
if (CameraCfg.UseIPAddress) ipAddress = IPAddress.Parse(CameraCfg.IPAddressStr);
bool cameraDetected = DetectCamera(CameraCfg.HardwareAddress, ref ipAddress, CameraCfg.UseIPAddress, true,
out hardware, out revision, out serial, out sdCardVer);
if (CameraCfg.DebugLevel == DebugMode.AutoDetect)
@@ -149,7 +150,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
}
else if (!cameraDetected)
{
throw new Exception(string.Format("'{0}' with address {1} not detected", Name, CameraCfg.HardwareAddress));
throw new Exception(string.Format("{0}={1}", Strings.Address, CameraCfg.HardwareAddress));
}
if (cameraDetected)
@@ -231,8 +232,16 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
/// <param name="serial">Detected serial number</param>
/// <param name="sdCardVer">Detected OS image</param>
/// <returns>true when camera detected successfully</returns>
bool DetectCamera(int hwAddress, bool setDateTime, out IPAddress ipAddress, out string hardware, out string revision, out string serial, out string sdCardVer)
bool DetectCamera(int hwAddress, ref IPAddress ipAddress, bool useIpAddress, bool setDateTime, out string hardware, out string revision, out string serial, out string sdCardVer)
{
if (useIpAddress)
{
hardware = "hw";
revision = "rev";
serial = "s/n";
sdCardVer = "img";
}
for (int trials = 1; trials <= 3; trials++)
{
UdpClient udpClient = new UdpClient();
@@ -1,6 +1,8 @@
///
/// Copyright (c) 2017 Sensus Metering Systems
///
using System.Net;
using System.Net.Sockets;
using TBF.BenchControl.Generic;
using TBF.Resources;
@@ -14,6 +16,8 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
/// Serialized parameters
///
public int HardwareAddress;
public string IPAddressStr;
public bool UseIPAddress;
public bool DisplayTerminal;
public bool UseTestImages;
public int TestImagesCount;
@@ -29,6 +33,8 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
Factory = factory;
ParentName = "Network.Adapter";
HardwareAddress = 1;
IPAddressStr = "192.168.0.1";
UseIPAddress = false;
UseTestImages = false;
TestImagesCount = 0;
VlcExePath = "C:\\Program Files (x86)\\VideoLAN\\VLC\\";
@@ -36,9 +42,9 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
public string ToString(int i)
{
return string.Format("Name={0}, Address={1}, Terminal={2}, Use test images={3}, Parent={4}",
return string.Format("Name={0}, Addr.={1}, Terminal={2}, Use test images={3}, Parent={4}",
Name,
HardwareAddress,
UseIPAddress ? IPAddressStr.ToString() : HardwareAddress.ToString(),
DisplayTerminal ? Strings.yes : Strings.no,
UseTestImages ? Strings.yes : Strings.no,
ParentName);
@@ -2,6 +2,8 @@
/// Copyright (c) 2017 Sensus Metering Systems
///
using System;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
using log4net;
using TBF.BenchControl.Generic;
@@ -63,22 +65,28 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
nameTextBox.Text = config.Name;
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
hwAddressTextBox.Text = config.HardwareAddress.ToString();
displayTerminalCheckBox.Checked = config.DisplayTerminal;
ipAddressTextBox.Text = config.IPAddressStr;
useHWAddressRadioButton.Checked = !config.UseIPAddress;
useIPAddressRadioButton.Checked = config.UseIPAddress;
useTestImagesCheckBox.Checked = config.UseTestImages;
testImagesCountTextBox.Text = config.TestImagesCount.ToString();
vlcExePathTextBox.Text = config.VlcExePath;
}
displayTerminalCheckBox.Checked = config.DisplayTerminal;
}
public void Unlock()
{
nameTextBox.Enabled = true;
parentNameComboBox.Enabled = true;
hwAddressTextBox.Enabled = true;
displayTerminalCheckBox.Enabled = true;
ipAddressTextBox.Enabled = true;
useHWAddressRadioButton.Enabled = true;
useIPAddressRadioButton.Enabled = true;
useTestImagesCheckBox.Enabled = true;
testImagesCountTextBox.Enabled = true;
vlcExePathTextBox.Enabled = true;
}
displayTerminalCheckBox.Enabled = true;
}
public CfgUpdateFlags UpdateCfg()
{
@@ -88,9 +96,17 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
config.Name = nameTextBox.Text;
config.ParentName = parentNameComboBox.Text.Equals("---") ? string.Empty : parentNameComboBox.Text;
config.HardwareAddress = int.Parse(hwAddressTextBox.Text);
config.UseIPAddress = useIPAddressRadioButton.Checked;
if (config.UseIPAddress)
{
config.IPAddressStr = ipAddressTextBox.Text;
}
else
{
config.HardwareAddress = int.Parse(hwAddressTextBox.Text);
}
config.DisplayTerminal = displayTerminalCheckBox.Checked;
config.UseTestImages = useTestImagesCheckBox.Checked;
config.UseTestImages = useTestImagesCheckBox.Checked;
if (config.UseTestImages)
{
config.TestImagesCount = int.Parse(testImagesCountTextBox.Text);
@@ -110,11 +126,25 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "Invalid 'Parent Name'";
}
if (!int.TryParse(hwAddressTextBox.Text, out dummy) || dummy < 0 || dummy > 63)
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "'HW Address' should be between 0 and 63";
}
if (useIPAddressRadioButton.Checked)
{
IPAddress ipAddress;
if (!IPAddress.TryParse(ipAddressTextBox.Text, out ipAddress))
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "Wrong 'IP Address'";
}
}
else
{
if (!int.TryParse(hwAddressTextBox.Text, out dummy) || dummy < 0 || dummy > 63)
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "'HW Address' should be between 0 and 63";
}
}
if (useTestImagesCheckBox.Checked &&
(!int.TryParse(testImagesCountTextBox.Text, out dummy) || dummy < 1 || dummy > 50))
{
@@ -31,167 +31,228 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
/// </summary>
private void InitializeComponent()
{
this.hwAddressTextBox = new System.Windows.Forms.TextBox();
this.bitPositionLabel = new System.Windows.Forms.Label();
this.parentNameLabel = new System.Windows.Forms.Label();
this.nameTextBox = new System.Windows.Forms.TextBox();
this.nameLabel = new System.Windows.Forms.Label();
this.classNameLabel = new System.Windows.Forms.Label();
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
this.displayTerminalCheckBox = new System.Windows.Forms.CheckBox();
this.useTestImagesCheckBox = new System.Windows.Forms.CheckBox();
this.testImagesCountTextBox = new System.Windows.Forms.TextBox();
this.testImagesCountLabel = new System.Windows.Forms.Label();
this.vlcExePathTextBox = new System.Windows.Forms.TextBox();
this.vlcExePathLabel = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// hwAddressTextBox
//
this.hwAddressTextBox.Enabled = false;
this.hwAddressTextBox.Location = new System.Drawing.Point(122, 99);
this.hwAddressTextBox.Name = "hwAddressTextBox";
this.hwAddressTextBox.Size = new System.Drawing.Size(46, 20);
this.hwAddressTextBox.TabIndex = 6;
//
// bitPositionLabel
//
this.bitPositionLabel.AutoSize = true;
this.bitPositionLabel.Location = new System.Drawing.Point(36, 102);
this.bitPositionLabel.Name = "bitPositionLabel";
this.bitPositionLabel.Size = new System.Drawing.Size(67, 13);
this.bitPositionLabel.TabIndex = 5;
this.bitPositionLabel.Text = "HW Address";
//
// parentNameLabel
//
this.parentNameLabel.AutoSize = true;
this.parentNameLabel.Location = new System.Drawing.Point(36, 76);
this.parentNameLabel.Name = "parentNameLabel";
this.parentNameLabel.Size = new System.Drawing.Size(69, 13);
this.parentNameLabel.TabIndex = 3;
this.parentNameLabel.Text = "Parent Name";
//
// nameTextBox
//
this.nameTextBox.Enabled = false;
this.nameTextBox.Location = new System.Drawing.Point(122, 47);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
this.nameTextBox.TabIndex = 2;
//
// nameLabel
//
this.nameLabel.AutoSize = true;
this.nameLabel.Location = new System.Drawing.Point(36, 50);
this.nameLabel.Name = "nameLabel";
this.nameLabel.Size = new System.Drawing.Size(35, 13);
this.nameLabel.TabIndex = 1;
this.nameLabel.Text = "Name";
//
// classNameLabel
//
this.classNameLabel.AutoSize = true;
this.classNameLabel.Location = new System.Drawing.Point(119, 21);
this.classNameLabel.Name = "classNameLabel";
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
this.classNameLabel.TabIndex = 0;
this.classNameLabel.Text = "ComonentName";
//
// parentNameComboBox
//
this.parentNameComboBox.Enabled = false;
this.parentNameComboBox.FormattingEnabled = true;
this.parentNameComboBox.Location = new System.Drawing.Point(122, 73);
this.parentNameComboBox.Name = "parentNameComboBox";
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
this.parentNameComboBox.TabIndex = 4;
//
// displayTerminalCheckBox
//
this.displayTerminalCheckBox.AutoSize = true;
this.displayTerminalCheckBox.Enabled = false;
this.displayTerminalCheckBox.Location = new System.Drawing.Point(122, 128);
this.displayTerminalCheckBox.Name = "displayTerminalCheckBox";
this.displayTerminalCheckBox.Size = new System.Drawing.Size(99, 17);
this.displayTerminalCheckBox.TabIndex = 13;
this.displayTerminalCheckBox.Text = "Display terminal";
this.displayTerminalCheckBox.UseVisualStyleBackColor = true;
//
// useTestImagesCheckBox
//
this.useTestImagesCheckBox.AutoSize = true;
this.useTestImagesCheckBox.Enabled = false;
this.useTestImagesCheckBox.Location = new System.Drawing.Point(122, 151);
this.useTestImagesCheckBox.Name = "useTestImagesCheckBox";
this.useTestImagesCheckBox.Size = new System.Drawing.Size(101, 17);
this.useTestImagesCheckBox.TabIndex = 14;
this.useTestImagesCheckBox.Text = "Use test images";
this.useTestImagesCheckBox.UseVisualStyleBackColor = true;
//
// testImagesCountTextBox
//
this.testImagesCountTextBox.Enabled = false;
this.testImagesCountTextBox.Location = new System.Drawing.Point(122, 172);
this.testImagesCountTextBox.Name = "testImagesCountTextBox";
this.testImagesCountTextBox.Size = new System.Drawing.Size(46, 20);
this.testImagesCountTextBox.TabIndex = 16;
//
// testImagesCountLabel
//
this.testImagesCountLabel.AutoSize = true;
this.testImagesCountLabel.Location = new System.Drawing.Point(36, 175);
this.testImagesCountLabel.Name = "testImagesCountLabel";
this.testImagesCountLabel.Size = new System.Drawing.Size(71, 13);
this.testImagesCountLabel.TabIndex = 15;
this.testImagesCountLabel.Text = "Images count";
//
// vlcExePathTextBox
//
this.vlcExePathTextBox.Enabled = false;
this.vlcExePathTextBox.Location = new System.Drawing.Point(122, 198);
this.vlcExePathTextBox.Name = "vlcExePathTextBox";
this.vlcExePathTextBox.Size = new System.Drawing.Size(277, 20);
this.vlcExePathTextBox.TabIndex = 18;
//
// vlcExePathLabel
//
this.vlcExePathLabel.AutoSize = true;
this.vlcExePathLabel.Location = new System.Drawing.Point(36, 201);
this.vlcExePathLabel.Name = "vlcExePathLabel";
this.vlcExePathLabel.Size = new System.Drawing.Size(65, 13);
this.vlcExePathLabel.TabIndex = 17;
this.vlcExePathLabel.Text = "vlc.exe path";
//
// CameraCfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.vlcExePathTextBox);
this.Controls.Add(this.vlcExePathLabel);
this.Controls.Add(this.testImagesCountTextBox);
this.Controls.Add(this.testImagesCountLabel);
this.Controls.Add(this.useTestImagesCheckBox);
this.Controls.Add(this.displayTerminalCheckBox);
this.Controls.Add(this.parentNameComboBox);
this.Controls.Add(this.hwAddressTextBox);
this.Controls.Add(this.bitPositionLabel);
this.Controls.Add(this.parentNameLabel);
this.Controls.Add(this.nameTextBox);
this.Controls.Add(this.nameLabel);
this.Controls.Add(this.classNameLabel);
this.Name = "CameraCfgCtrl";
this.Size = new System.Drawing.Size(402, 254);
this.Load += new System.EventHandler(this.PumpCfgCtrl_Load);
this.ResumeLayout(false);
this.PerformLayout();
this.hwAddressTextBox = new System.Windows.Forms.TextBox();
this.hwAddressLabel = new System.Windows.Forms.Label();
this.parentNameLabel = new System.Windows.Forms.Label();
this.nameTextBox = new System.Windows.Forms.TextBox();
this.nameLabel = new System.Windows.Forms.Label();
this.classNameLabel = new System.Windows.Forms.Label();
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
this.displayTerminalCheckBox = new System.Windows.Forms.CheckBox();
this.useTestImagesCheckBox = new System.Windows.Forms.CheckBox();
this.testImagesCountTextBox = new System.Windows.Forms.TextBox();
this.testImagesCountLabel = new System.Windows.Forms.Label();
this.vlcExePathTextBox = new System.Windows.Forms.TextBox();
this.vlcExePathLabel = new System.Windows.Forms.Label();
this.ipAddressTextBox = new System.Windows.Forms.TextBox();
this.ipAddressLabel = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.useHWAddressRadioButton = new System.Windows.Forms.RadioButton();
this.useIPAddressRadioButton = new System.Windows.Forms.RadioButton();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// hwAddressTextBox
//
this.hwAddressTextBox.Enabled = false;
this.hwAddressTextBox.Location = new System.Drawing.Point(92, 19);
this.hwAddressTextBox.Name = "hwAddressTextBox";
this.hwAddressTextBox.Size = new System.Drawing.Size(130, 20);
this.hwAddressTextBox.TabIndex = 6;
//
// hwAddressLabel
//
this.hwAddressLabel.AutoSize = true;
this.hwAddressLabel.Location = new System.Drawing.Point(6, 22);
this.hwAddressLabel.Name = "hwAddressLabel";
this.hwAddressLabel.Size = new System.Drawing.Size(69, 13);
this.hwAddressLabel.TabIndex = 5;
this.hwAddressLabel.Text = "DIP switches";
//
// parentNameLabel
//
this.parentNameLabel.AutoSize = true;
this.parentNameLabel.Location = new System.Drawing.Point(28, 68);
this.parentNameLabel.Name = "parentNameLabel";
this.parentNameLabel.Size = new System.Drawing.Size(67, 13);
this.parentNameLabel.TabIndex = 3;
this.parentNameLabel.Text = "Parent name";
//
// nameTextBox
//
this.nameTextBox.Enabled = false;
this.nameTextBox.Location = new System.Drawing.Point(114, 41);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
this.nameTextBox.TabIndex = 2;
//
// nameLabel
//
this.nameLabel.AutoSize = true;
this.nameLabel.Location = new System.Drawing.Point(28, 44);
this.nameLabel.Name = "nameLabel";
this.nameLabel.Size = new System.Drawing.Size(35, 13);
this.nameLabel.TabIndex = 1;
this.nameLabel.Text = "Name";
//
// classNameLabel
//
this.classNameLabel.AutoSize = true;
this.classNameLabel.Location = new System.Drawing.Point(111, 17);
this.classNameLabel.Name = "classNameLabel";
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
this.classNameLabel.TabIndex = 0;
this.classNameLabel.Text = "ComonentName";
//
// parentNameComboBox
//
this.parentNameComboBox.Enabled = false;
this.parentNameComboBox.FormattingEnabled = true;
this.parentNameComboBox.Location = new System.Drawing.Point(114, 65);
this.parentNameComboBox.Name = "parentNameComboBox";
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
this.parentNameComboBox.TabIndex = 4;
//
// displayTerminalCheckBox
//
this.displayTerminalCheckBox.AutoSize = true;
this.displayTerminalCheckBox.Enabled = false;
this.displayTerminalCheckBox.Location = new System.Drawing.Point(115, 223);
this.displayTerminalCheckBox.Name = "displayTerminalCheckBox";
this.displayTerminalCheckBox.Size = new System.Drawing.Size(99, 17);
this.displayTerminalCheckBox.TabIndex = 13;
this.displayTerminalCheckBox.Text = "Display terminal";
this.displayTerminalCheckBox.UseVisualStyleBackColor = true;
//
// useTestImagesCheckBox
//
this.useTestImagesCheckBox.AutoSize = true;
this.useTestImagesCheckBox.Enabled = false;
this.useTestImagesCheckBox.Location = new System.Drawing.Point(252, 174);
this.useTestImagesCheckBox.Name = "useTestImagesCheckBox";
this.useTestImagesCheckBox.Size = new System.Drawing.Size(101, 17);
this.useTestImagesCheckBox.TabIndex = 14;
this.useTestImagesCheckBox.Text = "Use test images";
this.useTestImagesCheckBox.UseVisualStyleBackColor = true;
//
// testImagesCountTextBox
//
this.testImagesCountTextBox.Enabled = false;
this.testImagesCountTextBox.Location = new System.Drawing.Point(114, 172);
this.testImagesCountTextBox.Name = "testImagesCountTextBox";
this.testImagesCountTextBox.Size = new System.Drawing.Size(46, 20);
this.testImagesCountTextBox.TabIndex = 16;
//
// testImagesCountLabel
//
this.testImagesCountLabel.AutoSize = true;
this.testImagesCountLabel.Location = new System.Drawing.Point(28, 175);
this.testImagesCountLabel.Name = "testImagesCountLabel";
this.testImagesCountLabel.Size = new System.Drawing.Size(71, 13);
this.testImagesCountLabel.TabIndex = 15;
this.testImagesCountLabel.Text = "Images count";
//
// vlcExePathTextBox
//
this.vlcExePathTextBox.Enabled = false;
this.vlcExePathTextBox.Location = new System.Drawing.Point(114, 196);
this.vlcExePathTextBox.Name = "vlcExePathTextBox";
this.vlcExePathTextBox.Size = new System.Drawing.Size(288, 20);
this.vlcExePathTextBox.TabIndex = 18;
//
// vlcExePathLabel
//
this.vlcExePathLabel.AutoSize = true;
this.vlcExePathLabel.Location = new System.Drawing.Point(28, 199);
this.vlcExePathLabel.Name = "vlcExePathLabel";
this.vlcExePathLabel.Size = new System.Drawing.Size(65, 13);
this.vlcExePathLabel.TabIndex = 17;
this.vlcExePathLabel.Text = "vlc.exe path";
//
// ipAddressTextBox
//
this.ipAddressTextBox.Enabled = false;
this.ipAddressTextBox.Location = new System.Drawing.Point(92, 43);
this.ipAddressTextBox.Name = "ipAddressTextBox";
this.ipAddressTextBox.Size = new System.Drawing.Size(130, 20);
this.ipAddressTextBox.TabIndex = 20;
//
// ipAddressLabel
//
this.ipAddressLabel.AutoSize = true;
this.ipAddressLabel.Location = new System.Drawing.Point(6, 46);
this.ipAddressLabel.Name = "ipAddressLabel";
this.ipAddressLabel.Size = new System.Drawing.Size(57, 13);
this.ipAddressLabel.TabIndex = 19;
this.ipAddressLabel.Text = "IP address";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.useIPAddressRadioButton);
this.groupBox1.Controls.Add(this.useHWAddressRadioButton);
this.groupBox1.Controls.Add(this.hwAddressTextBox);
this.groupBox1.Controls.Add(this.ipAddressTextBox);
this.groupBox1.Controls.Add(this.hwAddressLabel);
this.groupBox1.Controls.Add(this.ipAddressLabel);
this.groupBox1.Location = new System.Drawing.Point(22, 92);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(360, 72);
this.groupBox1.TabIndex = 21;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Camera identification";
//
// useHWAddressRadioButton
//
this.useHWAddressRadioButton.AutoSize = true;
this.useHWAddressRadioButton.Location = new System.Drawing.Point(230, 20);
this.useHWAddressRadioButton.Name = "useHWAddressRadioButton";
this.useHWAddressRadioButton.Size = new System.Drawing.Size(124, 17);
this.useHWAddressRadioButton.TabIndex = 21;
this.useHWAddressRadioButton.TabStop = true;
this.useHWAddressRadioButton.Text = "Use DIP sw. address";
this.useHWAddressRadioButton.UseVisualStyleBackColor = true;
//
// useIPAddressRadioButton
//
this.useIPAddressRadioButton.AutoSize = true;
this.useIPAddressRadioButton.Location = new System.Drawing.Point(230, 44);
this.useIPAddressRadioButton.Name = "useIPAddressRadioButton";
this.useIPAddressRadioButton.Size = new System.Drawing.Size(97, 17);
this.useIPAddressRadioButton.TabIndex = 22;
this.useIPAddressRadioButton.TabStop = true;
this.useIPAddressRadioButton.Text = "Use IP address";
this.useIPAddressRadioButton.UseVisualStyleBackColor = true;
//
// CameraCfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.vlcExePathTextBox);
this.Controls.Add(this.vlcExePathLabel);
this.Controls.Add(this.testImagesCountTextBox);
this.Controls.Add(this.testImagesCountLabel);
this.Controls.Add(this.useTestImagesCheckBox);
this.Controls.Add(this.displayTerminalCheckBox);
this.Controls.Add(this.parentNameComboBox);
this.Controls.Add(this.parentNameLabel);
this.Controls.Add(this.nameTextBox);
this.Controls.Add(this.nameLabel);
this.Controls.Add(this.classNameLabel);
this.Name = "CameraCfgCtrl";
this.Size = new System.Drawing.Size(402, 254);
this.Load += new System.EventHandler(this.PumpCfgCtrl_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox hwAddressTextBox;
private System.Windows.Forms.Label bitPositionLabel;
private System.Windows.Forms.Label hwAddressLabel;
private System.Windows.Forms.Label parentNameLabel;
private System.Windows.Forms.TextBox nameTextBox;
private System.Windows.Forms.Label nameLabel;
@@ -203,5 +264,10 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
private System.Windows.Forms.Label testImagesCountLabel;
private System.Windows.Forms.TextBox vlcExePathTextBox;
private System.Windows.Forms.Label vlcExePathLabel;
private System.Windows.Forms.TextBox ipAddressTextBox;
private System.Windows.Forms.Label ipAddressLabel;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RadioButton useIPAddressRadioButton;
private System.Windows.Forms.RadioButton useHWAddressRadioButton;
}
}
@@ -82,7 +82,6 @@ namespace TBF.BenchControl.Operations
this.Name = "AskYesNoForm";
this.Text = "Question";
this.TopMost = true;
this.Load += new System.EventHandler(this.AskYesNoForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
@@ -1,7 +1,8 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Drawing;
using System.Windows.Forms;
using TBF.Resources;
@@ -10,20 +11,36 @@ namespace TBF.BenchControl.Operations
public partial class AskYesNoForm : Form
{
public string Question;
/// One of the following two variables set to 'true' when the form closes
public bool CompletedYes;
public bool CompletedNo;
public AskYesNoForm()
{
InitializeComponent();
Localize();
questionLabel.Text = Question;
float textWidth = Graphics.FromImage(new Bitmap(1, 1)).MeasureString(questionLabel.Text, questionLabel.Font).Width;
int rqrdFormWidth = (int)textWidth + 80; /// Form width calculated from the text width
if (rqrdFormWidth > Width)
{
int shift = (rqrdFormWidth - Width) / 2;
Width = rqrdFormWidth;
yesButton.Left += shift;
noButton.Left += shift;
}
}
private void AskYesNoForm_Load(object sender, EventArgs e)
void Localize()
{
Text = Strings.Question;
questionLabel.Text = Question;
yesButton.Text = Strings.YesBtn;
noButton.Text = Strings.NoBtn;
Text = Strings.Question;
}
private void yesButton_Click(object sender, EventArgs e)
@@ -68,7 +68,6 @@ namespace TBF.BenchControl.Operations
this.Name = "MessageBoxForm";
this.Text = "Message";
this.TopMost = true;
this.Load += new System.EventHandler(this.MessageBoxForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
@@ -1,7 +1,8 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Drawing;
using System.Windows.Forms;
using TBF.Resources;
@@ -11,22 +12,36 @@ namespace TBF.BenchControl.Operations
{
public string Message;
/// Is set to 'true' when the form closes
/// Set to 'true' when the form closes
public bool Completed { get { return completed; } }
bool completed;
public MessageBoxForm()
{
InitializeComponent();
Localize();
messageLabel.Text = Message;
float textWidth = Graphics.FromImage(new Bitmap(1, 1)).MeasureString(messageLabel.Text, messageLabel.Font).Width;
int rqrdFormWidth = (int)textWidth + 80; /// Form width calculated from the text width
if (rqrdFormWidth > Width)
{
int shift = (rqrdFormWidth - Width) / 2;
Width = rqrdFormWidth;
okButton.Left += shift;
}
completed = false;
StartForceCloseHandler();
}
private void MessageBoxForm_Load(object sender, EventArgs e)
void Localize()
{
Text = Strings.Message;
messageLabel.Text = Message;
okButton.Text = Strings.OkBtnText;
okButton.Text = Strings.OkBtnText;
}
private void okButton_Click(object sender, EventArgs e)
@@ -296,7 +296,7 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced
/// Write water meter number and s/n
#if BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BADGER_VELKA_TRAT
wr.Write(string.Format("Water Meter {0} s/n: {1}", wm.WMPosition, wm.SerialNr));
wr.Write(string.Format("Water meter {0} s/n: {1}", wm.WMPosition, wm.SerialNr));
#else
wr.Write(string.Format(Strings.Water_Meter_nr, wm.WMPosition));
if (!wm.Compound())
@@ -1,389 +0,0 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Printing;
using Config.Entities;
using TBF.BenchControl;
namespace TBF.BenchControl.ResultsPrinters.Munich
{
public class MunichPrintDocument : PrintDocument
{
const string FontFamilyName = "Arial"; //"Times New Roman";
const int SpacingOne = 18;
const int SpacingOneAndHalf = (3 * SpacingOne) / 2;
const int TitleX = 240;
const int TitleY = 180; /// Depends on the size of the header
const int FirstLineNr = 14; /// Depends on the size of the header
const int Tab1 = 80; /// Positions of columns above the table
const int Tab2 = 240;
const int Tab3 = 430;
const int Tab4 = 590;
const int BorderW = 1; /// Table border line width
const int MarginTop = 7; /// Margins of the text from table lines
const int MarginLeft = 4; /// Margins of the text from table lines
///
/// Data to print
///
readonly string docVersion;
readonly Results.Entities.WaterMeter wm;
string zaehlertyp;
string pruefvorlage;
readonly IList<Results.Entities.MeterTestRslt> results;
readonly int resultsCount;
readonly bool compound; /// true when MetersKind is MetersKind.Combined
readonly int secondTableOffset; /// Calculated in the constructor
/// Top coordinate of the table
int top;
/// <summary>
/// Property variable for the Font the user wishes to use
/// </summary>
Font font;
Font boldFont;
Font fontTitle;
/// <summary>
/// Constructor
/// </summary>
/// <param name="textToPrint">Text to be printed</param>
public MunichPrintDocument(string docVersion,
Results.Entities.WaterMeter wm,
PageOrientation pageOrientation)
{
this.docVersion = docVersion;
this.wm = wm;
compound = wm.Compound();
string[] info = wm.ProductName().Split(new char[] { ';' });
if (info.Length >= 2)
{
pruefvorlage = info[0];
zaehlertyp = info[1];
}
else if (info.Length == 1)
{
pruefvorlage = info[0];
zaehlertyp = compound ? "Verbundzähler" : "Einzelzähler";
}
else
{
pruefvorlage = wm.ProcedureName();
zaehlertyp = compound ? "Verbundzähler" : "Einzelzähler";
}
results = wm.MeterTestRslts;
this.resultsCount = compound ? (results.Count / 3) : results.Count;
int resultsCount = wm.MeterTestRslts.Count;
if (compound) resultsCount /= 3;
secondTableOffset = (resultsCount + 2) * SpacingOneAndHalf;
DefaultPageSettings.Landscape = (pageOrientation == PageOrientation.Landscape);
}
/// <summary>
/// Override the default onbeginPrint method of the PrintDocument Object.
/// </summary>
/// <param name=e></param>
/// <remarks></remarks>
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
{
base.OnBeginPrint(e);
if (font == null) { font = new Font(FontFamilyName, 10, FontStyle.Regular); }
if (boldFont == null) { boldFont = new Font(FontFamilyName, 10, FontStyle.Bold); }
if (fontTitle == null) { fontTitle = new Font(FontFamilyName, 24, FontStyle.Bold); }
}
/// <summary>
/// Override the default OnPrintPage method of the PrintDocument.
/// </summary>
/// <param name=e></param>
/// <remarks>This provides the print logic for our document</remarks>
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
{
// Run base code
base.OnPrintPage(e);
e.Graphics.DrawImageUnscaled(Properties.Resources.Headpic, 0, 0);
/// Set print area size and margins (in dots using 80 dpi)
int printHeight = base.DefaultPageSettings.PaperSize.Height - base.DefaultPageSettings.Margins.Top - base.DefaultPageSettings.Margins.Bottom;
int printWidth = base.DefaultPageSettings.PaperSize.Width - base.DefaultPageSettings.Margins.Left - base.DefaultPageSettings.Margins.Right;
int leftMargin = base.DefaultPageSettings.Margins.Left; /// X
int topMargin = base.DefaultPageSettings.Margins.Top; /// Y
/// Check if the user selected to print in Landscape mode
/// if they did then we need to swap height/width parameters
if (base.DefaultPageSettings.Landscape)
{
int tmp = printHeight;
printHeight = printWidth;
printWidth = tmp;
}
int x = leftMargin;
int y = topMargin;
/// Use the StringFormat class for the text layout of our document
StringFormat format = new StringFormat(StringFormatFlags.LineLimit);
RectangleF printArea = new RectangleF(TitleX, TitleY, 667, 50);
e.Graphics.DrawString(wm.Batch.ProtocolTitle, this.fontTitle, Brushes.Black, printArea);
int lineNr = FirstLineNr;
PrintAt(e, Tab1, lineNr * SpacingOne, docVersion);
lineNr++;
PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Prüfstand Nr :");
PrintBoldAt(e, Tab2, lineNr * SpacingOne, wm.BenchId().ToString());
PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Datum :");
PrintBoldAt(e, Tab4, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d"));
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Zählertyp :");
PrintAt(e, Tab2, lineNr * SpacingOne, zaehlertyp);
PrintAt(e, Tab3, lineNr * SpacingOne, "Eichjahr :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.YearOfProduction.ToString());
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Prüfvorlage :");
PrintAt(e, Tab2, lineNr * SpacingOne, pruefvorlage);
lineNr += 2;
if (compound)
{
PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Hauptzahler");
PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Nebenzahler");
lineNr++;
}
PrintAt(e, Tab1, lineNr * SpacingOne, "Hersteller :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Producer());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Hersteller :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.ProducerAux());
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Seriennummer :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.SerialNr);
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Seriennummer :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.SerialNrAux);
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qn :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Q3_Qn().ToString());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Qn :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.Q3_Qn_Aux().ToString());
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Zulassungszeichen :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.ApprovalInfo());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Zulassungszeichen :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.ApprovalInfoAux());
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Metr. klasse :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.MetrologicalClass());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Metr. klasse :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.MetrologicalClassAux());
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Stand :");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.EndState);
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Stand :");
PrintAt(e, Tab4, lineNr * SpacingOne, wm.EndStateAux);
lineNr += 2;
PrintAt(e, Tab1, lineNr * SpacingOne, "Umschaltpunkte :");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qsteig");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QRise).ToString("F1") + " l/h");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qfall");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QFall).ToString("F1") + " l/h");
}
lineNr += 2;
top = SpacingOne * lineNr;
PrintTable(e);
DrawTable(e);
lineNr += (secondTableOffset * 2) / SpacingOne;
PrintAt(e, Tab1, lineNr * SpacingOne, "Temperatur");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientTempAve().ToString("F1") + " \x00b0C");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Feuchtigkeit");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientHumiAve().ToString("F0") + " %");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Luftdruck");
PrintAt(e, Tab2, lineNr * SpacingOne, Config.Units.ConvertTo(Config.Unit.mbar, wm.Batch.AmbientPressAve()).ToString("F0") + " mbar");
lineNr++;
PrintAt(e, Tab3, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d"));
lineNr ++;
PrintAt(e, Tab3, lineNr * SpacingOne, "Datum");
PrintAt(e, Tab4, lineNr * SpacingOne, "Unterschrift");
}
/// <summary>
/// Print table texts.
/// </summary>
void PrintTable(System.Drawing.Printing.PrintPageEventArgs e)
{
PrintAt(e, FromTest(-1, -1), "Prüflauf");
PrintAt(e, FromTest(-1, 0), "Q [l/h]");
PrintAt(e, FromTest(-1, 1), "Prüf-Vol.[l]");
PrintAt(e, FromTest(-1, 2), compound ? "HZ-Vol.[l]" : "Z-Vol.[l]");
PrintAt(e, FromTest(-1, 3), compound ? "NZ-Vol.[l]" : "-");
PrintAt(e, FromTest(-1, 4), "Fehler [%]");
PrintAt(e, FromTest(-1, 5), "Ergebnis");
PrintAt(e, FromTest(-1, 6), "Q [l/h]");
PrintAt(e, FromTest(-1, 7), "Temperatur");
PrintAt(e, FromTest(-1, 8), "Dichte");
PrintAt(e, FromTest(-1, 9), "Prüfzeit");
PrintAt(e, FromTest(-1, 10), "Druck Eing.");
PrintAt(e, FromTest(-1, 11), "Druck Ausg.");
int rowCnt = 0;
foreach (var mtr in wm.MeterTestRslts)
{
if (!compound || mtr.CompoundMeterId == (byte)CompoundMeterId.Compound)
{
Point p = FromTest(rowCnt, -1);
PrintAt(e, p.X, p.Y, mtr.Name());
PrintAt(e, p.X, p.Y + (resultsCount + 2) * SpacingOneAndHalf, mtr.Name());
PrintAt(e, FromTest(rowCnt, 0), mtr.TestRslt.FlowMass.ToString("F1"));
PrintAt(e, FromTest(rowCnt, 1), mtr.TestRslt.VolumeCTV.ToString("F2"));
if (compound)
{
Results.Entities.MeterTestRslt mainMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundMain);
Results.Entities.MeterTestRslt auxMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundAux);
PrintAt(e, FromTest(rowCnt, 2), mainMtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 3), auxMtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 4), mtr.Error.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 5), mtr.Passed ? "iO" : "NiO");
}
else
{
PrintAt(e, FromTest(rowCnt, 2), mtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 3), "-");
PrintAt(e, FromTest(rowCnt, 4), mtr.Error.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 5), mtr.Passed ? "iO" : "NiO");
}
PrintAt(e, FromTest(rowCnt, 6), mtr.TestRslt.FlowMass.ToString("F1"));
PrintAt(e, FromTest(rowCnt, 7), mtr.TestRslt.TempDownMean.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 8), mtr.TestRslt.DensityDiv.ToString("F2"));
PrintAt(e, FromTest(rowCnt, 9), mtr.TestTime.ToString("F1"));
PrintAt(e, FromTest(rowCnt, 10), Config.Units.ConvertTo(Config.Unit.bar, mtr.TestRslt.PressUpMean).ToString("F3"));
PrintAt(e, FromTest(rowCnt, 11), Config.Units.ConvertTo(Config.Unit.bar, mtr.TestRslt.PressDownMean).ToString("F3"));
rowCnt++;
}
}
}
/// <summary>
/// Draw table lines.
/// </summary>
void DrawTable(System.Drawing.Printing.PrintPageEventArgs e)
{
int mid = top + SpacingOneAndHalf;
int bot = top + (resultsCount + 1) * SpacingOneAndHalf;
int top2 = top + secondTableOffset;
int mid2 = mid + secondTableOffset;
int bot2 = bot + secondTableOffset;
// Horizontal lines
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, top), new Point(747, top));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, mid), new Point(747, mid));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, bot), new Point(747, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, top2), new Point(747, top2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, mid2), new Point(747, mid2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, bot2), new Point(747, bot2));
// Vertical lines
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point( 80, top), new Point( 80, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(267, top), new Point(267, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(347, top), new Point(347, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(427, top), new Point(427, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(507, top), new Point(507, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(587, top), new Point(587, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(667, top), new Point(667, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(747, top), new Point(747, bot));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point( 80, top2), new Point( 80, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(267, top2), new Point(267, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(347, top2), new Point(347, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(427, top2), new Point(427, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(507, top2), new Point(507, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(587, top2), new Point(587, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(667, top2), new Point(667, bot2));
e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(747, top2), new Point(747, bot2));
}
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
{
PrintAt(e, p.X, p.Y, text);
}
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text)
{
RectangleF printArea = new RectangleF(x, y, 667, SpacingOne);
e.Graphics.DrawString(text, this.font, Brushes.Black, printArea);
}
void PrintBoldAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
{
PrintBoldAt(e, p.X, p.Y, text);
}
void PrintBoldAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text)
{
RectangleF printArea = new RectangleF(x, y, 667, SpacingOne);
e.Graphics.DrawString(text, this.boldFont, Brushes.Black, printArea);
}
Point FromTest(int testNr, int parNr)
{
const int NrParamsInOneTableRow = 6;
int x = 267 + (parNr % NrParamsInOneTableRow) * 80 + MarginLeft;
int y = top + SpacingOneAndHalf + MarginTop + testNr * SpacingOneAndHalf
+ ((parNr >= NrParamsInOneTableRow) ? secondTableOffset : 0);
if (parNr < 0) x = 80 + MarginLeft; /// When parNr == -1 return the left column x coordinate
return new Point(x, y);
}
}
}
@@ -54,7 +54,7 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
{
foreach (var wm in batch.WaterMeters)
{
new MunichPrintDocument(printerCfg.Version, wm, printerCfg.PageOrientation).Print();
new Results.Output.Printers.Munich.MunichPrintDocument(printerCfg.Version, wm, printerCfg.PageOrientation).Print();
}
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -32,7 +32,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.Compound
public IList<Event> Execute(Test test, bool outerLoopMode, int outerLoopCounter)
{
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, true, null);
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, true, null, DebugLevel);
}
}
}
@@ -28,7 +28,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
/// </returns>
public IList<Event> Execute(Config.Entities.Test test, bool outerLoopMode, int outerLoopCounter,
bool compound,
HeatMeters.TestParams heatMetersTestParams)
HeatMeters.TestParams heatMetersTestParams,
Config.Entities.DebugMode debugLevel)
{
Elde.ControlBoardDev cBrd = StateMachine.ControlBoard;
@@ -161,6 +162,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
set_flow:
if (debugLevel == Config.Entities.DebugMode.Simulate) goto flow_set;
//------------------------------------------------
Bridge.OnActivity(this, Strings.Setting_the_flow);
//------------------------------------------------
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -35,7 +35,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters
public IList<Event> Execute(Test test, bool outerLoopMode, int outerLoopCounter)
{
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, false, testMethodCfg.TestParams);
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, false, testMethodCfg.TestParams, DebugLevel);
}
}
}
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -32,7 +32,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.Single
public IList<Event> Execute(Test test, bool outerLoopMode, int outerLoopCounter)
{
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, false, null);
return (new FixedStartMassCollectionSeq()).Execute(test, outerLoopMode, outerLoopCounter, false, null, DebugLevel);
}
}
}
+58 -56
View File
@@ -31,62 +31,64 @@ namespace TBF
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ComponentsManagerDlg));
this.splitContainer = new System.Windows.Forms.SplitContainer();
this.listViewEx = new Results.Forms.ListViewEx();
this.sharedButtons = new TBF.UiControls.SharedButtons();
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
this.splitContainer.Panel1.SuspendLayout();
this.splitContainer.Panel2.SuspendLayout();
this.splitContainer.SuspendLayout();
this.SuspendLayout();
//
// splitContainer
//
resources.ApplyResources(this.splitContainer, "splitContainer");
this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer.Name = "splitContainer";
//
// splitContainer.Panel1
//
this.splitContainer.Panel1.Controls.Add(this.listViewEx);
//
// splitContainer.Panel2
//
this.splitContainer.Panel2.Controls.Add(this.sharedButtons);
//
// listViewEx
//
this.listViewEx.AllowColumnReorder = true;
resources.ApplyResources(this.listViewEx, "listViewEx");
this.listViewEx.DoubleClickActivation = false;
this.listViewEx.FullRowSelect = true;
this.listViewEx.GridLines = true;
this.listViewEx.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listViewEx.Name = "listViewEx";
this.listViewEx.UseCompatibleStateImageBehavior = false;
this.listViewEx.View = System.Windows.Forms.View.Details;
this.listViewEx.SelectedIndexChanged += new System.EventHandler(this.componentsListView_SelectedIndexChanged);
this.listViewEx.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listViewEx_MouseDoubleClick);
//
// sharedButtons
//
resources.ApplyResources(this.sharedButtons, "sharedButtons");
this.sharedButtons.Name = "sharedButtons";
//
// ComponentsManagerDlg
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.splitContainer);
this.Name = "ComponentsManagerDlg";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ComponentsManagerDlg_FormClosing);
this.Load += new System.EventHandler(this.ComponentsManagerDlg_Load);
this.splitContainer.Panel1.ResumeLayout(false);
this.splitContainer.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
this.splitContainer.ResumeLayout(false);
this.ResumeLayout(false);
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ComponentsManagerDlg));
this.splitContainer = new System.Windows.Forms.SplitContainer();
this.listViewEx = new Results.Forms.ListViewEx();
this.sharedButtons = new TBF.UiControls.SharedButtons();
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
this.splitContainer.Panel1.SuspendLayout();
this.splitContainer.Panel2.SuspendLayout();
this.splitContainer.SuspendLayout();
this.SuspendLayout();
//
// splitContainer
//
resources.ApplyResources(this.splitContainer, "splitContainer");
this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer.Name = "splitContainer";
//
// splitContainer.Panel1
//
this.splitContainer.Panel1.Controls.Add(this.listViewEx);
//
// splitContainer.Panel2
//
this.splitContainer.Panel2.Controls.Add(this.sharedButtons);
//
// listViewEx
//
this.listViewEx.AllowColumnReorder = true;
resources.ApplyResources(this.listViewEx, "listViewEx");
this.listViewEx.DoubleClickActivation = false;
this.listViewEx.FullRowSelect = true;
this.listViewEx.GridLines = true;
this.listViewEx.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listViewEx.HideSelection = false;
this.listViewEx.MultiSelect = false;
this.listViewEx.Name = "listViewEx";
this.listViewEx.UseCompatibleStateImageBehavior = false;
this.listViewEx.View = System.Windows.Forms.View.Details;
this.listViewEx.SelectedIndexChanged += new System.EventHandler(this.componentsListView_SelectedIndexChanged);
this.listViewEx.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listViewEx_MouseDoubleClick);
//
// sharedButtons
//
resources.ApplyResources(this.sharedButtons, "sharedButtons");
this.sharedButtons.Name = "sharedButtons";
//
// ComponentsManagerDlg
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.splitContainer);
this.Name = "ComponentsManagerDlg";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ComponentsManagerDlg_FormClosing);
this.Load += new System.EventHandler(this.ComponentsManagerDlg_Load);
this.splitContainer.Panel1.ResumeLayout(false);
this.splitContainer.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
this.splitContainer.ResumeLayout(false);
this.ResumeLayout(false);
}
+57 -5
View File
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
/// Author: Milan Hanajík
///
using System;
@@ -65,16 +65,16 @@ namespace TBF
sharedButtons.RequiredGroupMembership = Config.Grp.GID.Metrologists;
sharedButtons.OptionalButtons = SharedButtons.Buttons.Add |
SharedButtons.Buttons.Remove |
//SharedButtons.Buttons.Up |
//SharedButtons.Buttons.Down |
SharedButtons.Buttons.Up |
SharedButtons.Buttons.Down |
SharedButtons.Buttons.Edit;
sharedButtons.Unlocked += Unlocked;
sharedButtons.OKClicked += okButton_Click;
sharedButtons.CancelClicked += cancelButton_Click;
sharedButtons.AddClicked += addButton_Click;
sharedButtons.RemoveClicked += removeButton_Click;
//sharedButtons.UpClicked += upButton_Click;
//sharedButtons.DownClicked += downButton_Click;
sharedButtons.UpClicked += upButton_Click;
sharedButtons.DownClicked += downButton_Click;
sharedButtons.EditClicked += editButton_Click;
}
@@ -162,6 +162,14 @@ namespace TBF
private void Unlocked(object sender, EventArgs e)
{
unlocked = true;
if (listViewEx.SelectedItems.Count == 1)
{
int ix = listViewEx.SelectedIndices[0];
Focus();
listViewEx.Items[ix].Selected = true;
listViewEx.Items[ix].EnsureVisible();
}
}
void RedrawAll()
@@ -360,6 +368,50 @@ namespace TBF
RedrawAll();
}
private void upButton_Click(object sender, EventArgs e)
{
if (listViewEx.SelectedIndices.Count != 1) return;
int ix = listViewEx.SelectedIndices[0];
if (ix < 1) return;
Component item1 = (Component)(listViewEx.Items[ix - 1].Tag);
Component item2 = (Component)(listViewEx.Items[ix].Tag);
(item1 as IHasItemNr).ItemNr++;
(item2 as IHasItemNr).ItemNr--;
cmpntEntities.RemoveAt(ix);
cmpntEntities.Insert(ix - 1, item2);
flags |= CfgUpdateFlags.AnyChange;
RedrawAll();
Focus();
listViewEx.Items[ix - 1].Selected = true;
listViewEx.Items[ix - 1].EnsureVisible();
}
private void downButton_Click(object sender, EventArgs e)
{
if (listViewEx.SelectedIndices.Count != 1) return;
int ix = listViewEx.SelectedIndices[0];
if (ix >= listViewEx.Items.Count - 1) return;
Component item1 = (Component)(listViewEx.Items[ix].Tag);
Component item2 = (Component)(listViewEx.Items[ix + 1].Tag);
(item1 as IHasItemNr).ItemNr++;
(item2 as IHasItemNr).ItemNr--;
cmpntEntities.RemoveAt(ix + 1);
cmpntEntities.Insert(ix, item2);
flags |= CfgUpdateFlags.AnyChange;
RedrawAll();
Focus();
listViewEx.Items[ix + 1].Selected = true;
listViewEx.Items[ix + 1].EnsureVisible();
}
private void componentsListView_SelectedIndexChanged(object sender, EventArgs e)
{
if (listViewEx.SelectedIndices.Count == 1)
+2 -2
View File
@@ -145,7 +145,7 @@
<value>listViewEx</value>
</data>
<data name="&gt;&gt;listViewEx.Type" xml:space="preserve">
<value>Results.Forms.ListViewEx, Results, Version=2.12.394.0, Culture=neutral, PublicKeyToken=null</value>
<value>Results.Forms.ListViewEx, Results, Version=2.12.475.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;listViewEx.Parent" xml:space="preserve">
<value>splitContainer.Panel1</value>
@@ -178,7 +178,7 @@
<value>sharedButtons</value>
</data>
<data name="&gt;&gt;sharedButtons.Type" xml:space="preserve">
<value>TBF.UiControls.SharedButtons, TBF, Version=2.12.395.1, Culture=neutral, PublicKeyToken=null</value>
<value>TBF.UiControls.SharedButtons, TBF, Version=2.12.481.1, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;sharedButtons.Parent" xml:space="preserve">
<value>splitContainer.Panel2</value>
+22 -17
View File
@@ -1,7 +1,8 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Drawing;
using System.Windows.Forms;
using TBF.Resources;
@@ -17,21 +18,25 @@ namespace TBF.Forms
label1.Text = Strings.Closing_Test_Bench_Framework;
timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
float textWidth = Graphics.FromImage(new Bitmap(1, 1)).MeasureString(label1.Text, label1.Font).Width;
void timer_Tick(object sender, EventArgs args)
{
if (!TBF.BenchControl.StateMachine.Running)
{
timer.Stop();
timer.Dispose();
DialogResult = DialogResult.OK;
Close();
}
}
}
Width = (int)textWidth + 120; /// Form width calculated from the text width
timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
void timer_Tick(object sender, EventArgs args)
{
if (!TBF.BenchControl.StateMachine.Running)
{
timer.Stop();
timer.Dispose();
DialogResult = DialogResult.OK;
Close();
}
}
}
}
@@ -1,168 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Anuluj</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Nazwa testu</value>
</data>
<data name="connectionStringLabel.Text" xml:space="preserve">
<value>Pasek połaczenia</value>
</data>
<data name="configLabel.Text" xml:space="preserve">
<value>Konfiguracja</value>
</data>
<data name="resultsLabel.Text" xml:space="preserve">
<value>Wyniki</value>
</data>
<data name="realBenchCheckBox.Text" xml:space="preserve">
<value>Stanowisko jest sterowane przez komputer</value>
</data>
<data name="dbTypeLabel.Text" xml:space="preserve">
<value>Typ bazy danych</value>
</data>
<data name="testConnConfigDbBtn.Text" xml:space="preserve">
<value>Test połaczenia</value>
</data>
<data name="testConnResultsDbBtn.Text" xml:space="preserve">
<value>Test połaczenia</value>
</data>
<data name="createConfigDbBtn.Text" xml:space="preserve">
<value>Utwórz bazę danych</value>
</data>
<data name="createResultsDbBtn.Text" xml:space="preserve">
<value>Utwórz bazę danych</value>
</data>
<data name="createUsersDbBtn.Text" xml:space="preserve">
<value>Utwórz bazę danych</value>
</data>
<data name="testConnUsersDbBtn.Text" xml:space="preserve">
<value>Test połaczenia</value>
</data>
<data name="usersLabel.Text" xml:space="preserve">
<value>Użytkownicy</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Specyfiakcja bay danych </value>
</data>
</root>
@@ -1,168 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Имя поверочной установки</value>
</data>
<data name="connectionStringLabel.Text" xml:space="preserve">
<value>Строка подключения</value>
</data>
<data name="configLabel.Text" xml:space="preserve">
<value>Конфигурация</value>
</data>
<data name="resultsLabel.Text" xml:space="preserve">
<value>Результаты</value>
</data>
<data name="realBenchCheckBox.Text" xml:space="preserve">
<value>Поверочная установка управляется этим компьютером</value>
</data>
<data name="dbTypeLabel.Text" xml:space="preserve">
<value>Тип базы данных</value>
</data>
<data name="testConnConfigDbBtn.Text" xml:space="preserve">
<value>Тест соединения</value>
</data>
<data name="testConnResultsDbBtn.Text" xml:space="preserve">
<value>Тест соединения</value>
</data>
<data name="createConfigDbBtn.Text" xml:space="preserve">
<value>Создание БД</value>
</data>
<data name="createResultsDbBtn.Text" xml:space="preserve">
<value>Создание БД</value>
</data>
<data name="createUsersDbBtn.Text" xml:space="preserve">
<value>Создание БД</value>
</data>
<data name="testConnUsersDbBtn.Text" xml:space="preserve">
<value>Тест соединения</value>
</data>
<data name="usersLabel.Text" xml:space="preserve">
<value>Пользователи</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Спецификация базы данных поверочной установки</value>
</data>
</root>
@@ -1,141 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="nameLabel.Text" xml:space="preserve">
<value>Nazwa</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Anuluj</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="descriptionLabel.Text" xml:space="preserve">
<value>Opis</value>
</data>
<data name="groupsLabel.Text" xml:space="preserve">
<value>Grupy</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Edytuj Użytkownika</value>
</data>
</root>
@@ -1,141 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="nameLabel.Text" xml:space="preserve">
<value>Имя</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Пароль</value>
</data>
<data name="descriptionLabel.Text" xml:space="preserve">
<value>Описание</value>
</data>
<data name="groupsLabel.Text" xml:space="preserve">
<value>Группы</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактировать пользователя</value>
</data>
</root>
-144
View File
@@ -1,144 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="columnHeader1.Text" xml:space="preserve">
<value>Nazwa</value>
</data>
<data name="columnHeader2.Text" xml:space="preserve">
<value>ID</value>
</data>
<data name="btnAdd.Text" xml:space="preserve">
<value>Dodaj</value>
</data>
<data name="btnEdit.Text" xml:space="preserve">
<value>Edytuj Użytkownika</value>
</data>
<data name="btnDelete.Text" xml:space="preserve">
<value>Kasuj</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="statusStrip1.Text" xml:space="preserve">
<value>Wiersz stanu 1</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Uprawnienia użytkownika</value>
</data>
</root>
-144
View File
@@ -1,144 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="columnHeader1.Text" xml:space="preserve">
<value>Имя</value>
</data>
<data name="columnHeader2.Text" xml:space="preserve">
<value>ID</value>
</data>
<data name="btnAdd.Text" xml:space="preserve">
<value>Добавить</value>
</data>
<data name="btnEdit.Text" xml:space="preserve">
<value>Редактировать</value>
</data>
<data name="btnDelete.Text" xml:space="preserve">
<value>Удалить</value>
</data>
<data name="btnOk.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="statusStrip1.Text" xml:space="preserve">
<value>Строка состояния 1</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Управление пользователями</value>
</data>
</root>
-132
View File
@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Anuluj</value>
</data>
<data name="btnIgnore.Text" xml:space="preserve">
<value>Ignoruj</value>
</data>
<data name="btnRetry.Text" xml:space="preserve">
<value>Spróbuj ponownie</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Wystąpił nieobsługiwany błąd </value>
</data>
</root>
-132
View File
@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="btnIgnore.Text" xml:space="preserve">
<value>Отклонить</value>
</data>
<data name="btnRetry.Text" xml:space="preserve">
<value>Повтор</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Произошла необрабатываемая ошибка</value>
</data>
</root>
-135
View File
@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="aliasLabel.Text" xml:space="preserve">
<value>Nazwa Użytkownika</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Anuluj</value>
</data>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Login użytkownika</value>
</data>
</root>
+5 -5
View File
@@ -178,7 +178,7 @@
<value>Top, Right</value>
</data>
<data name="passwordTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>128, 48</value>
<value>150, 48</value>
</data>
<data name="passwordTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 20</value>
@@ -202,7 +202,7 @@
<value>Top, Right</value>
</data>
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
<value>314, 48</value>
<value>336, 48</value>
</data>
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 28</value>
@@ -229,7 +229,7 @@
<value>Top, Right</value>
</data>
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
<value>314, 14</value>
<value>336, 14</value>
</data>
<data name="okButton.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 28</value>
@@ -256,7 +256,7 @@
<value>Top, Right</value>
</data>
<data name="userNameTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>128, 22</value>
<value>150, 22</value>
</data>
<data name="userNameTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 20</value>
@@ -283,7 +283,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>434, 88</value>
<value>456, 88</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
-135
View File
@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="aliasLabel.Text" xml:space="preserve">
<value>Имя пользователя</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Пароль</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Имя пользователя</value>
</data>
</root>
@@ -1,138 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="aliasLabel.Text" xml:space="preserve">
<value>Nazwa Użytkownika</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="testBenchLabel.Text" xml:space="preserve">
<value>Stanowisko pomiarowe</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Anuluj</value>
</data>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Login użytkownika</value>
</data>
</root>
@@ -205,7 +205,7 @@
<value>Top, Right</value>
</data>
<data name="testBenchComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>128, 67</value>
<value>150, 67</value>
</data>
<data name="testBenchComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 21</value>
@@ -229,7 +229,7 @@
<value>Top, Right</value>
</data>
<data name="passwordTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>128, 41</value>
<value>150, 41</value>
</data>
<data name="passwordTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 20</value>
@@ -253,7 +253,7 @@
<value>Top, Right</value>
</data>
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
<value>314, 48</value>
<value>336, 48</value>
</data>
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 28</value>
@@ -280,7 +280,7 @@
<value>Top, Right</value>
</data>
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
<value>314, 14</value>
<value>336, 14</value>
</data>
<data name="okButton.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 28</value>
@@ -307,7 +307,7 @@
<value>Top, Right</value>
</data>
<data name="userNameTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>128, 15</value>
<value>150, 15</value>
</data>
<data name="userNameTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 20</value>
@@ -334,7 +334,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>434, 102</value>
<value>456, 102</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
@@ -1,138 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="aliasLabel.Text" xml:space="preserve">
<value>Имя пользователя</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>Пароль</value>
</data>
<data name="testBenchLabel.Text" xml:space="preserve">
<value>Поверочная установка</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Имя пользователя</value>
</data>
</root>
@@ -126,7 +126,7 @@ namespace TBF.Forms
}
foreach (var wm in b.WaterMeters)
{
new TBF.BenchControl.ResultsPrinters.Munich.MunichPrintDocument(docVersion, wm, Config.Entities.PageOrientation.Portrait).Print();
new Results.Output.Printers.Munich.MunichPrintDocument(docVersion, wm, Config.Entities.PageOrientation.Portrait).Print();
}
#endif
}
+52 -38
View File
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.IO;
@@ -230,24 +230,31 @@ namespace TBF
}
/// Load and authorise user from the UsersDB database
switch (loginDlgBench.Method)
{
default:
case Config.Entities.LoginMethod.UserName:
loadedUser = Users.Entities.User.LoadUserByName(loginDlgBench.Alias, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.Authorize(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.FullName:
loadedUser = Users.Entities.User.LoadUserByFullName(loginDlgBench.Alias, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.Number:
int number;
if (!int.TryParse(loginDlgBench.Alias, out number)) break;
loadedUser = Users.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlgBench.Password);
break;
}
try
{
switch (loginDlgBench.Method)
{
default:
case Config.Entities.LoginMethod.UserName:
loadedUser = Users.Entities.User.LoadUserByName(loginDlgBench.Alias, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.Authorize(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.FullName:
loadedUser = Users.Entities.User.LoadUserByFullName(loginDlgBench.Alias, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.Number:
int number;
if (!int.TryParse(loginDlgBench.Alias, out number)) break;
loadedUser = Users.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].UsersDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlgBench.Password);
break;
}
}
catch
{
authorized = false;
}
if (settingsChanged && authorized) LocalSettings.Save();
}
@@ -258,25 +265,32 @@ namespace TBF
if (!authorized)
{
/// Load and authorise user from the Config database
switch (loginDlgBench.Method)
{
default:
case Config.Entities.LoginMethod.UserName:
loadedUser = Config.Entities.User.LoadUserByName(loginDlgBench.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.Authorize(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.FullName:
loadedUser = Config.Entities.User.LoadUserByFullName(loginDlgBench.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.Number:
int number;
if (!int.TryParse(loginDlgBench.Alias, out number)) break;
loadedUser = Config.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlgBench.Password);
break;
}
}
try
{
switch (loginDlgBench.Method)
{
default:
case Config.Entities.LoginMethod.UserName:
loadedUser = Config.Entities.User.LoadUserByName(loginDlgBench.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.Authorize(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.FullName:
loadedUser = Config.Entities.User.LoadUserByFullName(loginDlgBench.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlgBench.Alias, loginDlgBench.Password);
break;
case Config.Entities.LoginMethod.Number:
int number;
if (!int.TryParse(loginDlgBench.Alias, out number)) break;
loadedUser = Config.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].ProceduresDBSettings);
if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlgBench.Password);
break;
}
}
catch
{
authorized = false;
}
}
if (authorized)
{
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("2.12.478.1")]
[assembly: AssemblyFileVersion("2.12.478.1")]
[assembly: AssemblyVersion("2.12.486.1")]
[assembly: AssemblyFileVersion("2.12.486.1")]
-10
View File
@@ -60,16 +60,6 @@ namespace TBF.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Headpic {
get {
object obj = ResourceManager.GetObject("Headpic", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -130,9 +130,6 @@
<data name="TestPassedImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TestPassedImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Headpic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Headpic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TestFailedImage2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TestFailedImage2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

+6 -6
View File
@@ -1132,7 +1132,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Emptying.
/// Looks up a localized string similar to Draining.
/// </summary>
internal static string Emptying_chdr {
get {
@@ -1141,7 +1141,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Emptying ({0}: step {1}/{2}).
/// Looks up a localized string similar to Draining ({0}: step {1}/{2}).
/// </summary>
internal static string Emptying_i_n {
get {
@@ -1150,7 +1150,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Emptying the tank.
/// Looks up a localized string similar to Draining the tank.
/// </summary>
internal static string Emptying_tank {
get {
@@ -1159,7 +1159,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Emptying valve.
/// Looks up a localized string similar to Drain valve.
/// </summary>
internal static string Emptying_valve {
get {
@@ -1420,7 +1420,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Failed to initialize component {0}{1}{2}.
/// Looks up a localized string similar to Failed to initialize component &apos;{0}&apos;:{1}{2}.
/// </summary>
internal static string Failed_to_initialize_component_0_1_2 {
get {
@@ -1429,7 +1429,7 @@ namespace TBF.Resources {
}
/// <summary>
/// Looks up a localized string similar to Failed to initialize device {0}{1}{2}.
/// Looks up a localized string similar to Failed to initialize device &apos;{0}&apos;:{1}{2}.
/// </summary>
internal static string Failed_to_initialize_device_0_1_2 {
get {
+2 -2
View File
@@ -1369,10 +1369,10 @@
<value>Wollen sie die Änderungen speichern?</value>
</data>
<data name="Failed_to_initialize_component_0_1_2" xml:space="preserve">
<value>Fehler beim Komponentestart {0}{1}{2}</value>
<value>Fehler beim Komponentestart '{0}':{1}{2}</value>
</data>
<data name="Failed_to_initialize_device_0_1_2" xml:space="preserve">
<value>Fehler beim Gerätstart {0}{1}{2}</value>
<value>Fehler beim Gerätstart '{0}':{1}{2}</value>
</data>
<data name="Do_you_want_to_retry_RoI_detection" xml:space="preserve">
<value>Möchten Sie die Erkennung erneut versuchen?</value>
+6 -6
View File
@@ -169,7 +169,7 @@
<value>Diverter</value>
</data>
<data name="Emptying_valve" xml:space="preserve">
<value>Emptying valve</value>
<value>Drain valve</value>
</data>
<data name="Name" xml:space="preserve">
<value>Name</value>
@@ -370,7 +370,7 @@
<value>Test bench is not running, however you can change the settings to resolve the problem.</value>
</data>
<data name="Emptying_chdr" xml:space="preserve">
<value>Emptying</value>
<value>Draining</value>
</data>
<data name="Q_set_method_chdr" xml:space="preserve">
<value>Q-Set Method</value>
@@ -626,7 +626,7 @@
<value>Clear</value>
</data>
<data name="Emptying_tank" xml:space="preserve">
<value>Emptying the tank</value>
<value>Draining the tank</value>
</data>
<data name="Measuring_the_weight" xml:space="preserve">
<value>Measuring the weight</value>
@@ -644,7 +644,7 @@
<value>Purging ({0}: step {1}/{2})</value>
</data>
<data name="Emptying_i_n" xml:space="preserve">
<value>Emptying ({0}: step {1}/{2})</value>
<value>Draining ({0}: step {1}/{2})</value>
</data>
<data name="Switching_flow_detection" xml:space="preserve">
<value>Switching flow detection</value>
@@ -1625,10 +1625,10 @@
<value>User code</value>
</data>
<data name="Failed_to_initialize_device_0_1_2" xml:space="preserve">
<value>Failed to initialize device {0}{1}{2}</value>
<value>Failed to initialize device '{0}':{1}{2}</value>
</data>
<data name="Failed_to_initialize_component_0_1_2" xml:space="preserve">
<value>Failed to initialize component {0}{1}{2}</value>
<value>Failed to initialize component '{0}':{1}{2}</value>
</data>
<data name="Do_you_want_to_retry_RoI_detection" xml:space="preserve">
<value>Do you want to retry RoI detection?</value>
@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="clearButton.Text" xml:space="preserve">
<value>&amp;Очистить</value>
</data>
</root>
@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="focusButton.Text" xml:space="preserve">
<value>Zogniskować</value>
</data>
<data name="liveButton.Text" xml:space="preserve">
<value>Online</value>
</data>
<data name="grabButton.Text" xml:space="preserve">
<value>Przechwycić</value>
</data>
<data name="configureButton.Text" xml:space="preserve">
<value>Konfigurować</value>
</data>
</root>
@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="focusButton.Text" xml:space="preserve">
<value>Сфокусировать</value>
</data>
<data name="liveButton.Text" xml:space="preserve">
<value>Онлайн</value>
</data>
<data name="grabButton.Text" xml:space="preserve">
<value>Захватить</value>
</data>
<data name="configureButton.Text" xml:space="preserve">
<value>Конфигурировать</value>
</data>
</root>
+16 -56
View File
@@ -39,7 +39,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;MUNICH</DefineConstants>
<DefineConstants>TRACE;DEBUG;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
@@ -49,7 +49,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;MUNICH</DefineConstants>
<DefineConstants>TRACE;MUNICH;LANG_DE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
@@ -58,7 +58,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;MUNICH</DefineConstants>
<DefineConstants>TRACE;DEBUG;MUNICH;LANG_DE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
@@ -67,7 +67,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;MUNICH</DefineConstants>
<DefineConstants>TRACE;MUNICH;LANG_DE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
@@ -269,6 +269,12 @@
<Compile Include="BenchControl\DataEntry\iPerl\TestStartEndForm.designer.cs">
<DependentUpon>TestStartEndForm.cs</DependentUpon>
</Compile>
<Compile Include="BenchControl\DataEntry\Munich3\TestStartEndForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="BenchControl\DataEntry\Munich3\TestStartEndForm.designer.cs">
<DependentUpon>TestStartEndForm.cs</DependentUpon>
</Compile>
<Compile Include="BenchControl\DataEntry\Standard12\CycleBeginningForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -438,6 +444,8 @@
<Compile Include="BenchControl\GenericDevices\INetworkAdapter.cs" />
<Compile Include="BenchControl\GenericDevices\ISequenceCondition.cs" />
<Compile Include="BenchControl\GenericDevices\ISimultTestMethod.cs" />
<Compile Include="BenchControl\GenericDevices\ITankDraining.cs" />
<Compile Include="BenchControl\GenericDevices\ITankDrainingCfg.cs" />
<Compile Include="BenchControl\HeatMetersPath.cs" />
<Compile Include="BenchControl\Keithley\Multimeter_2010_RS232\Factory.cs" />
<Compile Include="BenchControl\Keithley\Multimeter_2010_RS232\Multimeter.cs" />
@@ -490,6 +498,7 @@
<Compile Include="BenchControl\MettlerToledo\Standard\ReadStableMassOp.cs" />
<Compile Include="BenchControl\MettlerToledo\Standard\SetUnitsOp.cs" />
<Compile Include="BenchControl\MettlerToledo\Standard\TaringOp.cs" />
<Compile Include="BenchControl\MettlerToledo\TankDraining.cs" />
<Compile Include="BenchControl\Modbus\Easytherm\Factory.cs" />
<Compile Include="BenchControl\Modbus\Easytherm\Easytherm.cs" />
<Compile Include="BenchControl\Modbus\Easytherm\EasythermCfg.cs" />
@@ -1162,9 +1171,6 @@
<Compile Include="BenchControl\ResultsPrinters\Basic\BasicPrintDocument.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BenchControl\ResultsPrinters\Munich\MunichPrintDocument.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BenchControl\ResultsPrinters\Munich\Printer.cs" />
<Compile Include="BenchControl\ResultsPrinters\Munich\PrinterCfg.cs" />
<Compile Include="BenchControl\ResultsPrinters\Munich\PrinterCfgCtrl.cs">
@@ -1745,6 +1751,9 @@
<EmbeddedResource Include="BenchControl\DataEntry\Munich3\EntryFormCfgCtrl.resx">
<DependentUpon>EntryFormCfgCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BenchControl\DataEntry\Munich3\TestStartEndForm.resx">
<DependentUpon>TestStartEndForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BenchControl\DataEntry\Munich\CycleBeginningForm.resx">
<DependentUpon>CycleBeginningForm.cs</DependentUpon>
</EmbeddedResource>
@@ -2063,54 +2072,18 @@
<EmbeddedResource Include="Forms\ClosingProgram.resx">
<DependentUpon>ClosingProgram.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DatabaseSettingsDlg.pl.resx">
<DependentUpon>DatabaseSettingsDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DatabaseSettingsDlg.resx">
<DependentUpon>DatabaseSettingsDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DatabaseSettingsDlg.ru.resx">
<DependentUpon>DatabaseSettingsDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditSelectedUser.pl.resx">
<DependentUpon>EditSelectedUser.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditSelectedUser.ru.resx">
<DependentUpon>EditSelectedUser.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditUsers.pl.resx">
<DependentUpon>EditUsers.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditUsers.ru.resx">
<DependentUpon>EditUsers.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EmergencyStopForm.resx">
<DependentUpon>EmergencyStopForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ErrorDlg.pl.resx">
<DependentUpon>ErrorDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ErrorDlg.ru.resx">
<DependentUpon>ErrorDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlg.pl.resx">
<DependentUpon>LoginDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlg.resx">
<DependentUpon>LoginDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlg.ru.resx">
<DependentUpon>LoginDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlgWithBenchSelection.pl.resx">
<DependentUpon>LoginDlgWithBenchSelection.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlgWithBenchSelection.resx">
<DependentUpon>LoginDlgWithBenchSelection.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\LoginDlgWithBenchSelection.ru.resx">
<DependentUpon>LoginDlgWithBenchSelection.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\PreviousResultCtrl.resx">
<DependentUpon>PreviousResultCtrl.cs</DependentUpon>
</EmbeddedResource>
@@ -2182,21 +2155,9 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.zh-CN.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Screens\LogsTabPageCtrl.pl.resx">
<DependentUpon>LogsTabPageCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Screens\LogsTabPageCtrl.ru.resx">
<DependentUpon>LogsTabPageCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Screens\PicturesTabPageCtrl.pl.resx">
<DependentUpon>PicturesTabPageCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Screens\PicturesTabPageCtrl.resx">
<DependentUpon>PicturesTabPageCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Screens\PicturesTabPageCtrl.ru.resx">
<DependentUpon>PicturesTabPageCtrl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Screens\ProcessTabPageCtrl24.resx">
<DependentUpon>ProcessTabPageCtrl24.cs</DependentUpon>
</EmbeddedResource>
@@ -2423,7 +2384,6 @@
<None Include="Resources\TestFailedImage.png" />
<None Include="Resources\TestPassedImage.png" />
<None Include="Resources\TestNotDoneImage.png" />
<None Include="Resources\Headpic.png" />
<None Include="Resources\TestPassedImage2.png" />
<None Include="Resources\TestFailedImage2.png" />
<Content Include="SampleConfig\config.xml">
@@ -32,7 +32,7 @@ namespace TBF.UiControls
Div,
Tdiv,
Scale,
EmptyValve,
DrainValve,
FixedColumnsCount,
}
readonly int fixedColumnsCount = (int)Column.FixedColumnsCount;
@@ -125,7 +125,7 @@ namespace TBF.UiControls
editors[(int)Column.Div] = diverterComboBox;
editors[(int)Column.Tdiv] = tempMeterDivComboBox;
editors[(int)Column.Scale] = balanceComboBox;
editors[(int)Column.EmptyValve] = emptyValveComboBox;
editors[(int)Column.DrainValve] = emptyValveComboBox;
/// Prepare valve combo-boxes (max. 64 valves)
for (int i = 0; i < 64; i++)
{
@@ -262,7 +262,7 @@ namespace TBF.UiControls
entity.Diverter = lvi.SubItems[(int)Column.Div].Text.Equals("---") ? null : lvi.SubItems[(int)Column.Div].Text;
entity.TempDiv = lvi.SubItems[(int)Column.Tdiv].Text.Equals("---") ? null : lvi.SubItems[(int)Column.Tdiv].Text;
entity.Balance = lvi.SubItems[(int)Column.Scale].Text.Equals("---") ? null : lvi.SubItems[(int)Column.Scale].Text;
entity.EmptyTankValve = lvi.SubItems[(int)Column.EmptyValve].Text.Equals("---") ? null : lvi.SubItems[(int)Column.EmptyValve].Text;
entity.EmptyTankValve = lvi.SubItems[(int)Column.DrainValve].Text.Equals("---") ? null : lvi.SubItems[(int)Column.DrainValve].Text;
string valvesOpen = string.Empty;
string valvesClose = string.Empty;