TBF.Screens.ProcessTabPageHeatMetersCtrl completed.
This commit is contained in:
@@ -82,12 +82,12 @@ namespace TBF.BenchControl.TestMethods.PulsesTest
|
||||
groupBox4.Text = Strings.Water_Meter + " 4";
|
||||
groupBox5.Text = Strings.Water_Meter + " 5";
|
||||
groupBox6.Text = Strings.Water_Meter + " 6";
|
||||
wmPulsesCountLabel1.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel2.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel3.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel4.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel5.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel6.Text = Strings.Pulses_;
|
||||
wmPulsesCountLabel1.Text = Strings.Pulses_count;
|
||||
wmPulsesCountLabel2.Text = Strings.Pulses_count;
|
||||
wmPulsesCountLabel3.Text = Strings.Pulses_count;
|
||||
wmPulsesCountLabel4.Text = Strings.Pulses_count;
|
||||
wmPulsesCountLabel5.Text = Strings.Pulses_count;
|
||||
wmPulsesCountLabel6.Text = Strings.Pulses_count;
|
||||
}
|
||||
|
||||
private void WMPulsesForm_Load(object sender, EventArgs e)
|
||||
|
||||
@@ -135,7 +135,7 @@ namespace TBF.BenchControl.TestMethods.PulsesTest
|
||||
Text = Strings.Water_Meter_States;
|
||||
for (int i = 0; i < textBoxesCount; i++)
|
||||
{
|
||||
labels[i].Text = string.Format("WM{0} {1}", i + 1, Strings.Pulses_);
|
||||
labels[i].Text = string.Format("WM{0} {1}", i + 1, Strings.Pulses);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace TBF.BenchControl.TestMethods.PulsesTest
|
||||
Text = Strings.Water_Meter_States;
|
||||
for (int i = 0; i < textBoxesCount; i++)
|
||||
{
|
||||
labels[i].Text = string.Format("WM{0} {1}", i + 1, Strings.Pulses_);
|
||||
labels[i].Text = string.Format("WM{0} {1}", i + 1, Strings.Pulses);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Generated
+1
-1
@@ -684,7 +684,7 @@ namespace TBF
|
||||
private TBF.Screens.ProcessTabPageCtrl24 processTabPageCtrl;
|
||||
#elif SLM_50
|
||||
private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent;
|
||||
private TBF.Screens.ProcessTabPageHeatMetersCtrl processTabPageCtrl;
|
||||
private TBF.Screens.ProcessTabPageExCtrl processTabPageCtrl;
|
||||
#elif TURA_IPERL || IZRAEL_50
|
||||
private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent;
|
||||
private TBF.Screens.ProcessTabPageCtrl48 processTabPageCtrl;
|
||||
|
||||
Generated
+29
-11
@@ -864,9 +864,9 @@ namespace TBF.Resources {
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Compound meter {0}.
|
||||
/// </summary>
|
||||
internal static string Compound_meter_nr {
|
||||
internal static string Compound_meter_0 {
|
||||
get {
|
||||
return ResourceManager.GetString("Compound_meter_nr", resourceCulture);
|
||||
return ResourceManager.GetString("Compound_meter_0", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3364,11 +3364,20 @@ namespace TBF.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses:.
|
||||
/// Looks up a localized string similar to Pulses.
|
||||
/// </summary>
|
||||
internal static string Pulses_ {
|
||||
internal static string Pulses {
|
||||
get {
|
||||
return ResourceManager.GetString("Pulses_", resourceCulture);
|
||||
return ResourceManager.GetString("Pulses", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses count.
|
||||
/// </summary>
|
||||
internal static string Pulses_count {
|
||||
get {
|
||||
return ResourceManager.GetString("Pulses_count", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3652,11 +3661,20 @@ namespace TBF.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ref.pulses:.
|
||||
/// Looks up a localized string similar to Ref. pulses.
|
||||
/// </summary>
|
||||
internal static string Ref_pulses_ {
|
||||
internal static string Ref_pulses {
|
||||
get {
|
||||
return ResourceManager.GetString("Ref_pulses_", resourceCulture);
|
||||
return ResourceManager.GetString("Ref_pulses", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ref. pulses count.
|
||||
/// </summary>
|
||||
internal static string Ref_pulses_count {
|
||||
get {
|
||||
return ResourceManager.GetString("Ref_pulses_count", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3706,11 +3724,11 @@ namespace TBF.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reg. valve pos.:.
|
||||
/// Looks up a localized string similar to Reg. valve pos..
|
||||
/// </summary>
|
||||
internal static string Reg_valve_pos_ {
|
||||
internal static string Reg_valve_pos {
|
||||
get {
|
||||
return ResourceManager.GetString("Reg_valve_pos_", resourceCulture);
|
||||
return ResourceManager.GetString("Reg_valve_pos", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
<value>Okolní teplota</value>
|
||||
</data>
|
||||
<data name="An_unhandled_error_occured" xml:space="preserve">
|
||||
<value>Neošetřená chyba</value>
|
||||
<value>Nastala neošetřená chyba</value>
|
||||
</data>
|
||||
<data name="Approval" xml:space="preserve">
|
||||
<value>Schválení</value>
|
||||
@@ -169,7 +169,7 @@
|
||||
<value>Schválení info.</value>
|
||||
</data>
|
||||
<data name="Approved_by" xml:space="preserve">
|
||||
<value>Schváleno</value>
|
||||
<value>Schválil</value>
|
||||
</data>
|
||||
<data name="Arrangement_of_meters" xml:space="preserve">
|
||||
<value>Uspořádání testovaných měřidel</value>
|
||||
@@ -205,22 +205,22 @@
|
||||
<value>Váha</value>
|
||||
</data>
|
||||
<data name="Bench_chdr" xml:space="preserve">
|
||||
<value>Stolice</value>
|
||||
<value>Stanice</value>
|
||||
</data>
|
||||
<data name="Bench_is_not_running" xml:space="preserve">
|
||||
<value>Testovací stolice neběží, ale můžete změnit nastavení k vyřešení problému.</value>
|
||||
<value>Testovací stanice neběží, ale můžete změnit nastavení k vyřešení problému.</value>
|
||||
</data>
|
||||
<data name="Bench_name_conflict_Use_another_name_pls" xml:space="preserve">
|
||||
<value>Název testu stolice konflikt, použijte jiný název, prosím</value>
|
||||
<value>Konflikt názvu stanice, použijte jiný název, prosím</value>
|
||||
</data>
|
||||
<data name="Bench_parameters" xml:space="preserve">
|
||||
<value>Parametry stolice</value>
|
||||
<value>Parametry stanice</value>
|
||||
</data>
|
||||
<data name="BuildDateStr" xml:space="preserve">
|
||||
<value>Datum sestavení {0}</value>
|
||||
</data>
|
||||
<data name="Calibration_Specialist" xml:space="preserve">
|
||||
<value>Kalibrace Specialist</value>
|
||||
<value>Specialista pro kalibraci</value>
|
||||
</data>
|
||||
<data name="Camera_error" xml:space="preserve">
|
||||
<value>Chyba kamery</value>
|
||||
@@ -238,7 +238,7 @@
|
||||
<value>zavřít</value>
|
||||
</data>
|
||||
<data name="Close_emptying_valve" xml:space="preserve">
|
||||
<value>Zavřít vyprazdňování ventil</value>
|
||||
<value>Zavřít vyprazdňovací ventil</value>
|
||||
</data>
|
||||
<data name="CloseBtnText" xml:space="preserve">
|
||||
<value>Zavřít</value>
|
||||
@@ -268,7 +268,7 @@
|
||||
<value>Konfigurovat</value>
|
||||
</data>
|
||||
<data name="ConfigureDatabaseText" xml:space="preserve">
|
||||
<value>Konfigurace testovací stolice (vyžadováno heslo)</value>
|
||||
<value>Konfigurace testovací stanice (vyžadováno heslo)</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>Potvrzení</value>
|
||||
@@ -769,7 +769,7 @@
|
||||
<value>Režim reakce</value>
|
||||
</data>
|
||||
<data name="Reference" xml:space="preserve">
|
||||
<value>Odkaz</value>
|
||||
<value>Etalon</value>
|
||||
</data>
|
||||
<data name="Reg_valve" xml:space="preserve">
|
||||
<value>Reg. ventil</value>
|
||||
@@ -1407,4 +1407,19 @@
|
||||
<data name="Wrong_iPerl_counting_direction" xml:space="preserve">
|
||||
<value>Nesprávny smer počítania iPerlu</value>
|
||||
</data>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>Impulsy</value>
|
||||
</data>
|
||||
<data name="Pulses_count" xml:space="preserve">
|
||||
<value>Počet impulsů</value>
|
||||
</data>
|
||||
<data name="Pulses_count_is_OK" xml:space="preserve">
|
||||
<value>Počet impulsů je OK</value>
|
||||
</data>
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>Impulsy etalonu</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_count" xml:space="preserve">
|
||||
<value>Počet imp. etalonu</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1014,7 +1014,7 @@
|
||||
<data name="Air_temperature" xml:space="preserve">
|
||||
<value>Umgebungstemperatur</value>
|
||||
</data>
|
||||
<data name="Compound_meter_nr" xml:space="preserve">
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>Verbundwasserzähler {0}</value>
|
||||
</data>
|
||||
<data name="Estimated_time_s_" xml:space="preserve">
|
||||
@@ -1032,8 +1032,8 @@
|
||||
<data name="Pr_up" xml:space="preserve">
|
||||
<value>Dr. ob.</value>
|
||||
</data>
|
||||
<data name="Pulses_" xml:space="preserve">
|
||||
<value>Impulse:</value>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>Impulse</value>
|
||||
</data>
|
||||
<data name="Ref_error_pct_" xml:space="preserve">
|
||||
<value>Referenzfehler [%]:</value>
|
||||
@@ -1044,14 +1044,14 @@
|
||||
<data name="Ref_freq_Hz_" xml:space="preserve">
|
||||
<value>Ref.Frequenz [Hz]:</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_" xml:space="preserve">
|
||||
<value>Ref.Impulse:</value>
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>Ref.Impulse</value>
|
||||
</data>
|
||||
<data name="Ref_volume_l_" xml:space="preserve">
|
||||
<value>Ref.Volumen [l]:</value>
|
||||
</data>
|
||||
<data name="Reg_valve_pos_" xml:space="preserve">
|
||||
<value>Reg.Ventilpos.:</value>
|
||||
<data name="Reg_valve_pos" xml:space="preserve">
|
||||
<value>Reg.Ventilpos.</value>
|
||||
</data>
|
||||
<data name="Target_flow_hi_m3h_" xml:space="preserve">
|
||||
<value>Prüfdurchfluss Hi [m3/h]:</value>
|
||||
|
||||
@@ -1209,7 +1209,7 @@
|
||||
<data name="Air_temperature" xml:space="preserve">
|
||||
<value>Temperatura dell'aria</value>
|
||||
</data>
|
||||
<data name="Compound_meter_nr" xml:space="preserve">
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>misuratore composto {0}</value>
|
||||
</data>
|
||||
<data name="Error_" xml:space="preserve">
|
||||
@@ -1230,8 +1230,8 @@
|
||||
<data name="Pr_up" xml:space="preserve">
|
||||
<value>Pr su</value>
|
||||
</data>
|
||||
<data name="Pulses_" xml:space="preserve">
|
||||
<value>impulsi:</value>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>impulsi</value>
|
||||
</data>
|
||||
<data name="Ref_error_pct_" xml:space="preserve">
|
||||
<value>Riferimento errore [%]:</value>
|
||||
@@ -1242,14 +1242,14 @@
|
||||
<data name="Ref_freq_Hz_" xml:space="preserve">
|
||||
<value>riferimento frequenza [Hz]:</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_" xml:space="preserve">
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>riferimento impulsi</value>
|
||||
</data>
|
||||
<data name="Ref_volume_l_" xml:space="preserve">
|
||||
<value>riferimento volume [l]:</value>
|
||||
</data>
|
||||
<data name="Reg_valve_pos_" xml:space="preserve">
|
||||
<value>posizionamento della valvola:</value>
|
||||
<data name="Reg_valve_pos" xml:space="preserve">
|
||||
<value>posizionamento della valvola</value>
|
||||
</data>
|
||||
<data name="Target_flow_hi_m3h_" xml:space="preserve">
|
||||
<value>target flusso massimo [m3/h]:</value>
|
||||
|
||||
@@ -1233,7 +1233,7 @@
|
||||
<data name="Air_temperature" xml:space="preserve">
|
||||
<value>Temperatura otoczenia</value>
|
||||
</data>
|
||||
<data name="Compound_meter_nr" xml:space="preserve">
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>Licznik sprzężony {0}</value>
|
||||
</data>
|
||||
<data name="Estimated_time_s_" xml:space="preserve">
|
||||
@@ -1251,8 +1251,8 @@
|
||||
<data name="Pr_up" xml:space="preserve">
|
||||
<value>Pr do góry</value>
|
||||
</data>
|
||||
<data name="Pulses_" xml:space="preserve">
|
||||
<value>Impulsy:</value>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>Impulsy</value>
|
||||
</data>
|
||||
<data name="Ref_error_pct_" xml:space="preserve">
|
||||
<value>Zakres błedu [%]</value>
|
||||
@@ -1263,14 +1263,14 @@
|
||||
<data name="Ref_freq_Hz_" xml:space="preserve">
|
||||
<value>Zakres częstotliwości [Hz]</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_" xml:space="preserve">
|
||||
<value>Zakres impulsów:</value>
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>Zakres impulsów</value>
|
||||
</data>
|
||||
<data name="Ref_volume_l_" xml:space="preserve">
|
||||
<value>Zakres objętości [l]</value>
|
||||
</data>
|
||||
<data name="Reg_valve_pos_" xml:space="preserve">
|
||||
<value>Położenie zawaoru regulacyjnego:</value>
|
||||
<data name="Reg_valve_pos" xml:space="preserve">
|
||||
<value>Położenie zawaoru regulacyjnego</value>
|
||||
</data>
|
||||
<data name="Target_flow_hi_m3h_" xml:space="preserve">
|
||||
<value>Zadany przepływ max. [m3/h]</value>
|
||||
|
||||
@@ -1210,7 +1210,7 @@
|
||||
<data name="Air_temperature" xml:space="preserve">
|
||||
<value>Air temperature</value>
|
||||
</data>
|
||||
<data name="Compound_meter_nr" xml:space="preserve">
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>Compound meter {0}</value>
|
||||
</data>
|
||||
<data name="Estimated_time_s_" xml:space="preserve">
|
||||
@@ -1231,8 +1231,8 @@
|
||||
<data name="Pr_up" xml:space="preserve">
|
||||
<value>Pr up</value>
|
||||
</data>
|
||||
<data name="Pulses_" xml:space="preserve">
|
||||
<value>Pulses:</value>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>Pulses</value>
|
||||
</data>
|
||||
<data name="Ref_error_pct_" xml:space="preserve">
|
||||
<value>Ref. error [%]:</value>
|
||||
@@ -1243,14 +1243,14 @@
|
||||
<data name="Ref_freq_Hz_" xml:space="preserve">
|
||||
<value>Ref. freq. [Hz]:</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_" xml:space="preserve">
|
||||
<value>Ref.pulses:</value>
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>Ref. pulses</value>
|
||||
</data>
|
||||
<data name="Ref_volume_l_" xml:space="preserve">
|
||||
<value>Ref. volume [l]:</value>
|
||||
</data>
|
||||
<data name="Reg_valve_pos_" xml:space="preserve">
|
||||
<value>Reg. valve pos.:</value>
|
||||
<data name="Reg_valve_pos" xml:space="preserve">
|
||||
<value>Reg. valve pos.</value>
|
||||
</data>
|
||||
<data name="Target_flow_hi_m3h_" xml:space="preserve">
|
||||
<value>Target flow high [m3/h]:</value>
|
||||
@@ -1963,4 +1963,10 @@
|
||||
<data name="Wrong_iPerl_counting_direction" xml:space="preserve">
|
||||
<value>Wrong iPerl counting direction</value>
|
||||
</data>
|
||||
<data name="Pulses_count" xml:space="preserve">
|
||||
<value>Pulses count</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_count" xml:space="preserve">
|
||||
<value>Ref. pulses count</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1200,7 +1200,7 @@
|
||||
<data name="Air_temperature" xml:space="preserve">
|
||||
<value>Температура воздуха</value>
|
||||
</data>
|
||||
<data name="Compound_meter_nr" xml:space="preserve">
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>Комбинированный счетчик {0}</value>
|
||||
</data>
|
||||
<data name="Estimated_time_s_" xml:space="preserve">
|
||||
@@ -1218,8 +1218,8 @@
|
||||
<data name="Pr_up" xml:space="preserve">
|
||||
<value>Pr up</value>
|
||||
</data>
|
||||
<data name="Pulses_" xml:space="preserve">
|
||||
<value>Импульсы:</value>
|
||||
<data name="Pulses" xml:space="preserve">
|
||||
<value>Импульсы</value>
|
||||
</data>
|
||||
<data name="Ref_error_pct_" xml:space="preserve">
|
||||
<value>Эт. отклонение [%]:</value>
|
||||
@@ -1230,14 +1230,14 @@
|
||||
<data name="Ref_freq_Hz_" xml:space="preserve">
|
||||
<value>Эт.частота [Hz]:</value>
|
||||
</data>
|
||||
<data name="Ref_pulses_" xml:space="preserve">
|
||||
<value>Эт.импульсы:</value>
|
||||
<data name="Ref_pulses" xml:space="preserve">
|
||||
<value>Эт.импульсы</value>
|
||||
</data>
|
||||
<data name="Ref_volume_l_" xml:space="preserve">
|
||||
<value>Эт.объем [л]:</value>
|
||||
</data>
|
||||
<data name="Reg_valve_pos_" xml:space="preserve">
|
||||
<value>Полож.рег.вент.:</value>
|
||||
<data name="Reg_valve_pos" xml:space="preserve">
|
||||
<value>Полож.рег.вент.</value>
|
||||
</data>
|
||||
<data name="Target_flow_hi_m3h_" xml:space="preserve">
|
||||
<value>Заданный расход максимальный [м3/ч]:</value>
|
||||
|
||||
@@ -143,8 +143,8 @@ namespace TBF.Screens
|
||||
tOutCapLabel.Text = string.Format("{0} [°C]:", Strings.T_out);
|
||||
tDivCapLabel.Text = string.Format("{0} [°C]:", Strings.T_div);
|
||||
|
||||
regValvePosCapLabel.Text = Strings.Reg_valve_pos_;
|
||||
refPulsesCapLabel.Text = Strings.Ref_pulses_;
|
||||
regValvePosCapLabel.Text = string.Format("{0}:", Strings.Reg_valve_pos);
|
||||
refPulsesCapLabel.Text = string.Format("{0}:", Strings.Ref_pulses);
|
||||
refFreqCapLabel.Text = Strings.Ref_freq_Hz_;
|
||||
refFlowCapLabel.Text = Strings.Ref_flow_m3h_;
|
||||
refVolumeCapLabel.Text = Strings.Ref_volume_l_;
|
||||
@@ -158,13 +158,13 @@ namespace TBF.Screens
|
||||
for (int i = 0; i < groupBoxes.Length; i++) groupBoxes[i].Text = string.Format(string.Format("{0} {1}", Strings.Meter, i + 1));
|
||||
|
||||
sensor1CapLabel.Text = sensor2CapLabel.Text = sensor3CapLabel.Text = sensor4CapLabel.Text = sensor5CapLabel.Text = sensor6CapLabel.Text = Strings.Sensor;
|
||||
pulses1CapLabel.Text = pulses2CapLabel.Text = pulses3CapLabel.Text = pulses4CapLabel.Text = pulses5CapLabel.Text = pulses6CapLabel.Text = Strings.Pulses_;
|
||||
refPulses1CapLabel.Text = refPulses2CapLabel.Text = refPulses3CapLabel.Text = refPulses4CapLabel.Text = refPulses5CapLabel.Text = refPulses6CapLabel.Text = Strings.Ref_pulses_;
|
||||
pulses1CapLabel.Text = pulses2CapLabel.Text = pulses3CapLabel.Text = pulses4CapLabel.Text = pulses5CapLabel.Text = pulses6CapLabel.Text = Strings.Pulses;
|
||||
refPulses1CapLabel.Text = refPulses2CapLabel.Text = refPulses3CapLabel.Text = refPulses4CapLabel.Text = refPulses5CapLabel.Text = refPulses6CapLabel.Text = Strings.Ref_pulses;
|
||||
volume1CapLabel.Text = volume2CapLabel.Text = volume3CapLabel.Text = volume4CapLabel.Text = volume5CapLabel.Text = volume6CapLabel.Text = Strings.Volume + ":";
|
||||
error1CapLabel.Text = error2CapLabel.Text = error3CapLabel.Text = error4CapLabel.Text = error5CapLabel.Text = error6CapLabel.Text = Strings.Error + ":";
|
||||
|
||||
GroupBox[] groupBoxesZ = new GroupBox[] { groupBox1z, groupBox2z, groupBox3z };
|
||||
for (int i = 0; i < groupBoxesZ.Length; i++) groupBoxesZ[i].Text = string.Format(Strings.Compound_meter_nr, i + 1);
|
||||
for (int i = 0; i < groupBoxesZ.Length; i++) groupBoxesZ[i].Text = string.Format(Strings.Compound_meter_0, i + 1);
|
||||
|
||||
volume1zCapLabel.Text = volume2zCapLabel.Text = volume3zCapLabel.Text = Strings.Volume + ":";
|
||||
error1zCapLabel.Text = error2zCapLabel.Text = error3zCapLabel.Text = Strings.Error + ":";
|
||||
|
||||
Generated
+2
-2
@@ -3,7 +3,7 @@
|
||||
///
|
||||
namespace TBF.Screens
|
||||
{
|
||||
partial class ProcessTabPageHeatMetersCtrl
|
||||
partial class ProcessTabPageExCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -31,7 +31,7 @@ namespace TBF.Screens
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessTabPageHeatMetersCtrl));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessTabPageExCtrl));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.pumpPctTextBox = new System.Windows.Forms.TextBox();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
@@ -0,0 +1,677 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Config.Entities;
|
||||
using TBF.BenchControl.Sequences;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Resources;
|
||||
|
||||
#pragma warning disable 162 /// Disables 'Unreachable code detected' warning
|
||||
|
||||
namespace TBF.Screens
|
||||
{
|
||||
public partial class ProcessTabPageExCtrl : UserControl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(ProcessTabPageExCtrl));
|
||||
|
||||
enum Columns
|
||||
{
|
||||
Meter = 0,
|
||||
Sensor,
|
||||
Pulses,
|
||||
RefPulses,
|
||||
Volume,
|
||||
Error,
|
||||
Result,
|
||||
Energy,
|
||||
EnergyError,
|
||||
HeatMeterResult,
|
||||
}
|
||||
|
||||
MetersKind currentMetersKind;
|
||||
|
||||
bool pumpOn = true;
|
||||
bool diverterToTank = true;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor, initializes anonymous event handlers
|
||||
/// </summary>
|
||||
public ProcessTabPageExCtrl()
|
||||
{
|
||||
currentMetersKind = MetersKind.Single;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
Bridge.ProcedureSelectedHandler += delegate(object sndr, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sndr, args);
|
||||
else OnProcedureSelected(sndr, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args);
|
||||
else OnTestSelected(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessDataChanged), sender, args);
|
||||
else OnProcessDataChanged(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcessDataChanged() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestCompletedHandler += delegate(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestCompletedEventArgs>(OnTestCompleted), sender, args);
|
||||
else OnTestCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcedureCompletedHandler += delegate(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureCompletedEventArgs>(OnProcedureCompleted), sender, args);
|
||||
else OnProcedureCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Load(object sender, EventArgs e)
|
||||
{
|
||||
Once();
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings();
|
||||
|
||||
}
|
||||
|
||||
void Once()
|
||||
{
|
||||
UpdateCurrentMetersKind(MetersKind.Single, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update 'currentMetersKind' variable and visibility of UI items.
|
||||
/// </summary>
|
||||
/// <param name="metersKind">New value</param>
|
||||
/// <param name="fromScratch">true = always update UI</param>
|
||||
void UpdateCurrentMetersKind(MetersKind metersKind, bool fromScratch = false)
|
||||
{
|
||||
if (currentMetersKind != metersKind || fromScratch)
|
||||
{
|
||||
currentMetersKind = metersKind;
|
||||
|
||||
metersListView.Items.Clear();
|
||||
metersListView.Columns.Clear();
|
||||
|
||||
metersListView.Columns.Add(Strings.Meter, 100);
|
||||
metersListView.Columns.Add(Strings.Sensor, 100);
|
||||
metersListView.Columns.Add(Strings.Pulses_count, 120);
|
||||
metersListView.Columns.Add(Strings.Ref_pulses_count, 120);
|
||||
metersListView.Columns.Add(Strings.Volume, 100);
|
||||
metersListView.Columns.Add(Strings.Error, 100);
|
||||
metersListView.Columns.Add(Strings.Result, 100);
|
||||
///
|
||||
if (metersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
metersListView.Columns.Add(Strings.Energy, 100);
|
||||
metersListView.Columns.Add(Strings.Error, 100);
|
||||
metersListView.Columns.Add(Strings.Result, 100);
|
||||
}
|
||||
|
||||
if ((metersKind == MetersKind.Single) || (metersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < Config.Data.WMsCount; i++)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(new string[] { (i + 1).ToString(), "---", "---", "---", "---", "---", "---" });
|
||||
if (metersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
lvi.SubItems.Add("---"); /// energy
|
||||
lvi.SubItems.Add("---"); /// energy error
|
||||
lvi.SubItems.Add("---"); /// HeatMeter result
|
||||
}
|
||||
metersListView.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
else if (metersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Config.Data.CompoundWMsCount; z++)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(string.Format("{0} {1}", Strings.Compound_meter_0, z + 1));
|
||||
lvi.SubItems.Add(string.Empty); /// sensor
|
||||
lvi.SubItems.Add(string.Empty); /// pulses count
|
||||
lvi.SubItems.Add("---"); /// ref. pulses count
|
||||
lvi.SubItems.Add("---"); /// volume
|
||||
lvi.SubItems.Add("---"); /// error
|
||||
lvi.SubItems.Add("---"); /// result
|
||||
metersListView.Items.Add(lvi);
|
||||
|
||||
ListViewItem iMain = new ListViewItem(Strings.Main);
|
||||
iMain.SubItems.Add("---"); /// sensor
|
||||
iMain.SubItems.Add("---"); /// pulses count
|
||||
iMain.SubItems.Add(string.Empty); /// ref. pulses count
|
||||
iMain.SubItems.Add("---"); /// volume
|
||||
iMain.SubItems.Add(string.Empty); /// error
|
||||
iMain.SubItems.Add(string.Empty); /// result
|
||||
metersListView.Items.Add(iMain);
|
||||
|
||||
ListViewItem iAux = new ListViewItem(Strings.Aux);
|
||||
iAux.SubItems.Add("---"); /// sensor
|
||||
iAux.SubItems.Add("---"); /// pulses count
|
||||
iAux.SubItems.Add(string.Empty); /// ref. pulses count
|
||||
iAux.SubItems.Add("---"); /// volume
|
||||
iAux.SubItems.Add(string.Empty); /// error
|
||||
iAux.SubItems.Add(string.Empty); /// result
|
||||
metersListView.Items.Add(iAux);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure is selected
|
||||
/// </summary>
|
||||
void ResetLabelsAndTargetVals()
|
||||
{
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = "---";
|
||||
targetFlowHighLabel.Text = "---";
|
||||
targetVolumeLabel.Text = "---";
|
||||
targetRefCountLabel.Text = "---";
|
||||
estmtdTimeLabel.Text = "---";
|
||||
|
||||
//
|
||||
refFlowCmpntLabel.Text = "---";
|
||||
regValveCmpntLabel.Text = "---";
|
||||
|
||||
/// Water pressure
|
||||
prInCmpntLabel.Text = "---";
|
||||
prOutCmpntLabel.Text = "---";
|
||||
|
||||
/// Water temperature
|
||||
tInCmpntLabel.Text = "---";
|
||||
tOutCmpntLabel.Text = "---";
|
||||
tDivCmpntLabel.Text = "---";
|
||||
|
||||
scaleCmpntLabel.Text = "---";
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) || (currentMetersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(Config.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure or a new test procedure is selected
|
||||
/// </summary>
|
||||
void ResetReadings()
|
||||
{
|
||||
/// Top part
|
||||
airTempLabel.Text = "---";
|
||||
airPressLabel.Text = "---";
|
||||
airHumiLabel.Text = "---";
|
||||
|
||||
refPulsesLabel.Text = "---";
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = "---";
|
||||
refVolumeLabel.Text = "---";
|
||||
|
||||
regValvePosLabel.Text = "---";
|
||||
tDivLabel.Text = "---";
|
||||
|
||||
tInLabel.Text = "---";
|
||||
tOutLabel.Text = "---";
|
||||
prInLabel.Text = "---";
|
||||
prOutLabel.Text = "---";
|
||||
|
||||
massLabel.Text = "---";
|
||||
massDiffLabel.Text = "---";
|
||||
volumeCtvLabel.Text = "---";
|
||||
refErrorLabel.Text = "---";
|
||||
|
||||
|
||||
if (currentMetersKind == MetersKind.Single)
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Energy].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.EnergyError].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.HeatMeterResult].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(Config.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
/// Compound
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Result].Text = "---";
|
||||
|
||||
/// Main
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = "---";
|
||||
|
||||
/// Aux
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Volume].Text = "---";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
UpdateCurrentMetersKind(args.Procedure.MetersKind);
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings();
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
void OnTestSelected(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
/// Readings and target values
|
||||
ResetReadings();
|
||||
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = args.Test.Qfrom.ToString("F3");
|
||||
targetFlowHighLabel.Text = args.Test.Qto.ToString("F3");
|
||||
targetVolumeLabel.Text = args.Test.Volume.ToString("F1");
|
||||
targetRefCountLabel.Text = args.TotalPulses.ToString();
|
||||
estmtdTimeLabel.Text = args.Test.TstTime.ToString("F1");
|
||||
|
||||
/// Names of virtual bench components
|
||||
if (args.BenchPath.PressMtrUp != null) prInCmpntLabel.Text = args.BenchPath.PressMtrUp.Name;
|
||||
if (args.BenchPath.PressMtrDown != null) prOutCmpntLabel.Text = args.BenchPath.PressMtrDown.Name;
|
||||
if (args.BenchPath.TempMtrUp != null) tInCmpntLabel.Text = args.BenchPath.TempMtrUp.Name;
|
||||
if (args.BenchPath.TempMtrDown != null) tOutCmpntLabel.Text = args.BenchPath.TempMtrDown.Name;
|
||||
if (args.OutputPath.TempDiv != null) tDivCmpntLabel.Text = args.OutputPath.TempDiv.Name;
|
||||
if (args.OutputPath.FlowMeter != null) refFlowCmpntLabel.Text = args.OutputPath.FlowMeter.Name;
|
||||
if (args.OutputPath.RegulValve != null) regValveCmpntLabel.Text = args.OutputPath.RegulValve.Name;
|
||||
if (args.OutputPath.Scale != null) scaleCmpntLabel.Text = args.OutputPath.Scale.Name;
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) || (currentMetersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Sensor].Text = (args.MetersPath.RegisterReaders[i] != null)
|
||||
? args.MetersPath.RegisterReaders[i].Cfg.Name
|
||||
: string.Empty;
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(Config.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Sensor].Text
|
||||
= ((args.MetersPath.RegisterReaders != null) && (args.MetersPath.RegisterReaders.Length > 2 * z) && (args.MetersPath.RegisterReaders[2 * z] != null))
|
||||
? args.MetersPath.RegisterReaders[2 * z].Cfg.Name
|
||||
: string.Empty;
|
||||
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Sensor].Text
|
||||
= ((args.MetersPath.RegisterReaders != null) && (args.MetersPath.RegisterReaders.Length > 2 * z + 1) && (args.MetersPath.RegisterReaders[2 * z + 1] != null))
|
||||
? args.MetersPath.RegisterReaders[2 * z + 1].Cfg.Name
|
||||
: string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.FeedingPath != null && (args.FeedingPath.Pump is BenchControl.GenericDevices.IPumpFM))
|
||||
{
|
||||
pumpPctTextBox.Visible = true;
|
||||
pumpPctTextBox.Text = (args.FeedingPath.Pump as BenchControl.GenericDevices.IPumpFM).Power.ToString("F0") + " %";
|
||||
}
|
||||
else
|
||||
{
|
||||
pumpPctTextBox.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcessDataChanged(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
///
|
||||
/// Always available
|
||||
///
|
||||
airTempLabel.Text = ProcessData.AmbTemp.ToString();
|
||||
airPressLabel.Text = Config.Units.ConvertTo(Config.Unit.mbar, ProcessData.AmbPress.Val).ToString("F0");
|
||||
airHumiLabel.Text = ProcessData.AmbHumi.ToString();
|
||||
|
||||
tInLabel.Text = ProcessData.TempUp.ToString();
|
||||
tOutLabel.Text = ProcessData.TempDown.ToString();
|
||||
tDivLabel.Text = ProcessData.TempDiv.ToString();
|
||||
|
||||
prInLabel.Text = ProcessData.PressUp.ToString();
|
||||
prOutLabel.Text = ProcessData.PressDown.ToString();
|
||||
|
||||
massLabel.Text = ProcessData.Mass.ToString();
|
||||
|
||||
if (args.TestPhase == Config.Entities.Progress.FlowSetting ||
|
||||
args.TestPhase == Config.Entities.Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available when setting the flow and during a test
|
||||
///
|
||||
refFreqLabel.Text = ProcessData.RefFreq.ToString();
|
||||
refFlowLabel.Text = Utils.DoubleToStr(ProcessData.RefFlow.Val, 4);
|
||||
}
|
||||
|
||||
if (args.TestPhase == Config.Entities.Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available only during a test
|
||||
///
|
||||
refPulsesLabel.Text = ProcessData.RefPulses.ToString();
|
||||
double refVolume = ProcessData.LtrPerRefPulse * (double)ProcessData.RefPulses;
|
||||
refVolumeLabel.Text = refVolume.ToString("F2");
|
||||
|
||||
double massDiff = ProcessData.Mass.Val - ProcessData.StartMass.Val;
|
||||
massDiffLabel.Text = massDiff.ToString("F3");
|
||||
double volumeCtv = 1000 * Config.Formulas.Buoyancy() * massDiff
|
||||
/ Config.Formulas.WaterDensityFromTempPress((ProcessData.TempUp.Val + ProcessData.TempDown.Val) / 2,
|
||||
(ProcessData.PressUp.Val + ProcessData.PressDown.Val) / 2,
|
||||
Program.LocalSettings.RealDensity,
|
||||
Program.LocalSettings.AtTemperature); /// [kg/m3]
|
||||
volumeCtvLabel.Text = volumeCtv.ToString("F2");
|
||||
double refError = Config.Formulas.ErrorFromVolumes(refVolume, volumeCtv);
|
||||
refErrorLabel.Text = refError.ToString("F3");
|
||||
|
||||
if (currentMetersKind == MetersKind.Single || currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.RegisterReaders.Length); i++)
|
||||
{
|
||||
ListViewItem lvi = metersListView.Items[i];
|
||||
BenchControl.GenericDevices.IRegisterReader rr = ProcessData.RegisterReaders[i];
|
||||
if (rr != null)
|
||||
{
|
||||
lvi.SubItems[(int)Columns.Pulses].Text = rr.WMPulses.ToString();
|
||||
lvi.SubItems[(int)Columns.RefPulses].Text = rr.WMRefPulses.ToString();
|
||||
lvi.SubItems[(int)Columns.Volume].Text = rr.WMVolume.ToString("F1");
|
||||
lvi.SubItems[(int)Columns.Error].Text = Config.Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
}
|
||||
|
||||
if (currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
/// TODO:
|
||||
lvi.SubItems[(int)Columns.Energy].Text = ProcessData.Energy.Last.ToString("F1");
|
||||
lvi.SubItems[(int)Columns.EnergyError].Text = Config.Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(Config.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
BenchControl.GenericDevices.IRegisterReader rrMain = (ProcessData.RegisterReaders.Length > 2 * z) ? ProcessData.RegisterReaders[2 * z] : null;
|
||||
BenchControl.GenericDevices.IRegisterReader rrAux = (ProcessData.RegisterReaders.Length > 2 * z + 1) ? ProcessData.RegisterReaders[2 * z + 1] : null;
|
||||
|
||||
Double compoundVolume = 0;
|
||||
if (rrMain != null) compoundVolume += rrMain.WMVolume;
|
||||
if (rrAux != null) compoundVolume += rrAux.WMVolume;
|
||||
|
||||
/// Compound
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = ProcessData.RefPulses.ToString();
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = compoundVolume.ToString("F1");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = Config.Formulas.ErrorFromVolumes(compoundVolume, refVolume).ToString("F1"); ;
|
||||
|
||||
/// Main
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = (rrMain != null) ? rrMain.WMPulses.ToString() : string.Empty;
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = (rrMain != null) ? rrMain.WMVolume.ToString("F1") : string.Empty;
|
||||
|
||||
/// Aux
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = (rrAux != null) ? rrMain.WMPulses.ToString() : string.Empty;
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Volume].Text = (rrAux != null) ? rrMain.WMVolume.ToString("F1") : string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if (pumpOn != args.PumpOn || diverterToTank != args.DivToTank)
|
||||
//{
|
||||
// //if (pumpOn != args.PumpOn)
|
||||
// //{
|
||||
// // if (pumpOn) pumpPictureBox.Image = System.Resources.
|
||||
// // else pumpPictureBox.Image = System.Resources.
|
||||
// //}
|
||||
// pumpOn = args.PumpOn;
|
||||
// diverterToTank = args.DivToTank;
|
||||
// Invalidate();
|
||||
//}
|
||||
}
|
||||
|
||||
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
Results.Entities.TestRslt tRes = args.TestRslt;
|
||||
if (tRes == null) return;
|
||||
|
||||
airTempLabel.Text = tRes.AmbTempMean.ToString("F1");
|
||||
airPressLabel.Text = Config.Units.ConvertTo(Config.Unit.mbar, tRes.AmbPressMean).ToString("F0");
|
||||
airHumiLabel.Text = tRes.AmbHumiMean.ToString("F1");
|
||||
|
||||
tInLabel.Text = tRes.TempUpMean.ToString("F2");
|
||||
tOutLabel.Text = tRes.TempDownMean.ToString("F2");
|
||||
tDivLabel.Text = tRes.TempDivMean.ToString("F2");
|
||||
|
||||
prInLabel.Text = tRes.PressUpMean.ToString("F2");
|
||||
prOutLabel.Text = tRes.PressDownMean.ToString("F2");
|
||||
|
||||
massLabel.Text = ProcessData.Mass.ToString();
|
||||
massDiffLabel.Text = (tRes.MassEnd - tRes.MassStart).ToString("F3");
|
||||
|
||||
refPulsesLabel.Text = tRes.PulsesMaster.ToString("F0");
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = Utils.DoubleToStr(tRes.FlowVolume, 4);
|
||||
|
||||
refVolumeLabel.Text = tRes.VolumeCTV.ToString("F2");
|
||||
//regValvePosLabel.Text = tstRslt.
|
||||
|
||||
volumeCtvLabel.Text = tRes.VolumeCTV.ToString("F1");
|
||||
refErrorLabel.Text = (tRes.ErrorMaster == 0) ? "---" : tRes.ErrorMaster.ToString("F3");
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) && !tRes.Batch.Compound && !tRes.Batch.HeatMeter)
|
||||
{
|
||||
///
|
||||
/// Test results for single meters
|
||||
///
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.BatchRslts.WaterMeters.Length); i++)
|
||||
{
|
||||
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[i];
|
||||
Results.Entities.MeterTestRslt mtr = (wm != null) ? wm.GetMeterTestRslt(args.TestName) : null;
|
||||
|
||||
if (mtr != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = mtr.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = mtr.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = mtr.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = mtr.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = mtr.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((currentMetersKind == MetersKind.HeatMeter) && tRes.Batch.HeatMeter)
|
||||
{
|
||||
///
|
||||
/// Test results for heat meters
|
||||
///
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.BatchRslts.WaterMeters.Length); i++)
|
||||
{
|
||||
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[i];
|
||||
if (wm == null) continue;
|
||||
|
||||
Results.Entities.MeterTestRslt mtrVolume = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.HeatMeterVolume);
|
||||
Results.Entities.MeterTestRslt mtrEnergy = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.HeatMeterEnergy);
|
||||
|
||||
if (mtrVolume != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = mtrVolume.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = mtrVolume.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = mtrVolume.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = mtrVolume.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = mtrVolume.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
if (mtrEnergy != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Energy].Text = mtrEnergy.VolumeMeter.ToString("F1"); ;
|
||||
metersListView.Items[i].SubItems[(int)Columns.EnergyError].Text = mtrEnergy.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.HeatMeterResult].Text = mtrEnergy.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((currentMetersKind == MetersKind.Combined) && tRes.Batch.Compound)
|
||||
{
|
||||
///
|
||||
/// Test results for compond meters
|
||||
///
|
||||
for (int z = 0; z < Math.Min(Config.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[z];
|
||||
if (wm == null) continue;
|
||||
|
||||
Results.Entities.MeterTestRslt mtrComp = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.Compound);
|
||||
Results.Entities.MeterTestRslt mtrMain = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundMain);
|
||||
Results.Entities.MeterTestRslt mtrAux = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundAux);
|
||||
|
||||
if (mtrComp != null)
|
||||
{
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = mtrMain.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = mtrComp.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = mtrComp.Error.ToString("F2");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Result].Text = mtrComp.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
if (mtrMain != null)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = mtrMain.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = mtrMain.VolumeMeter.ToString("F2");
|
||||
}
|
||||
|
||||
if (mtrAux != null)
|
||||
{
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = mtrAux.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[2 * z + 2].SubItems[(int)Columns.Volume].Text = mtrAux.VolumeMeter.ToString("F2");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Mismatch between Batch.Compound, Batch.HeatMeter and currentMetersKind
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcedureCompleted(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
System.Drawing.Graphics formGraphics = this.CreateGraphics();
|
||||
|
||||
System.Drawing.SolidBrush filledBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
|
||||
System.Drawing.SolidBrush emptyBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Gray);
|
||||
System.Drawing.SolidBrush benchBrush = (pumpOn ? filledBrush : emptyBrush);
|
||||
|
||||
int diam = 14; // pipe diameter (pixels)
|
||||
int left = 20; // left-most pipe x-coordinate
|
||||
int top = 14; // top-most pipe y-coordinate
|
||||
int topLeft = 876;
|
||||
int topRight = 966;
|
||||
int divTop = 40;
|
||||
int bottom = 504; // bottom-most pipe y-coordinate
|
||||
int benchTop = 378; // bench-pipe top y-coordinate
|
||||
int pumpLeft = 779;
|
||||
int pumpWdth = 38;
|
||||
|
||||
/// Pipes
|
||||
formGraphics.FillRectangle(filledBrush,new Rectangle(pumpLeft+pumpWdth, bottom-diam, 65, diam)); // tank -> pump
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, bottom-diam, pumpLeft-left, diam)); // pump ->bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, benchTop, diam, bottom-benchTop)); // ->bench vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left + diam, benchTop, topLeft-left, diam)); // bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top + diam, diam, benchTop-top-diam)); // bench -> top vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top, topRight-topLeft, diam)); // top horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topRight-diam, top+diam, diam, divTop-top-diam)); // top -> diverter vertical
|
||||
|
||||
/// Diverter
|
||||
int displacement = diverterToTank ? 25 : -25;
|
||||
Point[] points = new Point[4];
|
||||
points[0].X = topRight - diam;
|
||||
points[0].Y = divTop;
|
||||
points[1].X = topRight;
|
||||
points[1].Y = divTop;
|
||||
points[2].X = topRight + displacement;
|
||||
points[2].Y = divTop + 50;
|
||||
points[3].X = topRight - diam + displacement;
|
||||
points[3].Y = divTop + 50;
|
||||
formGraphics.FillPolygon(benchBrush, points);
|
||||
|
||||
/// Sink
|
||||
formGraphics.FillEllipse(emptyBrush, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
formGraphics.DrawEllipse(Pens.Black, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
|
||||
/// Tank
|
||||
formGraphics.DrawRectangle(Pens.Black, topRight - diam / 2, divTop + 51, 60, 80);
|
||||
|
||||
|
||||
emptyBrush.Dispose();
|
||||
filledBrush.Dispose();
|
||||
formGraphics.Dispose();
|
||||
}
|
||||
|
||||
private void PaintBypass(System.Drawing.Graphics formGraphics, System.Drawing.SolidBrush brush, int startX, int startY)
|
||||
{
|
||||
int w = 80;
|
||||
int h = 43;
|
||||
int diam = 10; // pipe diameter (pixels)
|
||||
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY, diam, h - diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY + h - diam, w, diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX + w - diam, startY, diam, h));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,520 +0,0 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Config.Entities;
|
||||
using TBF.BenchControl.Sequences;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Resources;
|
||||
|
||||
#pragma warning disable 162 /// Disables 'Unreachable code detected' warning
|
||||
|
||||
namespace TBF.Screens
|
||||
{
|
||||
public partial class ProcessTabPageHeatMetersCtrl : UserControl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(ProcessTabPageHeatMetersCtrl));
|
||||
|
||||
MetersKind currentMetersKind;
|
||||
|
||||
int textBoxesCount;
|
||||
|
||||
Label[] meter;
|
||||
Label[] sensor;
|
||||
Label[] pulses;
|
||||
Label[] refPulses;
|
||||
Label[] volume;
|
||||
Label[] error;
|
||||
Label[] passed;
|
||||
Label[] cmpndVolume;
|
||||
Label[] cmpndError;
|
||||
Label[] cmpndPassed;
|
||||
|
||||
bool pumpOn = true;
|
||||
bool diverterToTank = true;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor, initializes anonymous event handlers
|
||||
/// </summary>
|
||||
public ProcessTabPageHeatMetersCtrl()
|
||||
{
|
||||
currentMetersKind = MetersKind.Single;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
metersListView.Columns.Add(Strings.Meter, 120);
|
||||
metersListView.Columns.Add(Strings.Sensor, 120);
|
||||
metersListView.Columns.Add("Pulses count", 120);
|
||||
metersListView.Columns.Add("Ref. pulses count", 120);
|
||||
metersListView.Columns.Add(Strings.Volume, 120);
|
||||
metersListView.Columns.Add(Strings.Error, 120);
|
||||
metersListView.Columns.Add(Strings.Result, 120);
|
||||
|
||||
textBoxesCount = 24;
|
||||
|
||||
Bridge.ProcedureSelectedHandler += delegate(object sndr, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sndr, args);
|
||||
else
|
||||
OnProcedureSelected(sndr, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args);
|
||||
else
|
||||
OnTestSelected(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessDataChanged), sender, args);
|
||||
else
|
||||
OnProcessDataChanged(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcessDataChanged() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestCompletedHandler += delegate(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<TestCompletedEventArgs>(OnTestCompleted), sender, args);
|
||||
else
|
||||
OnTestCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcedureCompletedHandler += delegate(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(new EventHandler<ProcedureCompletedEventArgs>(OnProcedureCompleted), sender, args);
|
||||
else
|
||||
OnProcedureCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Load(object sender, EventArgs e)
|
||||
{
|
||||
Once();
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings();
|
||||
}
|
||||
|
||||
void Once()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void UpdateVisibility(MetersKind metersKind)
|
||||
{
|
||||
bool visible = (metersKind == MetersKind.Single || metersKind == MetersKind.HeatMeter);
|
||||
|
||||
for (int i = 2 * Config.Data.CompoundWMsCount; i < textBoxesCount; i++)
|
||||
{
|
||||
meter[i].Visible = visible;
|
||||
sensor[i].Visible = visible;
|
||||
pulses[i].Visible = visible;
|
||||
refPulses[i].Visible = visible;
|
||||
volume[i].Visible = visible;
|
||||
error[i].Visible = visible;
|
||||
passed[i].Visible = visible;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure is selected
|
||||
/// </summary>
|
||||
void ResetLabelsAndTargetVals()
|
||||
{
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = "---";
|
||||
targetFlowHighLabel.Text = "---";
|
||||
targetVolumeLabel.Text = "---";
|
||||
targetRefCountLabel.Text = "---";
|
||||
estmtdTimeLabel.Text = "---";
|
||||
|
||||
//
|
||||
refFlowCmpntLabel.Text = "---";
|
||||
regValveCmpntLabel.Text = "---";
|
||||
|
||||
/// Water pressure
|
||||
prInCmpntLabel.Text = "---";
|
||||
prOutCmpntLabel.Text = "---";
|
||||
|
||||
/// Water temperature
|
||||
tInCmpntLabel.Text = "---";
|
||||
tOutCmpntLabel.Text = "---";
|
||||
tDivCmpntLabel.Text = "---";
|
||||
|
||||
scaleCmpntLabel.Text = "---";
|
||||
|
||||
watermeterPictureBox2.Visible = true;
|
||||
watermeterPictureBox3.Visible = true;
|
||||
watermeterPictureBox4.Visible = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure or a new test procedure is selected
|
||||
/// </summary>
|
||||
void ResetReadings()
|
||||
{
|
||||
/// Top part
|
||||
airTempLabel.Text = "---";
|
||||
airPressLabel.Text = "---";
|
||||
airHumiLabel.Text = "---";
|
||||
|
||||
refPulsesLabel.Text = "---";
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = "---";
|
||||
refVolumeLabel.Text = "---";
|
||||
|
||||
regValvePosLabel.Text = "---";
|
||||
tDivLabel.Text = "---";
|
||||
|
||||
tInLabel.Text = "---";
|
||||
tOutLabel.Text = "---";
|
||||
prInLabel.Text = "---";
|
||||
prOutLabel.Text = "---";
|
||||
|
||||
massLabel.Text = "---";
|
||||
massDiffLabel.Text = "---";
|
||||
volumeCtvLabel.Text = "---";
|
||||
refErrorLabel.Text = "---";
|
||||
|
||||
//for (int i = 0; i < textBoxesCount; i++)
|
||||
//{
|
||||
// pulses[i].Text = "---";
|
||||
// refPulses[i].Text = "---";
|
||||
// volume[i].Text = "---";
|
||||
// error[i].Text = "---";
|
||||
// passed[i].Text = "---";
|
||||
//}
|
||||
}
|
||||
|
||||
void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
currentMetersKind = args.Procedure.MetersKind;
|
||||
UpdateVisibility(currentMetersKind);
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings();
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
void OnTestSelected(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
/// Readings and target values
|
||||
ResetReadings();
|
||||
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = args.Test.Qfrom.ToString("F3");
|
||||
targetFlowHighLabel.Text = args.Test.Qto.ToString("F3");
|
||||
targetVolumeLabel.Text = args.Test.Volume.ToString("F1");
|
||||
targetRefCountLabel.Text = args.TotalPulses.ToString();
|
||||
estmtdTimeLabel.Text = args.Test.TstTime.ToString("F1");
|
||||
|
||||
/// Names of virtual bench components
|
||||
if (args.BenchPath.PressMtrUp != null) prInCmpntLabel.Text = args.BenchPath.PressMtrUp.Name;
|
||||
if (args.BenchPath.PressMtrDown != null) prOutCmpntLabel.Text = args.BenchPath.PressMtrDown.Name;
|
||||
if (args.BenchPath.TempMtrUp != null) tInCmpntLabel.Text = args.BenchPath.TempMtrUp.Name;
|
||||
if (args.BenchPath.TempMtrDown != null) tOutCmpntLabel.Text = args.BenchPath.TempMtrDown.Name;
|
||||
if (args.OutputPath.TempDiv != null) tDivCmpntLabel.Text = args.OutputPath.TempDiv.Name;
|
||||
if (args.OutputPath.FlowMeter != null) refFlowCmpntLabel.Text = args.OutputPath.FlowMeter.Name;
|
||||
if (args.OutputPath.RegulValve != null) regValveCmpntLabel.Text = args.OutputPath.RegulValve.Name;
|
||||
if (args.OutputPath.Scale != null) scaleCmpntLabel.Text = args.OutputPath.Scale.Name;
|
||||
|
||||
for (int i = 0; i < textBoxesCount; i++)
|
||||
{
|
||||
sensor[i].Text = (args.MetersPath.RegisterReaders[i] == null) ? "" : args.MetersPath.RegisterReaders[i].Cfg.Name;
|
||||
}
|
||||
|
||||
if (args.FeedingPath != null && (args.FeedingPath.Pump is BenchControl.GenericDevices.IPumpFM))
|
||||
{
|
||||
pumpPctTextBox.Visible = true;
|
||||
pumpPctTextBox.Text = (args.FeedingPath.Pump as BenchControl.GenericDevices.IPumpFM).Power.ToString("F0") + " %";
|
||||
}
|
||||
else
|
||||
{
|
||||
pumpPctTextBox.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcessDataChanged(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
///
|
||||
/// Always available
|
||||
///
|
||||
airTempLabel.Text = ProcessData.AmbTemp.ToString();
|
||||
airPressLabel.Text = Config.Units.ConvertTo(Config.Unit.mbar, ProcessData.AmbPress.Val).ToString("F0");
|
||||
airHumiLabel.Text = ProcessData.AmbHumi.ToString();
|
||||
|
||||
tInLabel.Text = ProcessData.TempUp.ToString();
|
||||
tOutLabel.Text = ProcessData.TempDown.ToString();
|
||||
tDivLabel.Text = ProcessData.TempDiv.ToString();
|
||||
|
||||
prInLabel.Text = ProcessData.PressUp.ToString();
|
||||
prOutLabel.Text = ProcessData.PressDown.ToString();
|
||||
|
||||
massLabel.Text = ProcessData.Mass.ToString();
|
||||
|
||||
if (args.TestPhase == Config.Entities.Progress.FlowSetting ||
|
||||
args.TestPhase == Config.Entities.Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available when setting the flow and during a test
|
||||
///
|
||||
refFreqLabel.Text = ProcessData.RefFreq.ToString();
|
||||
refFlowLabel.Text = Utils.DoubleToStr(ProcessData.RefFlow.Val, 4);
|
||||
}
|
||||
|
||||
if (args.TestPhase == Config.Entities.Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available only during a test
|
||||
///
|
||||
refPulsesLabel.Text = ProcessData.RefPulses.ToString();
|
||||
double refVolume = ProcessData.LtrPerRefPulse * (double)ProcessData.RefPulses;
|
||||
refVolumeLabel.Text = refVolume.ToString("F2");
|
||||
|
||||
double massDiff = ProcessData.Mass.Val - ProcessData.StartMass.Val;
|
||||
massDiffLabel.Text = massDiff.ToString("F3");
|
||||
double volumeCtv = 1000 * Config.Formulas.Buoyancy() * massDiff / Config.Formulas.WaterDensityFromTempPress((ProcessData.TempUp.Val + ProcessData.TempDown.Val) / 2,
|
||||
(ProcessData.PressUp.Val + ProcessData.PressDown.Val) / 2,
|
||||
Program.LocalSettings.RealDensity,
|
||||
Program.LocalSettings.AtTemperature); /// [kg/m3]
|
||||
volumeCtvLabel.Text = volumeCtv.ToString("F2");
|
||||
double refError = Config.Formulas.ErrorFromVolumes(refVolume, volumeCtv);
|
||||
refErrorLabel.Text = refError.ToString("F3");
|
||||
|
||||
if (currentMetersKind == MetersKind.Single || currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
for (int i = 0; i < Math.Min(textBoxesCount, ProcessData.RegisterReaders.Length); i++)
|
||||
{
|
||||
BenchControl.GenericDevices.IRegisterReader rr = ProcessData.RegisterReaders[i];
|
||||
if (rr != null)
|
||||
{
|
||||
pulses[i].Text = rr.WMPulses.ToString();
|
||||
refPulses[i].Text = rr.WMRefPulses.ToString();
|
||||
volume[i].Text = rr.WMVolume.ToString("F1");
|
||||
error[i].Text = Config.Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int compMtr = 0; compMtr < Config.Data.CompoundWMsCount; compMtr++)
|
||||
{
|
||||
int end = Math.Min(2 * compMtr + 2, Math.Min(textBoxesCount, ProcessData.RegisterReaders.Length));
|
||||
|
||||
double compoundVolume = 0;
|
||||
for (int i = 2 * compMtr; i < end; i++)
|
||||
{
|
||||
BenchControl.GenericDevices.IRegisterReader rr = ProcessData.RegisterReaders[i];
|
||||
if (rr != null)
|
||||
{
|
||||
pulses[i].Text = rr.WMPulses.ToString();
|
||||
refPulses[i].Text = rr.WMRefPulses.ToString();
|
||||
volume[i].Text = rr.WMVolume.ToString("F1");
|
||||
error[i].Text = Config.Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
compoundVolume += rr.WMVolume;
|
||||
}
|
||||
}
|
||||
|
||||
cmpndVolume[compMtr].Text = compoundVolume.ToString("F1");
|
||||
cmpndError[compMtr].Text = Config.Formulas.ErrorFromVolumes(compoundVolume, refVolume).ToString("F1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if (pumpOn != args.PumpOn || diverterToTank != args.DivToTank)
|
||||
//{
|
||||
// //if (pumpOn != args.PumpOn)
|
||||
// //{
|
||||
// // if (pumpOn) pumpPictureBox.Image = System.Resources.
|
||||
// // else pumpPictureBox.Image = System.Resources.
|
||||
// //}
|
||||
// pumpOn = args.PumpOn;
|
||||
// diverterToTank = args.DivToTank;
|
||||
// Invalidate();
|
||||
//}
|
||||
}
|
||||
|
||||
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
Results.Entities.TestRslt tRes = args.TestRslt;
|
||||
if (tRes == null) return;
|
||||
|
||||
airTempLabel.Text = tRes.AmbTempMean.ToString("F1");
|
||||
airPressLabel.Text = Config.Units.ConvertTo(Config.Unit.mbar, tRes.AmbPressMean).ToString("F0");
|
||||
airHumiLabel.Text = tRes.AmbHumiMean.ToString("F1");
|
||||
|
||||
tInLabel.Text = tRes.TempUpMean.ToString("F2");
|
||||
tOutLabel.Text = tRes.TempDownMean.ToString("F2");
|
||||
tDivLabel.Text = tRes.TempDivMean.ToString("F2");
|
||||
|
||||
prInLabel.Text = tRes.PressUpMean.ToString("F2");
|
||||
prOutLabel.Text = tRes.PressDownMean.ToString("F2");
|
||||
|
||||
massLabel.Text = ProcessData.Mass.ToString();
|
||||
massDiffLabel.Text = (tRes.MassEnd - tRes.MassStart).ToString("F3");
|
||||
|
||||
refPulsesLabel.Text = tRes.PulsesMaster.ToString("F0");
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = Utils.DoubleToStr(tRes.FlowVolume, 4);
|
||||
|
||||
refVolumeLabel.Text = tRes.VolumeCTV.ToString("F2");
|
||||
//regValvePosLabel.Text = tstRslt.
|
||||
|
||||
volumeCtvLabel.Text = tRes.VolumeCTV.ToString("F1");
|
||||
refErrorLabel.Text = (tRes.ErrorMaster == 0) ? "---" : tRes.ErrorMaster.ToString("F3");
|
||||
|
||||
if (!tRes.Batch.Compound)
|
||||
{
|
||||
for (int i = 0; i < Math.Min(textBoxesCount, ProcessData.BatchRslts.WaterMeters.Length); i++)
|
||||
{
|
||||
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[i];
|
||||
Results.Entities.MeterTestRslt mtr = (wm != null) ? wm.GetMeterTestRslt(args.TestName) : null;
|
||||
|
||||
if (mtr != null)
|
||||
{
|
||||
pulses[i].Text = mtr.PulsesMeter.ToString("F0");
|
||||
refPulses[i].Text = mtr.PulsesMaster.ToString("F0");
|
||||
volume[i].Text = mtr.VolumeMeter.ToString("F2");
|
||||
error[i].Text = mtr.Error.ToString("F2");
|
||||
passed[i].Text = mtr.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int compMtr = 0; compMtr < Config.Data.CompoundWMsCount; compMtr++)
|
||||
{
|
||||
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[compMtr];
|
||||
if (wm == null) continue;
|
||||
|
||||
int end = Math.Min(textBoxesCount, Config.Data.WMsCount);
|
||||
|
||||
Results.Entities.MeterTestRslt mtrMain = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundMain);
|
||||
if ((mtrMain != null) && (2 * compMtr < end))
|
||||
{
|
||||
pulses[2 * compMtr].Text = mtrMain.PulsesMeter.ToString("F0");
|
||||
refPulses[2 * compMtr].Text = mtrMain.PulsesMaster.ToString("F0");
|
||||
volume[2 * compMtr].Text = mtrMain.VolumeMeter.ToString("F2");
|
||||
error[2 * compMtr].Text = mtrMain.Error.ToString("F2");
|
||||
passed[2 * compMtr].Text = mtrMain.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
Results.Entities.MeterTestRslt mtrAux = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundAux);
|
||||
if ((mtrAux != null) && (2 * compMtr + 1 < end))
|
||||
{
|
||||
pulses[2 * compMtr + 1].Text = mtrAux.PulsesMeter.ToString("F0");
|
||||
refPulses[2 * compMtr + 1].Text = mtrAux.PulsesMaster.ToString("F0");
|
||||
volume[2 * compMtr + 1].Text = mtrAux.VolumeMeter.ToString("F2");
|
||||
error[2 * compMtr + 1].Text = mtrAux.Error.ToString("F2");
|
||||
passed[2 * compMtr + 1].Text = mtrAux.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
Results.Entities.MeterTestRslt mtrComp = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.Compound);
|
||||
if (mtrComp != null)
|
||||
{
|
||||
cmpndVolume[compMtr].Text = mtrComp.VolumeMeter.ToString("F2");
|
||||
cmpndError[compMtr].Text = mtrComp.Error.ToString("F2");
|
||||
cmpndPassed[compMtr].Text = mtrComp.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcedureCompleted(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
System.Drawing.Graphics formGraphics = this.CreateGraphics();
|
||||
|
||||
System.Drawing.SolidBrush filledBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
|
||||
System.Drawing.SolidBrush emptyBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Gray);
|
||||
System.Drawing.SolidBrush benchBrush = (pumpOn ? filledBrush : emptyBrush);
|
||||
|
||||
int diam = 14; // pipe diameter (pixels)
|
||||
int left = 20; // left-most pipe x-coordinate
|
||||
int top = 14; // top-most pipe y-coordinate
|
||||
int topLeft = 876;
|
||||
int topRight = 966;
|
||||
int divTop = 40;
|
||||
int bottom = 504; // bottom-most pipe y-coordinate
|
||||
int benchTop = 378; // bench-pipe top y-coordinate
|
||||
int pumpLeft = 779;
|
||||
int pumpWdth = 38;
|
||||
|
||||
/// Pipes
|
||||
formGraphics.FillRectangle(filledBrush,new Rectangle(pumpLeft+pumpWdth, bottom-diam, 65, diam)); // tank -> pump
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, bottom-diam, pumpLeft-left, diam)); // pump ->bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, benchTop, diam, bottom-benchTop)); // ->bench vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left + diam, benchTop, topLeft-left, diam)); // bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top + diam, diam, benchTop-top-diam)); // bench -> top vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top, topRight-topLeft, diam)); // top horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topRight-diam, top+diam, diam, divTop-top-diam)); // top -> diverter vertical
|
||||
|
||||
/// Diverter
|
||||
int displacement = diverterToTank ? 25 : -25;
|
||||
Point[] points = new Point[4];
|
||||
points[0].X = topRight - diam;
|
||||
points[0].Y = divTop;
|
||||
points[1].X = topRight;
|
||||
points[1].Y = divTop;
|
||||
points[2].X = topRight + displacement;
|
||||
points[2].Y = divTop + 50;
|
||||
points[3].X = topRight - diam + displacement;
|
||||
points[3].Y = divTop + 50;
|
||||
formGraphics.FillPolygon(benchBrush, points);
|
||||
|
||||
/// Sink
|
||||
formGraphics.FillEllipse(emptyBrush, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
formGraphics.DrawEllipse(Pens.Black, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
|
||||
/// Tank
|
||||
formGraphics.DrawRectangle(Pens.Black, topRight - diam / 2, divTop + 51, 60, 80);
|
||||
|
||||
|
||||
emptyBrush.Dispose();
|
||||
filledBrush.Dispose();
|
||||
formGraphics.Dispose();
|
||||
}
|
||||
|
||||
private void PaintBypass(System.Drawing.Graphics formGraphics, System.Drawing.SolidBrush brush, int startX, int startY)
|
||||
{
|
||||
int w = 80;
|
||||
int h = 43;
|
||||
int diam = 10; // pipe diameter (pixels)
|
||||
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY, diam, h - diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY + h - diam, w, diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX + w - diam, startY, diam, h));
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-5
@@ -1885,11 +1885,11 @@
|
||||
<Compile Include="Screens\ProcessTabPageCtrl48.Designer.cs">
|
||||
<DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Screens\ProcessTabPageHeatMetersCtrl.cs">
|
||||
<Compile Include="Screens\ProcessTabPageExCtrl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Screens\ProcessTabPageHeatMetersCtrl.Designer.cs">
|
||||
<DependentUpon>ProcessTabPageHeatMetersCtrl.cs</DependentUpon>
|
||||
<Compile Include="Screens\ProcessTabPageExCtrl.Designer.cs">
|
||||
<DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SelectComponentClassDlg.cs">
|
||||
<SubType>Form</SubType>
|
||||
@@ -2951,8 +2951,8 @@
|
||||
<EmbeddedResource Include="Screens\ProcessTabPageCtrl48.resx">
|
||||
<DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Screens\ProcessTabPageHeatMetersCtrl.resx">
|
||||
<DependentUpon>ProcessTabPageHeatMetersCtrl.cs</DependentUpon>
|
||||
<EmbeddedResource Include="Screens\ProcessTabPageExCtrl.resx">
|
||||
<DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SelectComponentClassDlg.pl.resx">
|
||||
<DependentUpon>SelectComponentClassDlg.cs</DependentUpon>
|
||||
|
||||
Reference in New Issue
Block a user