TBF.Screens.ProcessTabPageHeatMetersCtrl completed.
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+1
-1
@@ -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;
|
||||||
|
|||||||
Generated
+29
-11
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 + ":";
|
||||||
|
|||||||
Generated
+2
-2
@@ -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();
|
||||||
@@ -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">
|
<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>
|
||||||
|
|||||||
Reference in New Issue
Block a user