TBF.Screens.ProcessTabPageHeatMetersCtrl completed.

This commit is contained in:
Milan Hanajik
2019-03-17 12:29:04 +01:00
parent 0c964fdb5b
commit 77c26abc02
17 changed files with 792 additions and 596 deletions
@@ -82,12 +82,12 @@ namespace TBF.BenchControl.TestMethods.PulsesTest
groupBox4.Text = Strings.Water_Meter + " 4"; groupBox4.Text = Strings.Water_Meter + " 4";
groupBox5.Text = Strings.Water_Meter + " 5"; groupBox5.Text = Strings.Water_Meter + " 5";
groupBox6.Text = Strings.Water_Meter + " 6"; groupBox6.Text = Strings.Water_Meter + " 6";
wmPulsesCountLabel1.Text = Strings.Pulses_; wmPulsesCountLabel1.Text = Strings.Pulses_count;
wmPulsesCountLabel2.Text = Strings.Pulses_; wmPulsesCountLabel2.Text = Strings.Pulses_count;
wmPulsesCountLabel3.Text = Strings.Pulses_; wmPulsesCountLabel3.Text = Strings.Pulses_count;
wmPulsesCountLabel4.Text = Strings.Pulses_; wmPulsesCountLabel4.Text = Strings.Pulses_count;
wmPulsesCountLabel5.Text = Strings.Pulses_; wmPulsesCountLabel5.Text = Strings.Pulses_count;
wmPulsesCountLabel6.Text = Strings.Pulses_; wmPulsesCountLabel6.Text = Strings.Pulses_count;
} }
private void WMPulsesForm_Load(object sender, EventArgs e) private void WMPulsesForm_Load(object sender, EventArgs e)
@@ -135,7 +135,7 @@ namespace TBF.BenchControl.TestMethods.PulsesTest
Text = Strings.Water_Meter_States; Text = Strings.Water_Meter_States;
for (int i = 0; i < textBoxesCount; i++) 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; Text = Strings.Water_Meter_States;
for (int i = 0; i < textBoxesCount; i++) 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);
} }
} }
+1 -1
View File
@@ -684,7 +684,7 @@ namespace TBF
private TBF.Screens.ProcessTabPageCtrl24 processTabPageCtrl; private TBF.Screens.ProcessTabPageCtrl24 processTabPageCtrl;
#elif SLM_50 #elif SLM_50
private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent;
private TBF.Screens.ProcessTabPageHeatMetersCtrl processTabPageCtrl; private TBF.Screens.ProcessTabPageExCtrl processTabPageCtrl;
#elif TURA_IPERL || IZRAEL_50 #elif TURA_IPERL || IZRAEL_50
private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent;
private TBF.Screens.ProcessTabPageCtrl48 processTabPageCtrl; private TBF.Screens.ProcessTabPageCtrl48 processTabPageCtrl;
+29 -11
View File
@@ -864,9 +864,9 @@ namespace TBF.Resources {
/// <summary> /// <summary>
/// Looks up a localized string similar to Compound meter {0}. /// Looks up a localized string similar to Compound meter {0}.
/// </summary> /// </summary>
internal static string Compound_meter_nr { internal static string Compound_meter_0 {
get { get {
return ResourceManager.GetString("Compound_meter_nr", resourceCulture); return ResourceManager.GetString("Compound_meter_0", resourceCulture);
} }
} }
@@ -3364,11 +3364,20 @@ namespace TBF.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Pulses:. /// Looks up a localized string similar to Pulses.
/// </summary> /// </summary>
internal static string Pulses_ { internal static string Pulses {
get { 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> /// <summary>
/// Looks up a localized string similar to Ref.pulses:. /// Looks up a localized string similar to Ref. pulses.
/// </summary> /// </summary>
internal static string Ref_pulses_ { internal static string Ref_pulses {
get { 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> /// <summary>
/// Looks up a localized string similar to Reg. valve pos.:. /// Looks up a localized string similar to Reg. valve pos..
/// </summary> /// </summary>
internal static string Reg_valve_pos_ { internal static string Reg_valve_pos {
get { get {
return ResourceManager.GetString("Reg_valve_pos_", resourceCulture); return ResourceManager.GetString("Reg_valve_pos", resourceCulture);
} }
} }
+25 -10
View File
@@ -154,7 +154,7 @@
<value>Okolní teplota</value> <value>Okolní teplota</value>
</data> </data>
<data name="An_unhandled_error_occured" xml:space="preserve"> <data name="An_unhandled_error_occured" xml:space="preserve">
<value>Neošetřená chyba</value> <value>Nastala neošetřená chyba</value>
</data> </data>
<data name="Approval" xml:space="preserve"> <data name="Approval" xml:space="preserve">
<value>Schválení</value> <value>Schválení</value>
@@ -169,7 +169,7 @@
<value>Schválení info.</value> <value>Schválení info.</value>
</data> </data>
<data name="Approved_by" xml:space="preserve"> <data name="Approved_by" xml:space="preserve">
<value>Schváleno</value> <value>Schválil</value>
</data> </data>
<data name="Arrangement_of_meters" xml:space="preserve"> <data name="Arrangement_of_meters" xml:space="preserve">
<value>Uspořádání testovaných měřidel</value> <value>Uspořádání testovaných měřidel</value>
@@ -205,22 +205,22 @@
<value>Váha</value> <value>Váha</value>
</data> </data>
<data name="Bench_chdr" xml:space="preserve"> <data name="Bench_chdr" xml:space="preserve">
<value>Stolice</value> <value>Stanice</value>
</data> </data>
<data name="Bench_is_not_running" xml:space="preserve"> <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>
<data name="Bench_name_conflict_Use_another_name_pls" xml:space="preserve"> <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>
<data name="Bench_parameters" xml:space="preserve"> <data name="Bench_parameters" xml:space="preserve">
<value>Parametry stolice</value> <value>Parametry stanice</value>
</data> </data>
<data name="BuildDateStr" xml:space="preserve"> <data name="BuildDateStr" xml:space="preserve">
<value>Datum sestavení {0}</value> <value>Datum sestavení {0}</value>
</data> </data>
<data name="Calibration_Specialist" xml:space="preserve"> <data name="Calibration_Specialist" xml:space="preserve">
<value>Kalibrace Specialist</value> <value>Specialista pro kalibraci</value>
</data> </data>
<data name="Camera_error" xml:space="preserve"> <data name="Camera_error" xml:space="preserve">
<value>Chyba kamery</value> <value>Chyba kamery</value>
@@ -238,7 +238,7 @@
<value>zavřít</value> <value>zavřít</value>
</data> </data>
<data name="Close_emptying_valve" xml:space="preserve"> <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>
<data name="CloseBtnText" xml:space="preserve"> <data name="CloseBtnText" xml:space="preserve">
<value>Zavřít</value> <value>Zavřít</value>
@@ -268,7 +268,7 @@
<value>Konfigurovat</value> <value>Konfigurovat</value>
</data> </data>
<data name="ConfigureDatabaseText" xml:space="preserve"> <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>
<data name="Confirmation" xml:space="preserve"> <data name="Confirmation" xml:space="preserve">
<value>Potvrzení</value> <value>Potvrzení</value>
@@ -769,7 +769,7 @@
<value>Režim reakce</value> <value>Režim reakce</value>
</data> </data>
<data name="Reference" xml:space="preserve"> <data name="Reference" xml:space="preserve">
<value>Odkaz</value> <value>Etalon</value>
</data> </data>
<data name="Reg_valve" xml:space="preserve"> <data name="Reg_valve" xml:space="preserve">
<value>Reg. ventil</value> <value>Reg. ventil</value>
@@ -1407,4 +1407,19 @@
<data name="Wrong_iPerl_counting_direction" xml:space="preserve"> <data name="Wrong_iPerl_counting_direction" xml:space="preserve">
<value>Nesprávny smer počítania iPerlu</value> <value>Nesprávny smer počítania iPerlu</value>
</data> </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> </root>
+7 -7
View File
@@ -1014,7 +1014,7 @@
<data name="Air_temperature" xml:space="preserve"> <data name="Air_temperature" xml:space="preserve">
<value>Umgebungstemperatur</value> <value>Umgebungstemperatur</value>
</data> </data>
<data name="Compound_meter_nr" xml:space="preserve"> <data name="Compound_meter_0" xml:space="preserve">
<value>Verbundwasserzähler {0}</value> <value>Verbundwasserzähler {0}</value>
</data> </data>
<data name="Estimated_time_s_" xml:space="preserve"> <data name="Estimated_time_s_" xml:space="preserve">
@@ -1032,8 +1032,8 @@
<data name="Pr_up" xml:space="preserve"> <data name="Pr_up" xml:space="preserve">
<value>Dr. ob.</value> <value>Dr. ob.</value>
</data> </data>
<data name="Pulses_" xml:space="preserve"> <data name="Pulses" xml:space="preserve">
<value>Impulse:</value> <value>Impulse</value>
</data> </data>
<data name="Ref_error_pct_" xml:space="preserve"> <data name="Ref_error_pct_" xml:space="preserve">
<value>Referenzfehler [%]:</value> <value>Referenzfehler [%]:</value>
@@ -1044,14 +1044,14 @@
<data name="Ref_freq_Hz_" xml:space="preserve"> <data name="Ref_freq_Hz_" xml:space="preserve">
<value>Ref.Frequenz [Hz]:</value> <value>Ref.Frequenz [Hz]:</value>
</data> </data>
<data name="Ref_pulses_" xml:space="preserve"> <data name="Ref_pulses" xml:space="preserve">
<value>Ref.Impulse:</value> <value>Ref.Impulse</value>
</data> </data>
<data name="Ref_volume_l_" xml:space="preserve"> <data name="Ref_volume_l_" xml:space="preserve">
<value>Ref.Volumen [l]:</value> <value>Ref.Volumen [l]:</value>
</data> </data>
<data name="Reg_valve_pos_" xml:space="preserve"> <data name="Reg_valve_pos" xml:space="preserve">
<value>Reg.Ventilpos.:</value> <value>Reg.Ventilpos.</value>
</data> </data>
<data name="Target_flow_hi_m3h_" xml:space="preserve"> <data name="Target_flow_hi_m3h_" xml:space="preserve">
<value>Prüfdurchfluss Hi [m3/h]:</value> <value>Prüfdurchfluss Hi [m3/h]:</value>
+6 -6
View File
@@ -1209,7 +1209,7 @@
<data name="Air_temperature" xml:space="preserve"> <data name="Air_temperature" xml:space="preserve">
<value>Temperatura dell'aria</value> <value>Temperatura dell'aria</value>
</data> </data>
<data name="Compound_meter_nr" xml:space="preserve"> <data name="Compound_meter_0" xml:space="preserve">
<value>misuratore composto {0}</value> <value>misuratore composto {0}</value>
</data> </data>
<data name="Error_" xml:space="preserve"> <data name="Error_" xml:space="preserve">
@@ -1230,8 +1230,8 @@
<data name="Pr_up" xml:space="preserve"> <data name="Pr_up" xml:space="preserve">
<value>Pr su</value> <value>Pr su</value>
</data> </data>
<data name="Pulses_" xml:space="preserve"> <data name="Pulses" xml:space="preserve">
<value>impulsi:</value> <value>impulsi</value>
</data> </data>
<data name="Ref_error_pct_" xml:space="preserve"> <data name="Ref_error_pct_" xml:space="preserve">
<value>Riferimento errore [%]:</value> <value>Riferimento errore [%]:</value>
@@ -1242,14 +1242,14 @@
<data name="Ref_freq_Hz_" xml:space="preserve"> <data name="Ref_freq_Hz_" xml:space="preserve">
<value>riferimento frequenza [Hz]:</value> <value>riferimento frequenza [Hz]:</value>
</data> </data>
<data name="Ref_pulses_" xml:space="preserve"> <data name="Ref_pulses" xml:space="preserve">
<value>riferimento impulsi</value> <value>riferimento impulsi</value>
</data> </data>
<data name="Ref_volume_l_" xml:space="preserve"> <data name="Ref_volume_l_" xml:space="preserve">
<value>riferimento volume [l]:</value> <value>riferimento volume [l]:</value>
</data> </data>
<data name="Reg_valve_pos_" xml:space="preserve"> <data name="Reg_valve_pos" xml:space="preserve">
<value>posizionamento della valvola:</value> <value>posizionamento della valvola</value>
</data> </data>
<data name="Target_flow_hi_m3h_" xml:space="preserve"> <data name="Target_flow_hi_m3h_" xml:space="preserve">
<value>target flusso massimo [m3/h]:</value> <value>target flusso massimo [m3/h]:</value>
+7 -7
View File
@@ -1233,7 +1233,7 @@
<data name="Air_temperature" xml:space="preserve"> <data name="Air_temperature" xml:space="preserve">
<value>Temperatura otoczenia</value> <value>Temperatura otoczenia</value>
</data> </data>
<data name="Compound_meter_nr" xml:space="preserve"> <data name="Compound_meter_0" xml:space="preserve">
<value>Licznik sprzężony {0}</value> <value>Licznik sprzężony {0}</value>
</data> </data>
<data name="Estimated_time_s_" xml:space="preserve"> <data name="Estimated_time_s_" xml:space="preserve">
@@ -1251,8 +1251,8 @@
<data name="Pr_up" xml:space="preserve"> <data name="Pr_up" xml:space="preserve">
<value>Pr do góry</value> <value>Pr do góry</value>
</data> </data>
<data name="Pulses_" xml:space="preserve"> <data name="Pulses" xml:space="preserve">
<value>Impulsy:</value> <value>Impulsy</value>
</data> </data>
<data name="Ref_error_pct_" xml:space="preserve"> <data name="Ref_error_pct_" xml:space="preserve">
<value>Zakres błedu [%]</value> <value>Zakres błedu [%]</value>
@@ -1263,14 +1263,14 @@
<data name="Ref_freq_Hz_" xml:space="preserve"> <data name="Ref_freq_Hz_" xml:space="preserve">
<value>Zakres częstotliwości [Hz]</value> <value>Zakres częstotliwości [Hz]</value>
</data> </data>
<data name="Ref_pulses_" xml:space="preserve"> <data name="Ref_pulses" xml:space="preserve">
<value>Zakres impulsów:</value> <value>Zakres impulsów</value>
</data> </data>
<data name="Ref_volume_l_" xml:space="preserve"> <data name="Ref_volume_l_" xml:space="preserve">
<value>Zakres objętości [l]</value> <value>Zakres objętości [l]</value>
</data> </data>
<data name="Reg_valve_pos_" xml:space="preserve"> <data name="Reg_valve_pos" xml:space="preserve">
<value>Położenie zawaoru regulacyjnego:</value> <value>Położenie zawaoru regulacyjnego</value>
</data> </data>
<data name="Target_flow_hi_m3h_" xml:space="preserve"> <data name="Target_flow_hi_m3h_" xml:space="preserve">
<value>Zadany przepływ max. [m3/h]</value> <value>Zadany przepływ max. [m3/h]</value>
+13 -7
View File
@@ -1210,7 +1210,7 @@
<data name="Air_temperature" xml:space="preserve"> <data name="Air_temperature" xml:space="preserve">
<value>Air temperature</value> <value>Air temperature</value>
</data> </data>
<data name="Compound_meter_nr" xml:space="preserve"> <data name="Compound_meter_0" xml:space="preserve">
<value>Compound meter {0}</value> <value>Compound meter {0}</value>
</data> </data>
<data name="Estimated_time_s_" xml:space="preserve"> <data name="Estimated_time_s_" xml:space="preserve">
@@ -1231,8 +1231,8 @@
<data name="Pr_up" xml:space="preserve"> <data name="Pr_up" xml:space="preserve">
<value>Pr up</value> <value>Pr up</value>
</data> </data>
<data name="Pulses_" xml:space="preserve"> <data name="Pulses" xml:space="preserve">
<value>Pulses:</value> <value>Pulses</value>
</data> </data>
<data name="Ref_error_pct_" xml:space="preserve"> <data name="Ref_error_pct_" xml:space="preserve">
<value>Ref. error [%]:</value> <value>Ref. error [%]:</value>
@@ -1243,14 +1243,14 @@
<data name="Ref_freq_Hz_" xml:space="preserve"> <data name="Ref_freq_Hz_" xml:space="preserve">
<value>Ref. freq. [Hz]:</value> <value>Ref. freq. [Hz]:</value>
</data> </data>
<data name="Ref_pulses_" xml:space="preserve"> <data name="Ref_pulses" xml:space="preserve">
<value>Ref.pulses:</value> <value>Ref. pulses</value>
</data> </data>
<data name="Ref_volume_l_" xml:space="preserve"> <data name="Ref_volume_l_" xml:space="preserve">
<value>Ref. volume [l]:</value> <value>Ref. volume [l]:</value>
</data> </data>
<data name="Reg_valve_pos_" xml:space="preserve"> <data name="Reg_valve_pos" xml:space="preserve">
<value>Reg. valve pos.:</value> <value>Reg. valve pos.</value>
</data> </data>
<data name="Target_flow_hi_m3h_" xml:space="preserve"> <data name="Target_flow_hi_m3h_" xml:space="preserve">
<value>Target flow high [m3/h]:</value> <value>Target flow high [m3/h]:</value>
@@ -1963,4 +1963,10 @@
<data name="Wrong_iPerl_counting_direction" xml:space="preserve"> <data name="Wrong_iPerl_counting_direction" xml:space="preserve">
<value>Wrong iPerl counting direction</value> <value>Wrong iPerl counting direction</value>
</data> </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> </root>
+7 -7
View File
@@ -1200,7 +1200,7 @@
<data name="Air_temperature" xml:space="preserve"> <data name="Air_temperature" xml:space="preserve">
<value>Температура воздуха</value> <value>Температура воздуха</value>
</data> </data>
<data name="Compound_meter_nr" xml:space="preserve"> <data name="Compound_meter_0" xml:space="preserve">
<value>Комбинированный счетчик {0}</value> <value>Комбинированный счетчик {0}</value>
</data> </data>
<data name="Estimated_time_s_" xml:space="preserve"> <data name="Estimated_time_s_" xml:space="preserve">
@@ -1218,8 +1218,8 @@
<data name="Pr_up" xml:space="preserve"> <data name="Pr_up" xml:space="preserve">
<value>Pr up</value> <value>Pr up</value>
</data> </data>
<data name="Pulses_" xml:space="preserve"> <data name="Pulses" xml:space="preserve">
<value>Импульсы:</value> <value>Импульсы</value>
</data> </data>
<data name="Ref_error_pct_" xml:space="preserve"> <data name="Ref_error_pct_" xml:space="preserve">
<value>Эт. отклонение [%]:</value> <value>Эт. отклонение [%]:</value>
@@ -1230,14 +1230,14 @@
<data name="Ref_freq_Hz_" xml:space="preserve"> <data name="Ref_freq_Hz_" xml:space="preserve">
<value>Эт.частота [Hz]:</value> <value>Эт.частота [Hz]:</value>
</data> </data>
<data name="Ref_pulses_" xml:space="preserve"> <data name="Ref_pulses" xml:space="preserve">
<value>Эт.импульсы:</value> <value>Эт.импульсы</value>
</data> </data>
<data name="Ref_volume_l_" xml:space="preserve"> <data name="Ref_volume_l_" xml:space="preserve">
<value>Эт.объем [л]:</value> <value>Эт.объем [л]:</value>
</data> </data>
<data name="Reg_valve_pos_" xml:space="preserve"> <data name="Reg_valve_pos" xml:space="preserve">
<value>Полож.рег.вент.:</value> <value>Полож.рег.вент.</value>
</data> </data>
<data name="Target_flow_hi_m3h_" xml:space="preserve"> <data name="Target_flow_hi_m3h_" xml:space="preserve">
<value>Заданный расход максимальный [м3/ч]:</value> <value>Заданный расход максимальный [м3/ч]:</value>
+5 -5
View File
@@ -143,8 +143,8 @@ namespace TBF.Screens
tOutCapLabel.Text = string.Format("{0} [°C]:", Strings.T_out); tOutCapLabel.Text = string.Format("{0} [°C]:", Strings.T_out);
tDivCapLabel.Text = string.Format("{0} [°C]:", Strings.T_div); tDivCapLabel.Text = string.Format("{0} [°C]:", Strings.T_div);
regValvePosCapLabel.Text = Strings.Reg_valve_pos_; regValvePosCapLabel.Text = string.Format("{0}:", Strings.Reg_valve_pos);
refPulsesCapLabel.Text = Strings.Ref_pulses_; refPulsesCapLabel.Text = string.Format("{0}:", Strings.Ref_pulses);
refFreqCapLabel.Text = Strings.Ref_freq_Hz_; refFreqCapLabel.Text = Strings.Ref_freq_Hz_;
refFlowCapLabel.Text = Strings.Ref_flow_m3h_; refFlowCapLabel.Text = Strings.Ref_flow_m3h_;
refVolumeCapLabel.Text = Strings.Ref_volume_l_; 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)); 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; 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_; 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_; 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 + ":"; 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 + ":"; error1CapLabel.Text = error2CapLabel.Text = error3CapLabel.Text = error4CapLabel.Text = error5CapLabel.Text = error6CapLabel.Text = Strings.Error + ":";
GroupBox[] groupBoxesZ = new GroupBox[] { groupBox1z, groupBox2z, groupBox3z }; 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 + ":"; volume1zCapLabel.Text = volume2zCapLabel.Text = volume3zCapLabel.Text = Strings.Volume + ":";
error1zCapLabel.Text = error2zCapLabel.Text = error3zCapLabel.Text = Strings.Error + ":"; error1zCapLabel.Text = error2zCapLabel.Text = error3zCapLabel.Text = Strings.Error + ":";
@@ -3,7 +3,7 @@
/// ///
namespace TBF.Screens namespace TBF.Screens
{ {
partial class ProcessTabPageHeatMetersCtrl partial class ProcessTabPageExCtrl
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
@@ -31,7 +31,7 @@ namespace TBF.Screens
/// </summary> /// </summary>
private void InitializeComponent() 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.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.pumpPctTextBox = new System.Windows.Forms.TextBox(); this.pumpPctTextBox = new System.Windows.Forms.TextBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox();
+677
View File
@@ -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));
}
}
}
-520
View File
@@ -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
View File
@@ -1885,11 +1885,11 @@
<Compile Include="Screens\ProcessTabPageCtrl48.Designer.cs"> <Compile Include="Screens\ProcessTabPageCtrl48.Designer.cs">
<DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon> <DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Screens\ProcessTabPageHeatMetersCtrl.cs"> <Compile Include="Screens\ProcessTabPageExCtrl.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
<Compile Include="Screens\ProcessTabPageHeatMetersCtrl.Designer.cs"> <Compile Include="Screens\ProcessTabPageExCtrl.Designer.cs">
<DependentUpon>ProcessTabPageHeatMetersCtrl.cs</DependentUpon> <DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="SelectComponentClassDlg.cs"> <Compile Include="SelectComponentClassDlg.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
@@ -2951,8 +2951,8 @@
<EmbeddedResource Include="Screens\ProcessTabPageCtrl48.resx"> <EmbeddedResource Include="Screens\ProcessTabPageCtrl48.resx">
<DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon> <DependentUpon>ProcessTabPageCtrl48.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Screens\ProcessTabPageHeatMetersCtrl.resx"> <EmbeddedResource Include="Screens\ProcessTabPageExCtrl.resx">
<DependentUpon>ProcessTabPageHeatMetersCtrl.cs</DependentUpon> <DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="SelectComponentClassDlg.pl.resx"> <EmbeddedResource Include="SelectComponentClassDlg.pl.resx">
<DependentUpon>SelectComponentClassDlg.cs</DependentUpon> <DependentUpon>SelectComponentClassDlg.cs</DependentUpon>