From 2a94347f3ed58d987db2a32a4b850fcc7ccb6aa4 Mon Sep 17 00:00:00 2001 From: Michal Buzik Date: Wed, 24 Jan 2024 17:35:56 +0100 Subject: [PATCH] final modification for AdjustableMeter.cs, Added units A,V ElectricUnits, calculation based on [A] --- Common/Units.cs | 44 +- Config/Entities/BenchPath.cs | 6 + Config/Entities/Test.cs | 2 + SchematicDrawing/DrawingShape.cs | 6 + SchematicDrawing/Enums.cs | 1 + TBF/Resources/Strings.Designer.cs | 23 +- TBF/Resources/Strings.cs.resx | 6 + TBF/Resources/Strings.de.resx | 6 + TBF/Resources/Strings.fr.resx | 6 + TBF/Resources/Strings.it.resx | 6 + TBF/Resources/Strings.pl.resx | 6 + TBF/Resources/Strings.resx | 8 +- TBF/Resources/Strings.ro.resx | 6 + TBF/Resources/Strings.ru.resx | 6 + TBF/Resources/Strings.zh-CN.Designer.cs | 3302 +++++++++++++++++ TBF/Resources/Strings.zh-CN.resx | 6 + TBF/Rig/BenchPath.cs | 6 + TBF/Rig/DataContainer/BenchInfo/Component.cs | 1 + .../DataContainer/BenchInfo/ComponentCfg.cs | 1 + .../DataContainer/iPerlBenchInfo/Component.cs | 1 + .../iPerlBenchInfo/ComponentCfg.cs | 20 + TBF/Rig/GenericDevices/IAdjustableMeter.cs | 31 + TBF/Rig/GenericDevices/IBenchInfo.cs | 3 +- .../AdjustableScale/AdjustableMeter.cs} | 72 +- .../AdjustableScale/AdjustableMeterCfg.cs} | 38 +- .../AdjustableScale/Factory.cs | 10 +- .../Meret/AdjustableScale/ReadValueOp.cs | 60 + .../AdjustableScale/WaitUntilValueIsOp.cs} | 20 +- .../AdjustableScale/ReadPressureOp.cs | 60 - TBF/Rig/Sequences/ProcessData.cs | 4 + TBF/Rig/TbfComponents.cs | 2 +- TBF/Rig/TestMethods/Dummy/DummySeq.cs | 3 + TBF/TBF.csproj | 24 +- .../Bench/Components/ComponentsManagerDlg.cs | 6 + .../Bench/EditSchDrawing/EditSchDrawingDlg.cs | 8 +- TBF/UI/Bench/Metrology/MetrologyDlg.cs | 14 + .../MetrologyDlgAdjustableScaleTab.cs | 417 +++ ...MetrologyDlgAdjustableScaleTab.designer.cs | 231 ++ .../MetrologyDlgAdjustableScaleTab.resx | 120 + TBF/UI/Bench/Paths/PathsBenchCtrl.cs | 15 + TBF/UI/Graphs/GraphsTabPageCtrl.cs | 2 +- TBF/UI/Procedures/ProcedureDlg.cs | 2 + TBF/UI/Process/ProcessTabPageCtrl.cs | 49 +- .../Entities/MeasurementCorrectionTest.cs | 65 + 44 files changed, 4579 insertions(+), 146 deletions(-) create mode 100644 TBF/Rig/GenericDevices/IAdjustableMeter.cs rename TBF/Rig/Modbus/{PressureMeter/AdjustableScale/PressureMeter.cs => Meret/AdjustableScale/AdjustableMeter.cs} (71%) rename TBF/Rig/Modbus/{PressureMeter/AdjustableScale/PressureMeterCfg.cs => Meret/AdjustableScale/AdjustableMeterCfg.cs} (87%) rename TBF/Rig/Modbus/{PressureMeter => Meret}/AdjustableScale/Factory.cs (56%) create mode 100644 TBF/Rig/Modbus/Meret/AdjustableScale/ReadValueOp.cs rename TBF/Rig/Modbus/{PressureMeter/AdjustableScale/WaitUntilPressureIsOp.cs => Meret/AdjustableScale/WaitUntilValueIsOp.cs} (73%) delete mode 100644 TBF/Rig/Modbus/PressureMeter/AdjustableScale/ReadPressureOp.cs create mode 100644 TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.cs create mode 100644 TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.designer.cs create mode 100644 TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.resx create mode 100644 TBFTests/Entities/MeasurementCorrectionTest.cs diff --git a/Common/Units.cs b/Common/Units.cs index d39581320..cdf851e4d 100644 --- a/Common/Units.cs +++ b/Common/Units.cs @@ -105,6 +105,14 @@ namespace Common /// [Description("pulse/kWh")] ppkWh, /// * 1 pulse/kWh [Description("kWh/pulse")] kWhpp, /// 1 kWh/pulse + + /// + [Description("A")] A, /// *1 A + [Description("mA")] mA, /// 1 mA = 0.001 A + /// + [Description("V")] V, /// *1 V + [Description("mV")] mV, /// 1 mV = 0.001 V + Count } @@ -135,6 +143,8 @@ namespace Common [Description("Boolean")] Boolean, [Description("Datum und Uhrzeit")] DateTime, [Description("Aufgezählt")] Enumerated, + [Description("Strom")] Current, + [Description("Spannung")] Voltage, #elif LANG_PL [Description("Objętość")] Volume, [Description("Przepływ")] Flow, @@ -158,6 +168,8 @@ namespace Common [Description("Boolean")] Boolean, [Description("Data i czas")] DateTime, [Description("Wyliczone")] Enumerated, + [Description("Prąd")] Current, + [Description("Napięcie")] Voltage, #elif LANG_CS [Description("Objem")] Volume, [Description("Průtok")] Flow, @@ -181,6 +193,8 @@ namespace Common [Description("Boolean")] Boolean, [Description("Datum a čas")] DateTime, [Description("Vyjmenované")] Enumerated, + [Description("Proud")] Current, + [Description("Napětí")] Voltage, #elif LANG_IT [Description("Volume")] Volume, [Description("Flusso")] Flow, @@ -204,6 +218,8 @@ namespace Common [Description("Boolean")] Boolean, [Description("Data e ora")] DateTime, [Description("Enumerato")] Enumerated, + [Description("Corrente")] Current, + [Description("Voltaggio")] Voltage, #else [Description("Volume")] Volume, [Description("Flow")] Flow, @@ -227,6 +243,8 @@ namespace Common [Description("Boolean")] Boolean, [Description("Date and time")] DateTime, [Description("Enumerated")] Enumerated, + [Description("Current")] Current, + [Description("Voltage")] Voltage, #endif Count, } @@ -242,7 +260,8 @@ namespace Common { return unit == Unit.l || unit == Unit.m3ph || unit == Unit.kg || unit == Unit.s || unit == Unit.C || unit == Unit.bar || unit == Unit.RPct || unit == Unit.Pct || unit == Unit.mm || unit == Unit.kgpm3 || - unit == Unit.J || unit == Unit.uSpcm || unit == Unit.ppl || unit == Unit.ppkWh; + unit == Unit.J || unit == Unit.uSpcm || unit == Unit.ppl || unit == Unit.ppkWh || unit == Unit.A || + unit == Unit.V; } public static bool IsQuantity(Unit unit, Quantity quantity) @@ -351,6 +370,14 @@ namespace Common case Unit.ppkWh: case Unit.kWhpp: return Quantity.PulsePerKWh; + + case Unit.A: + case Unit.mA: + return Quantity.Current; + + case Unit.V: + case Unit.mV: + return Quantity.Voltage; default: return Quantity.Number; @@ -372,6 +399,8 @@ namespace Common public static bool IsPulsePerLtr(Unit unit) { return IsQuantity(unit, Quantity.PulsePerLtr); } public static bool IsPulsePerKWh(Unit unit) { return IsQuantity(unit, Quantity.PulsePerKWh); } public static bool IsConductivity(Unit unit) { return IsQuantity(unit, Quantity.Conductivity); } + public static bool IsCurrent(Unit unit) { return IsQuantity(unit, Quantity.Current); } + public static bool IsVoltage(Unit unit) { return IsQuantity(unit, Quantity.Voltage); } @@ -455,6 +484,13 @@ namespace Common case Unit.dm3pp: case Unit.lpdeg: case Unit.dm3pdeg: return (v <= float.Epsilon) ? 0 : 1/v; + + /// Current: internal representation in A + case Unit.mA: return 1000 * v; /// 1000 mA = 1 A + + /// Voltage: internal representation in V + case Unit.mV: return 1000 * v; /// 1000 mV = 1 V + default: return v; /// Do not convert } @@ -534,6 +570,12 @@ namespace Common /// Electrical conductivity case Unit.mSpm: return 10 * v; + + /// Current: internal representation in A + case Unit.mA: return 0.001 * v; /// 1 mA = 0.001 A + + /// Voltage: internal representation in V + case Unit.mV: return 0.001 * v; /// 1 mV = 0.001 V /// Invert case Unit.kWhpp: diff --git a/Config/Entities/BenchPath.cs b/Config/Entities/BenchPath.cs index adcfa9022..ed6d5bf65 100644 --- a/Config/Entities/BenchPath.cs +++ b/Config/Entities/BenchPath.cs @@ -22,6 +22,9 @@ namespace Config.Entities public virtual string PressMtrUp { get; set; } public virtual string PressMtrDown { get; set; } public virtual string PressMtrDelta { get; set; } + public virtual string ElectricMtrUp { get; set; } + public virtual string ElectricMtrDown { get; set; } + public virtual string ElectricMtrDelta { get; set; } public virtual string StopBFValve { get; set; } /// Valves @@ -59,6 +62,9 @@ namespace Config.Entities result.PressMtrUp = PressMtrUp; result.PressMtrDown = PressMtrDown; result.PressMtrDelta = PressMtrDelta; + result.ElectricMtrUp = ElectricMtrUp; + result.ElectricMtrDown = ElectricMtrDown; + result.ElectricMtrDelta = ElectricMtrDelta; result.StopBFValve = StopBFValve; result.ValvesOpen = ValvesOpen; result.ValvesClose = ValvesClose; diff --git a/Config/Entities/Test.cs b/Config/Entities/Test.cs index 0773879ab..50b94505c 100644 --- a/Config/Entities/Test.cs +++ b/Config/Entities/Test.cs @@ -78,6 +78,7 @@ namespace Config.Entities public virtual Unit TempUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab public virtual Unit PressUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab public virtual Unit LengthUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab + public virtual Unit ElectricUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab /// Wrappers public virtual double QfromM3ph() @@ -209,6 +210,7 @@ namespace Config.Entities result.TempUnit = TempUnit; result.PressUnit = PressUnit; result.LengthUnit = LengthUnit; + result.ElectricUnit = ElectricUnit; foreach (var prms in MoreParams) { result.MoreParams.Add(prms.Clone()); } return result; diff --git a/SchematicDrawing/DrawingShape.cs b/SchematicDrawing/DrawingShape.cs index 5e6d6329e..959993d30 100644 --- a/SchematicDrawing/DrawingShape.cs +++ b/SchematicDrawing/DrawingShape.cs @@ -332,6 +332,12 @@ namespace SchematicDrawing Shapes[DrShIx(Shape.PressM, Sz.M)] = new DrawingShape(Shape.PressM, Sz.M, 0, 0); Shapes[DrShIx(Shape.PressM, Sz.L)] = new DrawingShape(Shape.PressM, Sz.L, 0, 0); Shapes[DrShIx(Shape.PressM, Sz.XL)] = new DrawingShape(Shape.PressM, Sz.XL, 0, 0); + + /// Electric meter + Shapes[DrShIx(Shape.ElectricM, Sz.S)] = new DrawingShape(Shape.ElectricM, Sz.S, 0, 0); + Shapes[DrShIx(Shape.ElectricM, Sz.M)] = new DrawingShape(Shape.ElectricM, Sz.M, 0, 0); + Shapes[DrShIx(Shape.ElectricM, Sz.L)] = new DrawingShape(Shape.ElectricM, Sz.L, 0, 0); + Shapes[DrShIx(Shape.ElectricM, Sz.XL)] = new DrawingShape(Shape.ElectricM, Sz.XL, 0, 0); /// Parallel flow meters Shapes[DrShIx(Shape.ParallelFlowM, Sz.S)] = new DrawingShape(Shape.ParallelFlowM, Sz.S, 0, 0); diff --git a/SchematicDrawing/Enums.cs b/SchematicDrawing/Enums.cs index 0586416e6..6bf0d6771 100644 --- a/SchematicDrawing/Enums.cs +++ b/SchematicDrawing/Enums.cs @@ -51,6 +51,7 @@ namespace SchematicDrawing Vacuum, Valve, WaterM, + ElectricM, Count, Custom, diff --git a/TBF/Resources/Strings.Designer.cs b/TBF/Resources/Strings.Designer.cs index 8a8232f47..0715fe51c 100644 --- a/TBF/Resources/Strings.Designer.cs +++ b/TBF/Resources/Strings.Designer.cs @@ -1,7 +1,6 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -1257,12 +1256,21 @@ namespace TBF.Resources { } } + /// + /// Looks up a localized string similar to Current. + /// + internal static string Current { + get { + return ResourceManager.GetString("Current", resourceCulture); + } + } + /// /// Looks up a localized string similar to current. /// - internal static string current { + internal static string current_ { get { - return ResourceManager.GetString("current", resourceCulture); + return ResourceManager.GetString("current_", resourceCulture); } } @@ -6813,6 +6821,15 @@ namespace TBF.Resources { } } + /// + /// Looks up a localized string similar to Voltage. + /// + internal static string Voltage { + get { + return ResourceManager.GetString("Voltage", resourceCulture); + } + } + /// /// Looks up a localized string similar to Volume. /// diff --git a/TBF/Resources/Strings.cs.resx b/TBF/Resources/Strings.cs.resx index bf6cb6277..08532570d 100644 --- a/TBF/Resources/Strings.cs.resx +++ b/TBF/Resources/Strings.cs.resx @@ -1746,4 +1746,10 @@ Tisknout + + Proud + + + Napětí + \ No newline at end of file diff --git a/TBF/Resources/Strings.de.resx b/TBF/Resources/Strings.de.resx index 248b8843b..0b7dc0842 100644 --- a/TBF/Resources/Strings.de.resx +++ b/TBF/Resources/Strings.de.resx @@ -2211,4 +2211,10 @@ Kalibrierschein gültigkeit abgelaufen + + Strom + + + Spannung + \ No newline at end of file diff --git a/TBF/Resources/Strings.fr.resx b/TBF/Resources/Strings.fr.resx index 94b5d2ea9..5c9376790 100644 --- a/TBF/Resources/Strings.fr.resx +++ b/TBF/Resources/Strings.fr.resx @@ -2010,4 +2010,10 @@ Inonder + + Curren + + + Tension + \ No newline at end of file diff --git a/TBF/Resources/Strings.it.resx b/TBF/Resources/Strings.it.resx index 71f719409..5f8df07f1 100644 --- a/TBF/Resources/Strings.it.resx +++ b/TBF/Resources/Strings.it.resx @@ -1779,4 +1779,10 @@ Avviare il ciclo + + Corrente + + + Voltaggio + \ No newline at end of file diff --git a/TBF/Resources/Strings.pl.resx b/TBF/Resources/Strings.pl.resx index 950c2b469..11f889945 100644 --- a/TBF/Resources/Strings.pl.resx +++ b/TBF/Resources/Strings.pl.resx @@ -1686,4 +1686,10 @@ Nepevność + + Prąd + + + Napięcie + \ No newline at end of file diff --git a/TBF/Resources/Strings.resx b/TBF/Resources/Strings.resx index 289903782..acd994b62 100644 --- a/TBF/Resources/Strings.resx +++ b/TBF/Resources/Strings.resx @@ -1813,7 +1813,7 @@ Refresh - + current @@ -2449,4 +2449,10 @@ Test Bench Framework + + Current + + + Voltage + \ No newline at end of file diff --git a/TBF/Resources/Strings.ro.resx b/TBF/Resources/Strings.ro.resx index abd55d800..70267a5dd 100644 --- a/TBF/Resources/Strings.ro.resx +++ b/TBF/Resources/Strings.ro.resx @@ -831,4 +831,10 @@ Evaporare + + Current + + + Voltage + \ No newline at end of file diff --git a/TBF/Resources/Strings.ru.resx b/TBF/Resources/Strings.ru.resx index 72b9b8f9e..005d5a1fc 100644 --- a/TBF/Resources/Strings.ru.resx +++ b/TBF/Resources/Strings.ru.resx @@ -1599,4 +1599,10 @@ испарение + + Current + + + Voltage + \ No newline at end of file diff --git a/TBF/Resources/Strings.zh-CN.Designer.cs b/TBF/Resources/Strings.zh-CN.Designer.cs index e69de29bb..751b38e63 100644 --- a/TBF/Resources/Strings.zh-CN.Designer.cs +++ b/TBF/Resources/Strings.zh-CN.Designer.cs @@ -0,0 +1,3302 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TBF.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Strings_zh_CN { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings_zh_CN() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TBF.Resources.Strings.zh-CN", typeof(Strings_zh_CN).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <无>. + /// + internal static string _none_ { + get { + return ResourceManager.GetString("_none_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (离线). + /// + internal static string _offline { + get { + return ResourceManager.GetString("_offline", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 关于校验台框架. + /// + internal static string About_Test_Bench_Framework { + get { + return ResourceManager.GetString("About_Test_Bench_Framework", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 活动. + /// + internal static string Activity { + get { + return ResourceManager.GetString("Activity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 加入 Add>. + /// + internal static string Add { + get { + return ResourceManager.GetString("Add", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 添加 Add. + /// + internal static string AddBtnText { + get { + return ResourceManager.GetString("AddBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 地址. + /// + internal static string Address { + get { + return ResourceManager.GetString("Address", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 调整正在进行. + /// + internal static string Adjustment_in_progress { + get { + return ResourceManager.GetString("Adjustment_in_progress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 管理员. + /// + internal static string Administrator { + get { + return ResourceManager.GetString("Administrator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 环境湿度. + /// + internal static string Ambient_humidity { + get { + return ResourceManager.GetString("Ambient_humidity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 环境压力. + /// + internal static string Ambient_pressure { + get { + return ResourceManager.GetString("Ambient_pressure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 环境温度. + /// + internal static string Ambient_temperature { + get { + return ResourceManager.GetString("Ambient_temperature", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 未处理的错误发生. + /// + internal static string An_unhandled_error_occured { + get { + return ResourceManager.GetString("An_unhandled_error_occured", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 批准. + /// + internal static string Approval { + get { + return ResourceManager.GetString("Approval", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 批准日期. + /// + internal static string Approval_date { + get { + return ResourceManager.GetString("Approval_date", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 认证身份. + /// + internal static string Approval_ID { + get { + return ResourceManager.GetString("Approval_ID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 审批信息. + /// + internal static string Approval_info { + get { + return ResourceManager.GetString("Approval_info", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 批准人. + /// + internal static string Approved_by { + get { + return ResourceManager.GetString("Approved_by", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 已测试水表安排. + /// + internal static string Arrangement_of_meters { + get { + return ResourceManager.GetString("Arrangement_of_meters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试安排. + /// + internal static string Arrangement_of_tests { + get { + return ResourceManager.GetString("Arrangement_of_tests", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 温度[°C]. + /// + internal static string AtTemperature_C { + get { + return ResourceManager.GetString("AtTemperature_C", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 辅助:. + /// + internal static string Aux_ { + get { + return ResourceManager.GetString("Aux_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 辅助水表. + /// + internal static string Aux_Water_Meter { + get { + return ResourceManager.GetString("Aux_Water_Meter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 辅助水表状态. + /// + internal static string Aux_Water_Meter_State { + get { + return ResourceManager.GetString("Aux_Water_Meter_State", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 辅助水表序列号. + /// + internal static string Aux_WM_SerialNr { + get { + return ResourceManager.GetString("Aux_WM_SerialNr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 可用组件:. + /// + internal static string Available_Components_ { + get { + return ResourceManager.GetString("Available_Components_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 可用的结果:. + /// + internal static string Available_results { + get { + return ResourceManager.GetString("Available_results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <Back 返回. + /// + internal static string BackBtnText { + get { + return ResourceManager.GetString("BackBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 平衡. + /// + internal static string Balance { + get { + return ResourceManager.GetString("Balance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工作台. + /// + internal static string Bench_chdr { + get { + return ResourceManager.GetString("Bench_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台不在运行,但你可以更改设置来解决问题。. + /// + internal static string Bench_is_not_running { + get { + return ResourceManager.GetString("Bench_is_not_running", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 试验台名称冲突,请使用其他名称. + /// + internal static string Bench_name_conflict_Use_another_name_pls { + get { + return ResourceManager.GetString("Bench_name_conflict_Use_another_name_pls", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工作台参数. + /// + internal static string Bench_parameters { + get { + return ResourceManager.GetString("Bench_parameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工作台 Bench. + /// + internal static string BenchTabPageTitle { + get { + return ResourceManager.GetString("BenchTabPageTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 构建日期 {0}. + /// + internal static string BuildDateStr { + get { + return ResourceManager.GetString("BuildDateStr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校准专员. + /// + internal static string Calibration_Specialist { + get { + return ResourceManager.GetString("Calibration_Specialist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 相机. + /// + internal static string Camera { + get { + return ResourceManager.GetString("Camera", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 相机错误. + /// + internal static string Camera_error { + get { + return ResourceManager.GetString("Camera_error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 取消 Cancel. + /// + internal static string CancelBtnText { + get { + return ResourceManager.GetString("CancelBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 更改将丢失。想继续吗?. + /// + internal static string Changes_will_be_lost_Do_you_want_to_proceed { + get { + return ResourceManager.GetString("Changes_will_be_lost_Do_you_want_to_proceed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 清除结果. + /// + internal static string Clear_results { + get { + return ResourceManager.GetString("Clear_results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 清除 Clear. + /// + internal static string ClearBtnText { + get { + return ResourceManager.GetString("ClearBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to close. + /// + internal static string close { + get { + return ResourceManager.GetString("close", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 关闭放空阀. + /// + internal static string Close_emptying_valve { + get { + return ResourceManager.GetString("Close_emptying_valve", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 关闭 Close. + /// + internal static string CloseBtnText { + get { + return ResourceManager.GetString("CloseBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 关闭输入阀,关闭水泵. + /// + internal static string Closing_valve_Pump_off { + get { + return ResourceManager.GetString("Closing_valve_Pump_off", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 冷. + /// + internal static string cold { + get { + return ResourceManager.GetString("cold", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 通讯. + /// + internal static string Communication { + get { + return ResourceManager.GetString("Communication", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 部件. + /// + internal static string Component { + get { + return ResourceManager.GetString("Component", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 组合的. + /// + internal static string Compound { + get { + return ResourceManager.GetString("Compound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 组合水表. + /// + internal static string Compound_meters { + get { + return ResourceManager.GetString("Compound_meters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 配置. + /// + internal static string Configuration { + get { + return ResourceManager.GetString("Configuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置. + /// + internal static string Configure { + get { + return ResourceManager.GetString("Configure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置校验台(需要密码). + /// + internal static string ConfigureDatabaseText { + get { + return ResourceManager.GetString("ConfigureDatabaseText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 确认. + /// + internal static string Confirmation { + get { + return ResourceManager.GetString("Confirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 连接字符串. + /// + internal static string Connection_string { + get { + return ResourceManager.GetString("Connection_string", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 复制 Copy. + /// + internal static string CopyBtnText { + get { + return ResourceManager.GetString("CopyBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 版权所有 ©2013 - {0}. + /// + internal static string CopyrightStr { + get { + return ResourceManager.GetString("CopyrightStr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 更正. + /// + internal static string Corrected { + get { + return ResourceManager.GetString("Corrected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 更正. + /// + internal static string Correction { + get { + return ResourceManager.GetString("Correction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 创建数据库. + /// + internal static string Create_DB { + get { + return ResourceManager.GetString("Create_DB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 创建者. + /// + internal static string Created_by { + get { + return ResourceManager.GetString("Created_by", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current. + /// + internal static string Current { + get { + return ResourceManager.GetString("Current", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据. + /// + internal static string Data { + get { + return ResourceManager.GetString("Data", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 输入数据. + /// + internal static string Data_entry { + get { + return ResourceManager.GetString("Data_entry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据库设置. + /// + internal static string Database_Settings { + get { + return ResourceManager.GetString("Database_Settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据库类型. + /// + internal static string Database_type { + get { + return ResourceManager.GetString("Database_type", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 日期和时间. + /// + internal static string Date_and_time { + get { + return ResourceManager.GetString("Date_and_time", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据库创建成功!. + /// + internal static string DB_was_successfully_created { + get { + return ResourceManager.GetString("DB_was_successfully_created", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 该数据库将被覆盖. + /// + internal static string DB_will_be_overwritten { + get { + return ResourceManager.GetString("DB_will_be_overwritten", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 密度. + /// + internal static string Density { + get { + return ResourceManager.GetString("Density", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 描述. + /// + internal static string DescriptionColHdr { + get { + return ResourceManager.GetString("DescriptionColHdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 检测完成. + /// + internal static string Detection_completed { + get { + return ResourceManager.GetString("Detection_completed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 检测不合格. + /// + internal static string Detection_failed { + get { + return ResourceManager.GetString("Detection_failed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 检测阈值[%]. + /// + internal static string DetectionThresholdPct { + get { + return ResourceManager.GetString("DetectionThresholdPct", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设备. + /// + internal static string Device { + get { + return ResourceManager.GetString("Device", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误. + /// + internal static string dflt { + get { + return ResourceManager.GetString("dflt", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 分流. + /// + internal static string Diverter { + get { + return ResourceManager.GetString("Diverter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 要继续吗?. + /// + internal static string Do_you_want_to_proceed { + get { + return ResourceManager.GetString("Do_you_want_to_proceed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 是否要保存该程序?. + /// + internal static string Do_you_want_to_save_the_procedure { + get { + return ResourceManager.GetString("Do_you_want_to_save_the_procedure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 向下 Down. + /// + internal static string DownBtnText { + get { + return ResourceManager.GetString("DownBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 泄漏持续时间[秒]. + /// + internal static string Duration_Leak_s { + get { + return ResourceManager.GetString("Duration_Leak_s", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 最大压力持续时间[秒]. + /// + internal static string Duration_PMax_s { + get { + return ResourceManager.GetString("Duration_PMax_s", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 持续时间[秒]. + /// + internal static string Duration_s { + get { + return ResourceManager.GetString("Duration_s", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 编辑 Edit. + /// + internal static string EditBtnText { + get { + return ResourceManager.GetString("EditBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 紧急停止. + /// + internal static string Emergency_STOP { + get { + return ResourceManager.GetString("Emergency_STOP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 排空. + /// + internal static string Emptying_chdr { + get { + return ResourceManager.GetString("Emptying_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 排空({0}:步骤 {1}/{2}). + /// + internal static string Emptying_i_n { + get { + return ResourceManager.GetString("Emptying_i_n", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 排空水箱. + /// + internal static string Emptying_tank { + get { + return ResourceManager.GetString("Emptying_tank", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 排空阀门. + /// + internal static string Emptying_valve { + get { + return ResourceManager.GetString("Emptying_valve", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 结束. + /// + internal static string End { + get { + return ResourceManager.GetString("End", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 结束条件. + /// + internal static string End_Condition { + get { + return ResourceManager.GetString("End_Condition", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 结束状态. + /// + internal static string End_State { + get { + return ResourceManager.GetString("End_State", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 输入密码. + /// + internal static string Enter_password { + get { + return ResourceManager.GetString("Enter_password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误 修正 - [%]. + /// + internal static string Err_cor_neg_pct_chdr { + get { + return ResourceManager.GetString("Err_cor_neg_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误 修正 + [%]. + /// + internal static string Err_cor_pos_pct_chdr { + get { + return ResourceManager.GetString("Err_cor_pos_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误范围 - [%]. + /// + internal static string Err_limit_neg_pct_chdr { + get { + return ResourceManager.GetString("Err_limit_neg_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误范围 + [%]. + /// + internal static string Err_limit_pos_pct_chdr { + get { + return ResourceManager.GetString("Err_limit_pos_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误 Error. + /// + internal static string Error { + get { + return ResourceManager.GetString("Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 从数据库加载用户错误:. + /// + internal static string Error_loading_users_from_the_database { + get { + return ResourceManager.GetString("Error_loading_users_from_the_database", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 错误[%]. + /// + internal static string Error_pct { + get { + return ResourceManager.GetString("Error_pct", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 建立数据库出错。原因:. + /// + internal static string Error_while_creating_DB_Reason { + get { + return ResourceManager.GetString("Error_while_creating_DB_Reason", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 评估. + /// + internal static string Evaluate { + get { + return ResourceManager.GetString("Evaluate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 蒸发. + /// + internal static string Evaporation { + get { + return ResourceManager.GetString("Evaporation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 退出 Exit. + /// + internal static string Exit { + get { + return ResourceManager.GetString("Exit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to NOK. + /// + internal static string Failed { + get { + return ResourceManager.GetString("Failed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 无法创建一个数据库样例:. + /// + internal static string Failed_to_create_a_sample_database { + get { + return ResourceManager.GetString("Failed_to_create_a_sample_database", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 无法导出数据库:. + /// + internal static string Failed_to_export_the_database { + get { + return ResourceManager.GetString("Failed_to_export_the_database", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 进料. + /// + internal static string Feeding_chdr { + get { + return ResourceManager.GetString("Feeding_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 供给 Feeding. + /// + internal static string FeedingTabPageTitle { + get { + return ResourceManager.GetString("FeedingTabPageTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 将校验台装满水?. + /// + internal static string Fill_with_water { + get { + return ResourceManager.GetString("Fill_with_water", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 完成 Finish. + /// + internal static string FinishBtnText { + get { + return ResourceManager.GetString("FinishBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 流量. + /// + internal static string Flow { + get { + return ResourceManager.GetString("Flow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 流量选择. + /// + internal static string Flow_selection { + get { + return ResourceManager.GetString("Flow_selection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 流量计. + /// + internal static string Flowmeter { + get { + return ResourceManager.GetString("Flowmeter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重点. + /// + internal static string Focus { + get { + return ResourceManager.GetString("Focus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 总体情况. + /// + internal static string General { + get { + return ResourceManager.GetString("General", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 从水箱中获取水的质量. + /// + internal static string Get_mass_of_water_in_the_tank { + get { + return ResourceManager.GetString("Get_mass_of_water_in_the_tank", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 抓取. + /// + internal static string Grab { + get { + return ResourceManager.GetString("Grab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 实验室负责人. + /// + internal static string Head_of_Lab { + get { + return ResourceManager.GetString("Head_of_Lab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 变更历史记录. + /// + internal static string History_of_changes { + get { + return ResourceManager.GetString("History_of_changes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 横向. + /// + internal static string Horizontally { + get { + return ResourceManager.GetString("Horizontally", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 热. + /// + internal static string hot { + get { + return ResourceManager.GetString("hot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 忽略. + /// + internal static string Ignore { + get { + return ResourceManager.GetString("Ignore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 忽略 Ignore. + /// + internal static string IgnoreBtnText { + get { + return ResourceManager.GetString("IgnoreBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 无效的密码. + /// + internal static string Invalid_password { + get { + return ResourceManager.GetString("Invalid_password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 无效的用户名,密码,或工作台. + /// + internal static string Invalid_user_password_or_bench { + get { + return ResourceManager.GetString("Invalid_user_password_or_bench", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 正在进行Iperl通信. + /// + internal static string iPerl_Communication_in_progress { + get { + return ResourceManager.GetString("iPerl_Communication_in_progress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 语言. + /// + internal static string Language { + get { + return ResourceManager.GetString("Language", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 最后修改者. + /// + internal static string Lats_changed_by { + get { + return ResourceManager.GetString("Lats_changed_by", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 少 Less. + /// + internal static string LessBtnText { + get { + return ResourceManager.GetString("LessBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 现场的. + /// + internal static string Live { + get { + return ResourceManager.GetString("Live", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 加载程序. + /// + internal static string Loading_the_procedure { + get { + return ResourceManager.GetString("Loading_the_procedure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 锁定 Lock. + /// + internal static string LockBtnText { + get { + return ResourceManager.GetString("LockBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 日志. + /// + internal static string Logging { + get { + return ResourceManager.GetString("Logging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 主要的. + /// + internal static string Main_ { + get { + return ResourceManager.GetString("Main_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 主要水表. + /// + internal static string Main_Water_Meter { + get { + return ResourceManager.GetString("Main_Water_Meter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 主要水表状态. + /// + internal static string Main_Water_Meter_State { + get { + return ResourceManager.GetString("Main_Water_Meter_State", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 主要水表序列号. + /// + internal static string Main_WM_SerialNr { + get { + return ResourceManager.GetString("Main_WM_SerialNr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 维护专员. + /// + internal static string Maintenance_Specialist { + get { + return ResourceManager.GetString("Maintenance_Specialist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 排空水箱. + /// + internal static string Make_tank_empty { + get { + return ResourceManager.GetString("Make_tank_empty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 质量. + /// + internal static string Mass { + get { + return ResourceManager.GetString("Mass", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测量质量. + /// + internal static string Measure_the_mass { + get { + return ResourceManager.GetString("Measure_the_mass", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 已测量的. + /// + internal static string Measured { + get { + return ResourceManager.GetString("Measured", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测量重量. + /// + internal static string Measuring_the_weight { + get { + return ResourceManager.GetString("Measuring_the_weight", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 信息. + /// + internal static string Message { + get { + return ResourceManager.GetString("Message", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试仪表型号. + /// + internal static string Meter_types_tested { + get { + return ResourceManager.GetString("Meter_types_tested", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 传感器 Sensors. + /// + internal static string MetersTabPageTitle { + get { + return ResourceManager.GetString("MetersTabPageTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试方法. + /// + internal static string Method_chdr { + get { + return ResourceManager.GetString("Method_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试方法选择. + /// + internal static string Method_selection { + get { + return ResourceManager.GetString("Method_selection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 计量等级. + /// + internal static string Metrological_class { + get { + return ResourceManager.GetString("Metrological_class", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 计量者. + /// + internal static string Metrologist { + get { + return ResourceManager.GetString("Metrologist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 计量. + /// + internal static string Metrology { + get { + return ResourceManager.GetString("Metrology", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 模式. + /// + internal static string Mode { + get { + return ResourceManager.GetString("Mode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 更多 More. + /// + internal static string MoreBtnText { + get { + return ResourceManager.GetString("MoreBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 名称. + /// + internal static string Name { + get { + return ResourceManager.GetString("Name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力台. + /// + internal static string New_bench_path_name { + get { + return ResourceManager.GetString("New_bench_path_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力输入. + /// + internal static string New_feeding_path_name { + get { + return ResourceManager.GetString("New_feeding_path_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - 复制. + /// + internal static string New_name_copy { + get { + return ResourceManager.GetString("New_name_copy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to PQ. + /// + internal static string New_output_path_name { + get { + return ResourceManager.GetString("New_output_path_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序 Procedure. + /// + internal static string New_procedure_name { + get { + return ResourceManager.GetString("New_procedure_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to pSENS. + /// + internal static string New_sensors_path_name { + get { + return ResourceManager.GetString("New_sensors_path_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试 Test. + /// + internal static string New_test_name { + get { + return ResourceManager.GetString("New_test_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 新的转换名. + /// + internal static string New_transition_name { + get { + return ResourceManager.GetString("New_transition_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 新标签 New. + /// + internal static string NewTabBtnText { + get { + return ResourceManager.GetString("NewTabBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 下一页 Next>. + /// + internal static string NextBtnText { + get { + return ResourceManager.GetString("NextBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 没有 no. + /// + internal static string no { + get { + return ResourceManager.GetString("no", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序中未设置校验台。. + /// + internal static string NoBenchMsg { + get { + return ResourceManager.GetString("NoBenchMsg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 没有 No. + /// + internal static string NoBtn { + get { + return ResourceManager.GetString("NoBtn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 无法连接到数据库。. + /// + internal static string NoDatabaseMsg { + get { + return ResourceManager.GetString("NoDatabaseMsg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 记录. + /// + internal static string Notes { + get { + return ResourceManager.GetString("Notes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <未设置>. + /// + internal static string nothing_to_configure { + get { + return ResourceManager.GetString("nothing_to_configure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 通知 Notification. + /// + internal static string Notification { + get { + return ResourceManager.GetString("Notification", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数量. + /// + internal static string Nr { + get { + return ResourceManager.GetString("Nr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 一组中的水表数量:. + /// + internal static string Nr_meters_in_a_group { + get { + return ResourceManager.GetString("Nr_meters_in_a_group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 好 OK. + /// + internal static string OkBtnText { + get { + return ResourceManager.GetString("OkBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to open. + /// + internal static string open { + get { + return ResourceManager.GetString("open", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 输出. + /// + internal static string Output_chdr { + get { + return ResourceManager.GetString("Output_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 输出 Output. + /// + internal static string OutputTabPageTitle { + get { + return ResourceManager.GetString("OutputTabPageTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 升高压力. + /// + internal static string P_in { + get { + return ResourceManager.GetString("P_in", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 结束升高压力. + /// + internal static string P_in_end { + get { + return ResourceManager.GetString("P_in_end", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 开始升高压力. + /// + internal static string P_in_start { + get { + return ResourceManager.GetString("P_in_start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 降低压力. + /// + internal static string P_out { + get { + return ResourceManager.GetString("P_out", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 结束降低压力. + /// + internal static string P_out_end { + get { + return ResourceManager.GetString("P_out_end", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 开始降低压力. + /// + internal static string P_out_start { + get { + return ResourceManager.GetString("P_out_start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 页. + /// + internal static string Page { + get { + return ResourceManager.GetString("Page", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 参数. + /// + internal static string Parameters { + get { + return ResourceManager.GetString("Parameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 主体. + /// + internal static string Parent { + get { + return ResourceManager.GetString("Parent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 部分. + /// + internal static string Part { + get { + return ResourceManager.GetString("Part", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 好 OK. + /// + internal static string Passed { + get { + return ResourceManager.GetString("Passed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 密码. + /// + internal static string Password { + get { + return ResourceManager.GetString("Password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工作台 - 路径. + /// + internal static string Paths { + get { + return ResourceManager.GetString("Paths", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to PID. + /// + internal static string PID { + get { + return ResourceManager.GetString("PID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 请更改以下设置:. + /// + internal static string Please_change_the_following_settings { + get { + return ResourceManager.GetString("Please_change_the_following_settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 请选择一个周期,测试或放空. + /// + internal static string Please_select_a_cycle_a_test_or_empty { + get { + return ResourceManager.GetString("Please_select_a_cycle_a_test_or_empty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 请选择一个过程. + /// + internal static string Please_select_a_procedure { + get { + return ResourceManager.GetString("Please_select_a_procedure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 请选择一个测试. + /// + internal static string Please_select_a_test { + get { + return ResourceManager.GetString("Please_select_a_test", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 请选择一个校验台. + /// + internal static string PLs_select_testbench { + get { + return ResourceManager.GetString("PLs_select_testbench", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 功率[%]. + /// + internal static string PowerPct { + get { + return ResourceManager.GetString("PowerPct", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力. + /// + internal static string Pressure { + get { + return ResourceManager.GetString("Pressure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力高值[bar]. + /// + internal static string Pressure_hi_bar { + get { + return ResourceManager.GetString("Pressure_hi_bar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力低值[bar]. + /// + internal static string Pressure_lo_bar { + get { + return ResourceManager.GetString("Pressure_lo_bar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力表. + /// + internal static string Pressure_meter { + get { + return ResourceManager.GetString("Pressure_meter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 压力选择. + /// + internal static string Pressure_selection { + get { + return ResourceManager.GetString("Pressure_selection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 以前的结果. + /// + internal static string Previous_results { + get { + return ResourceManager.GetString("Previous_results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 打印机. + /// + internal static string Printer { + get { + return ResourceManager.GetString("Printer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 打印机. + /// + internal static string PrinterBtnText { + get { + return ResourceManager.GetString("PrinterBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 打印结果. + /// + internal static string Printing { + get { + return ResourceManager.GetString("Printing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序. + /// + internal static string Procedure { + get { + return ResourceManager.GetString("Procedure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序{0}添加。. + /// + internal static string Procedure_0_added { + get { + return ResourceManager.GetString("Procedure_0_added", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序{0}修改。. + /// + internal static string Procedure_0_modified { + get { + return ResourceManager.GetString("Procedure_0_modified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序名. + /// + internal static string Procedure_name { + get { + return ResourceManager.GetString("Procedure_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序. + /// + internal static string Procedures { + get { + return ResourceManager.GetString("Procedures", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 进程. + /// + internal static string Process { + get { + return ResourceManager.GetString("Process", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 制造者. + /// + internal static string Producer { + get { + return ResourceManager.GetString("Producer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 产品名称. + /// + internal static string Product_name { + get { + return ResourceManager.GetString("Product_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 程序需要重新启动以应用某些设置. + /// + internal static string Program_restart_is_required_to_apply_some_settings { + get { + return ResourceManager.GetString("Program_restart_is_required_to_apply_some_settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 进度. + /// + internal static string Progress { + get { + return ResourceManager.GetString("Progress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 属性. + /// + internal static string Properties { + get { + return ResourceManager.GetString("Properties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 协议. + /// + internal static string Protocol { + get { + return ResourceManager.GetString("Protocol", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 方案标题. + /// + internal static string Protocol_title { + get { + return ResourceManager.GetString("Protocol_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 发布. + /// + internal static string Publish { + get { + return ResourceManager.GetString("Publish", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 每升脉冲. + /// + internal static string PulsesPerLtr { + get { + return ResourceManager.GetString("PulsesPerLtr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水泵. + /// + internal static string Pump { + get { + return ResourceManager.GetString("Pump", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水泵功率[%]. + /// + internal static string Pump_power_pct { + get { + return ResourceManager.GetString("Pump_power_pct", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 采购订单. + /// + internal static string Purchase_order { + get { + return ResourceManager.GetString("Purchase_order", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 清除 - 开始. + /// + internal static string Purge_Begin { + get { + return ResourceManager.GetString("Purge_Begin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 将校验台装满水?. + /// + internal static string Purge_bench_qm { + get { + return ResourceManager.GetString("Purge_bench_qm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 清除 - 结束. + /// + internal static string Purge_End { + get { + return ResourceManager.GetString("Purge_End", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 净化. + /// + internal static string Purging { + get { + return ResourceManager.GetString("Purging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 净化({0}:步骤{1}/{2}). + /// + internal static string Purging_i_n { + get { + return ResourceManager.GetString("Purging_i_n", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q起始点. + /// + internal static string Q_from { + get { + return ResourceManager.GetString("Q_from", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q起始点 [l/h]. + /// + internal static string Q_from_lph { + get { + return ResourceManager.GetString("Q_from_lph", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q-设置方法. + /// + internal static string Q_set_method_chdr { + get { + return ResourceManager.GetString("Q_set_method_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q终止. + /// + internal static string Q_to { + get { + return ResourceManager.GetString("Q_to", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q终止点 [l/h]. + /// + internal static string Q_to_lph { + get { + return ResourceManager.GetString("Q_to_lph", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q下降. + /// + internal static string Qfall { + get { + return ResourceManager.GetString("Qfall", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Qmin. + /// + internal static string Qmin { + get { + return ResourceManager.GetString("Qmin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Qn. + /// + internal static string Qn { + get { + return ResourceManager.GetString("Qn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q上升. + /// + internal static string Qrise { + get { + return ResourceManager.GetString("Qrise", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Qt. + /// + internal static string Qt { + get { + return ResourceManager.GetString("Qt", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 问题. + /// + internal static string Question { + get { + return ResourceManager.GetString("Question", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 变化率[%]. + /// + internal static string RateOfChangePct { + get { + return ResourceManager.GetString("RateOfChangePct", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 准备完毕. + /// + internal static string Ready { + get { + return ResourceManager.GetString("Ready", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 完成类型. + /// + internal static string Red_type_chdr { + get { + return ResourceManager.GetString("Red_type_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 参考. + /// + internal static string Reference { + get { + return ResourceManager.GetString("Reference", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 调节阀门. + /// + internal static string Reg_valve { + get { + return ResourceManager.GetString("Reg_valve", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q相对值起始点. + /// + internal static string RelativeQfrom { + get { + return ResourceManager.GetString("RelativeQfrom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Q相对值终止点. + /// + internal static string RelativeQto { + get { + return ResourceManager.GetString("RelativeQto", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 剩余时间. + /// + internal static string remaining_time { + get { + return ResourceManager.GetString("remaining_time", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <&删除. + /// + internal static string Remove { + get { + return ResourceManager.GetString("Remove", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to << 删除所有. + /// + internal static string Remove_all { + get { + return ResourceManager.GetString("Remove_all", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 删除 Remove. + /// + internal static string RemoveBtnText { + get { + return ResourceManager.GetString("RemoveBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 删除标签 Remove Tab. + /// + internal static string RemoveTabBtnText { + get { + return ResourceManager.GetString("RemoveTabBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重命名标签 Rename Tab. + /// + internal static string RenameTabBtnText { + get { + return ResourceManager.GetString("RenameTabBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重复次数. + /// + internal static string Repeats_nr_chdr { + get { + return ResourceManager.GetString("Repeats_nr_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 必须重新启动以使改变生效. + /// + internal static string Restart_To_Apply_Changes { + get { + return ResourceManager.GetString("Restart_To_Apply_Changes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重试. + /// + internal static string Result { + get { + return ResourceManager.GetString("Result", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重试. + /// + internal static string Results { + get { + return ResourceManager.GetString("Results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重试数据库连接 Retry. + /// + internal static string RetryBtnText { + get { + return ResourceManager.GetString("RetryBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 修改. + /// + internal static string RetryDatabaseText { + get { + return ResourceManager.GetString("RetryDatabaseText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 进行中的ROI检测. + /// + internal static string Revision { + get { + return ResourceManager.GetString("Revision", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 写入结果. + /// + internal static string Saving_results { + get { + return ResourceManager.GetString("Saving_results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 屏幕. + /// + internal static string ScreenBtnText { + get { + return ResourceManager.GetString("ScreenBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 秒. + /// + internal static string sec { + get { + return ResourceManager.GetString("sec", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 选择组件. + /// + internal static string Select_Component { + get { + return ResourceManager.GetString("Select_Component", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 已选结果 :. + /// + internal static string Selected_results { + get { + return ResourceManager.GetString("Selected_results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 传感器. + /// + internal static string Sensor { + get { + return ResourceManager.GetString("Sensor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 传感器. + /// + internal static string Sensors { + get { + return ResourceManager.GetString("Sensors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 传感器. + /// + internal static string Sensors_chdr { + get { + return ResourceManager.GetString("Sensors_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 序列号. + /// + internal static string Serial_Number { + get { + return ResourceManager.GetString("Serial_Number", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 序列号:. + /// + internal static string SerialNr { + get { + return ResourceManager.GetString("SerialNr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置流量. + /// + internal static string Set_flow { + get { + return ResourceManager.GetString("Set_flow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置路径. + /// + internal static string Set_route { + get { + return ResourceManager.GetString("Set_route", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置流量. + /// + internal static string Setting_the_flow { + get { + return ResourceManager.GetString("Setting_the_flow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设置水压. + /// + internal static string Setting_the_water_pressure { + get { + return ResourceManager.GetString("Setting_the_water_pressure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 简短描述. + /// + internal static string Short_description { + get { + return ResourceManager.GetString("Short_description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 展示循环和形态. + /// + internal static string Show_cycle_end_form { + get { + return ResourceManager.GetString("Show_cycle_end_form", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 同时进行以下步骤. + /// + internal static string Simultaneous_with_next_step { + get { + return ResourceManager.GetString("Simultaneous_with_next_step", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 同时进行之前步骤. + /// + internal static string Simultaneous_with_previous_step { + get { + return ResourceManager.GetString("Simultaneous_with_previous_step", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 单个的. + /// + internal static string SingleBtnText { + get { + return ResourceManager.GetString("SingleBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 启动. + /// + internal static string Start { + get { + return ResourceManager.GetString("Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 启动水泵. + /// + internal static string Start_the_pump { + get { + return ResourceManager.GetString("Start_the_pump", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 开始测试. + /// + internal static string Start_the_test { + get { + return ResourceManager.GetString("Start_the_test", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 启动系统. + /// + internal static string Starting_system { + get { + return ResourceManager.GetString("Starting_system", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 启动相机. + /// + internal static string Starting_the_cameras { + get { + return ResourceManager.GetString("Starting_the_cameras", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 启动水泵. + /// + internal static string Starting_the_pump { + get { + return ResourceManager.GetString("Starting_the_pump", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 开启阀门. + /// + internal static string StartValve { + get { + return ResourceManager.GetString("StartValve", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 状态. + /// + internal static string State { + get { + return ResourceManager.GetString("State", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 停止水泵. + /// + internal static string Stop_the_pump { + get { + return ResourceManager.GetString("Stop_the_pump", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 停止测试. + /// + internal static string Stop_the_test { + get { + return ResourceManager.GetString("Stop_the_test", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 停止. + /// + internal static string Stopping { + get { + return ResourceManager.GetString("Stopping", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 设定的开始测试前停止水流. + /// + internal static string Stopping_flow_for_the_fixed_start { + get { + return ResourceManager.GetString("Stopping_flow_for_the_fixed_start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 抑制水表颤音. + /// + internal static string SupressWMTrills { + get { + return ResourceManager.GetString("SupressWMTrills", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 切换流量检测. + /// + internal static string Switching_flow_detection { + get { + return ResourceManager.GetString("Switching_flow_detection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 切换点. + /// + internal static string Switching_Points { + get { + return ResourceManager.GetString("Switching_Points", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to T转换. + /// + internal static string T_div { + get { + return ResourceManager.GetString("T_div", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to T 入. + /// + internal static string T_in { + get { + return ResourceManager.GetString("T_in", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to T出. + /// + internal static string T_out { + get { + return ResourceManager.GetString("T_out", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 目标Q值[m3/h]. + /// + internal static string TargetQ { + get { + return ResourceManager.GetString("TargetQ", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 涂上焦油. + /// + internal static string Tarring { + get { + return ResourceManager.GetString("Tarring", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试. + /// + internal static string Test { + get { + return ResourceManager.GetString("Test", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台. + /// + internal static string Test_bench { + get { + return ResourceManager.GetString("Test_bench", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台组件配置. + /// + internal static string Test_Bench_Components_Configuration { + get { + return ResourceManager.GetString("Test_Bench_Components_Configuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台数据. + /// + internal static string Test_bench_data { + get { + return ResourceManager.GetString("Test_bench_data", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台数据库说明. + /// + internal static string Test_Bench_Databases_Specification { + get { + return ResourceManager.GetString("Test_Bench_Databases_Specification", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台由该计算机控制. + /// + internal static string Test_bench_is_controlled_by_this_computer { + get { + return ResourceManager.GetString("Test_bench_is_controlled_by_this_computer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台名称. + /// + internal static string Test_bench_name { + get { + return ResourceManager.GetString("Test_bench_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试台编号. + /// + internal static string Test_bench_number { + get { + return ResourceManager.GetString("Test_bench_number", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 校验台:. + /// + internal static string Test_Benches_ { + get { + return ResourceManager.GetString("Test_Benches_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试. + /// + internal static string Test_chdr { + get { + return ResourceManager.GetString("Test_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试完成. + /// + internal static string Test_completed { + get { + return ResourceManager.GetString("Test_completed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试连接. + /// + internal static string Test_connection { + get { + return ResourceManager.GetString("Test_connection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试进行中. + /// + internal static string Test_in_progress { + get { + return ResourceManager.GetString("Test_in_progress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试. + /// + internal static string Test_measured_corrected { + get { + return ResourceManager.GetString("Test_measured_corrected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试方法. + /// + internal static string Test_method { + get { + return ResourceManager.GetString("Test_method", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试名称. + /// + internal static string Test_name { + get { + return ResourceManager.GetString("Test_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试准备. + /// + internal static string Test_preparation { + get { + return ResourceManager.GetString("Test_preparation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试开始({0}:步{1}/{2}). + /// + internal static string Test_start_sequence_i_n { + get { + return ResourceManager.GetString("Test_start_sequence_i_n", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试停止({0}:步{1}/{2}). + /// + internal static string Test_stop_sequence_i_n { + get { + return ResourceManager.GetString("Test_stop_sequence_i_n", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试时间[秒]. + /// + internal static string Test_time_s_chdr { + get { + return ResourceManager.GetString("Test_time_s_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试者. + /// + internal static string Tester { + get { + return ResourceManager.GetString("Tester", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试专员. + /// + internal static string Testing_Specialist { + get { + return ResourceManager.GetString("Testing_Specialist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试列. + /// + internal static string Tests_are_columns { + get { + return ResourceManager.GetString("Tests_are_columns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试行. + /// + internal static string Tests_are_rows { + get { + return ResourceManager.GetString("Tests_are_rows", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to T停止 - [秒]. + /// + internal static string Time2MassMsrmt_chdr { + get { + return ResourceManager.GetString("Time2MassMsrmt_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to T - 启动[秒]. + /// + internal static string TimeFlow2Start_chdr { + get { + return ResourceManager.GetString("TimeFlow2Start_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 超时. + /// + internal static string Timeout { + get { + return ResourceManager.GetString("Timeout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 弦误差。红色。 [%]. + /// + internal static string Tol_red_pct_chdr { + get { + return ResourceManager.GetString("Tol_red_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 转换 - 结束. + /// + internal static string TransitionEnd_chdr { + get { + return ResourceManager.GetString("TransitionEnd_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 转换 . + /// + internal static string Transitions { + get { + return ResourceManager.GetString("Transitions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 转换 - 启动. + /// + internal static string TransitionStart_chdr { + get { + return ResourceManager.GetString("TransitionStart_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 类型. + /// + internal static string Type { + get { + return ResourceManager.GetString("Type", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 不确定性[%]. + /// + internal static string Uncertainty_pct_chdr { + get { + return ResourceManager.GetString("Uncertainty_pct_chdr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 未处理的错误发生在. + /// + internal static string Unhandled_error_occured_in_ { + get { + return ResourceManager.GetString("Unhandled_error_occured_in_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 解锁 Unlock. + /// + internal static string UnlockBtnText { + get { + return ResourceManager.GetString("UnlockBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 向上 Up. + /// + internal static string UpBtnText { + get { + return ResourceManager.GetString("UpBtnText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用户. + /// + internal static string User { + get { + return ResourceManager.GetString("User", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用户登录. + /// + internal static string User_Login { + get { + return ResourceManager.GetString("User_Login", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用户名. + /// + internal static string User_name { + get { + return ResourceManager.GetString("User_name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用户名. + /// + internal static string Username { + get { + return ResourceManager.GetString("Username", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 用户和组别. + /// + internal static string Users_and_groups { + get { + return ResourceManager.GetString("Users_and_groups", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 版本. + /// + internal static string Version { + get { + return ResourceManager.GetString("Version", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 版本 {0}. + /// + internal static string VersionStr { + get { + return ResourceManager.GetString("VersionStr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 垂直. + /// + internal static string Vertically { + get { + return ResourceManager.GetString("Vertically", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Voltage. + /// + internal static string Voltage { + get { + return ResourceManager.GetString("Voltage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 体积. + /// + internal static string Volume { + get { + return ResourceManager.GetString("Volume", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 音量和误差区间选择. + /// + internal static string Volume_and_error_selection { + get { + return ResourceManager.GetString("Volume_and_error_selection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 警告 Warning. + /// + internal static string Warning { + get { + return ResourceManager.GetString("Warning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水. + /// + internal static string Water { + get { + return ResourceManager.GetString("Water", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表. + /// + internal static string Water_Meter { + get { + return ResourceManager.GetString("Water_Meter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表数据. + /// + internal static string Water_meter_data { + get { + return ResourceManager.GetString("Water_meter_data", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表序列号和状态. + /// + internal static string Water_Meter_SNs_States { + get { + return ResourceManager.GetString("Water_Meter_SNs_States", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表状态. + /// + internal static string Water_Meter_States { + get { + return ResourceManager.GetString("Water_Meter_States", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表类型. + /// + internal static string Water_meter_types { + get { + return ResourceManager.GetString("Water_meter_types", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 水表. + /// + internal static string Water_meters { + get { + return ResourceManager.GetString("Water_meters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 状态[升]. + /// + internal static string WMState { + get { + return ResourceManager.GetString("WMState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 是的 yes. + /// + internal static string yes { + get { + return ResourceManager.GetString("yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 是的 Yes. + /// + internal static string YesBtn { + get { + return ResourceManager.GetString("YesBtn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 归零. + /// + internal static string Zeroing_chdr { + get { + return ResourceManager.GetString("Zeroing_chdr", resourceCulture); + } + } + } +} diff --git a/TBF/Resources/Strings.zh-CN.resx b/TBF/Resources/Strings.zh-CN.resx index f97d4c7c3..49c2c95e3 100644 --- a/TBF/Resources/Strings.zh-CN.resx +++ b/TBF/Resources/Strings.zh-CN.resx @@ -1191,4 +1191,10 @@ 蒸发 + + Current + + + Voltage + \ No newline at end of file diff --git a/TBF/Rig/BenchPath.cs b/TBF/Rig/BenchPath.cs index 68f529125..c90a81200 100644 --- a/TBF/Rig/BenchPath.cs +++ b/TBF/Rig/BenchPath.cs @@ -18,6 +18,9 @@ namespace TBF.Rig public IPressureMeter PressMtrUp; public IPressureMeter PressMtrDown; public IPressureMeter PressMtrDelta; + public IAdjustableMeter ElectricMtrUp; + public IAdjustableMeter ElectricMtrDown; + public IAdjustableMeter ElectricMtrDelta; public IValve StopBFValve; public IList ValvesOpen; public IList ValvesClose; @@ -43,6 +46,9 @@ namespace TBF.Rig PressMtrUp = TbfComponents.FindComponent(entity.PressMtrUp, components) as IPressureMeter; PressMtrDown = TbfComponents.FindComponent(entity.PressMtrDown, components) as IPressureMeter; PressMtrDelta = TbfComponents.FindComponent(entity.PressMtrDelta, components) as IPressureMeter; + ElectricMtrUp = TbfComponents.FindComponent(entity.ElectricMtrUp, components) as IAdjustableMeter; + ElectricMtrDown = TbfComponents.FindComponent(entity.ElectricMtrDown, components) as IAdjustableMeter; + ElectricMtrDelta = TbfComponents.FindComponent(entity.ElectricMtrDelta, components) as IAdjustableMeter; StopBFValve = TbfComponents.FindComponent(entity.StopBFValve, components) as IValve; string[] vOpen = entity.ValvesOpen.Split(new char[] { ';' }); diff --git a/TBF/Rig/DataContainer/BenchInfo/Component.cs b/TBF/Rig/DataContainer/BenchInfo/Component.cs index e6e9fc1ad..2b604d6f8 100644 --- a/TBF/Rig/DataContainer/BenchInfo/Component.cs +++ b/TBF/Rig/DataContainer/BenchInfo/Component.cs @@ -35,6 +35,7 @@ namespace TBF.Rig.DataContainer.BenchInfo public Unit TempUnit { get { return myCfg.TempUnit; } } public Unit PressUnit { get { return myCfg.PressUnit; } } public Unit LengthUnit { get { return myCfg.LenghtUnit; } } + public Unit ElectricUnit { get { return myCfg.ElectricUnit; } } public ICollection Sources { diff --git a/TBF/Rig/DataContainer/BenchInfo/ComponentCfg.cs b/TBF/Rig/DataContainer/BenchInfo/ComponentCfg.cs index ea00cdaa4..7861bcdd6 100644 --- a/TBF/Rig/DataContainer/BenchInfo/ComponentCfg.cs +++ b/TBF/Rig/DataContainer/BenchInfo/ComponentCfg.cs @@ -47,6 +47,7 @@ namespace TBF.Rig.DataContainer.BenchInfo public ProcedureSelection Source2; /// 21 public ProcedureSelection Source3; /// 22 public ProcedureSelection Source4; /// 23 + public Unit ElectricUnit; /// 24 /// Private parameterless constructor invoked by all other (public) constructors ComponentCfg() {} diff --git a/TBF/Rig/DataContainer/iPerlBenchInfo/Component.cs b/TBF/Rig/DataContainer/iPerlBenchInfo/Component.cs index 9d8bd6f74..05e00fc9c 100644 --- a/TBF/Rig/DataContainer/iPerlBenchInfo/Component.cs +++ b/TBF/Rig/DataContainer/iPerlBenchInfo/Component.cs @@ -36,6 +36,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo public Unit TempUnit { get { return myCfg.TempUnit; } } public Unit PressUnit { get { return myCfg.PressUnit; } } public Unit LengthUnit { get { return myCfg.LenghtUnit; } } + public Unit ElectricUnit { get { return myCfg.ElectricUnit; } } public Side Side { get { return myCfg.Side; } } public int MaxTestIndex { get { return myCfg.MaxTestIndex; } } /// (MaxPruefindex % 100) value when to reject water meters completely if they are NOK diff --git a/TBF/Rig/DataContainer/iPerlBenchInfo/ComponentCfg.cs b/TBF/Rig/DataContainer/iPerlBenchInfo/ComponentCfg.cs index 4ba3f4d59..f792af877 100644 --- a/TBF/Rig/DataContainer/iPerlBenchInfo/ComponentCfg.cs +++ b/TBF/Rig/DataContainer/iPerlBenchInfo/ComponentCfg.cs @@ -49,6 +49,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo public ProcedureSelection Source2; /// 23 public ProcedureSelection Source3; /// 24 public ProcedureSelection Source4; /// 25 + public Unit ElectricUnit; /// 26 /// Calibration info serialized parameters displayed in Metrology tab page public string CalibCertificateNr { get; set; } @@ -99,6 +100,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo Source2 = ProcedureSelection.FromLocalDB; Source3 = ProcedureSelection.None; Source4 = ProcedureSelection.None; + ElectricUnit = Unit.A; CalibCertificateNr = string.Empty; CalibDate = TBF.UI.Constants.MinDate; @@ -133,6 +135,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo "Procedure selection source 2", /// 23 "Procedure selection source 3", /// 24 "Procedure selection source 4", /// 25 + "Preffered electric unit", /// 26 }; public string ParamName(int i) { return paramNames[i]; } public int ParamsCount() { return paramNames.Length; } @@ -193,6 +196,13 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo for (ProcedureSelection src = 0; src < ProcedureSelection.Count; src++) list.Add(src.ToDescription()); return list; + + case 26: + for (Unit unit = 0; unit < Unit.Count; unit++) + if (Units.IsQuantity(unit, Quantity.Current) || + Units.IsQuantity(unit, Quantity.Voltage)) + list.Add(unit.ToDescription()); + return list; default: return null; @@ -229,6 +239,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo case 23: return Source2.ToDescription(); case 24: return Source3.ToDescription(); case 25: return Source4.ToDescription(); + case 26: return ElectricUnit.ToDescription(); default: return string.Format("{0}: Bench={1}, ID={2}, Mtrs={3}, Lines={4}, Compund mtrs={5}, S1={6}, S2={7}, S3={8}, S4={9}", Name, TestBenchName, TestBenchId, WaterMetersCount, LinesCount, CompoundMetersCount, Source1, Source2, Source3, Source4); @@ -329,6 +340,10 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo } break; + case 26: + ElectricUnit = Units.FromDescription(str); + return CfgUpdateFlags.RestartRqrd; + default: return CfgUpdateFlags.None; } return CfgUpdateFlags.Error; @@ -388,6 +403,10 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo if (str == source.ToDescription()) return true; } break; + case 26: + if (ParamValues(i).Contains(str)) return true; + break; + default: message = "Invalid index"; return false; @@ -425,6 +444,7 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo prms.Source2 = Source2; prms.Source3 = Source3; prms.Source4 = Source4; + prms.ElectricUnit = ElectricUnit; prms.CalibCertificateNr = this.CalibCertificateNr; prms.CertPath = this.CertPath; diff --git a/TBF/Rig/GenericDevices/IAdjustableMeter.cs b/TBF/Rig/GenericDevices/IAdjustableMeter.cs new file mode 100644 index 000000000..a7e41f9c6 --- /dev/null +++ b/TBF/Rig/GenericDevices/IAdjustableMeter.cs @@ -0,0 +1,31 @@ +using TBF.Boxes; +using TBF.Rig.Generic; + +namespace TBF.Rig.GenericDevices +{ + public interface IAdjustableMeter : IComponent + { + /// + /// Events: PressureDone, Error + /// + /// Reference to a variable for the measured pressure in bar + /// ReadPressureOp instance reference casted to IOperaton + IOperation ReadAdjustableOp(ref DoubleBox value); + + /// + /// Events: pressureDone, Error + /// + /// Reference to a variable for the measured pressure in bar + /// Event returned when measurement done + /// ReadPressureOp instance reference casted to IOperaton + IOperation ReadAdjustableOp(ref DoubleBox value, Event valueDone); + + bool MsrmntAvailable { get; } + double MeasuredVal { get; } + double MsrdValLimLo { get; } + double MsrdValLimHi { get; } + string MsrdFormat { get; } + Common.Unit MsrdUnit { get; } + string AltString { get; } + } +} \ No newline at end of file diff --git a/TBF/Rig/GenericDevices/IBenchInfo.cs b/TBF/Rig/GenericDevices/IBenchInfo.cs index db7bd8bdc..b2809e75d 100644 --- a/TBF/Rig/GenericDevices/IBenchInfo.cs +++ b/TBF/Rig/GenericDevices/IBenchInfo.cs @@ -29,5 +29,6 @@ namespace TBF.Rig.GenericDevices Unit TempUnit { get; } Unit PressUnit { get; } Unit LengthUnit { get; } - } + Unit ElectricUnit { get; } + } } diff --git a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeter.cs b/TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeter.cs similarity index 71% rename from TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeter.cs rename to TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeter.cs index 42133edba..24f533b69 100644 --- a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeter.cs +++ b/TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeter.cs @@ -12,43 +12,43 @@ using TBF.Boxes; using TBF.Resources; using TBF.Rig.GenericDevices; -namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale +namespace TBF.Rig.Modbus.Meret.AdjustableScale { - public class PressureMeter : ComponentBase, IPressureMeter, IDevice, ISequenceCondition, IDrawingItCmpntWithMeasuredVal + public class AdjustableMeter : ComponentBase, IAdjustableMeter, IDevice, ISequenceCondition, IDrawingItCmpntWithMeasuredVal { - private static readonly ILog log = LogManager.GetLogger(typeof(PressureMeter)); + private static readonly ILog log = LogManager.GetLogger(typeof(AdjustableMeter)); public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } - readonly PressureMeterCfg pressureMtrCfg; - public IDrawingItem DrawingItem { get { return pressureMtrCfg as IDrawingItem; } } + readonly AdjustableMeterCfg _adjustableMtrCfg; + public IDrawingItem DrawingItem { get { return _adjustableMtrCfg as IDrawingItem; } } Common.Modbus modbus; - double receivedPressure; + double receivedValue; double receivedAmpers; public bool MsrmntAvailable { get { return true; } } - public double MeasuredVal { get { return receivedPressure; } } - public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.MsrdValLimLo); } } - public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.MsrdValLimHi); } } - public Unit MsrdUnit { get { return pressureMtrCfg.MsrdUnit; } } - public string MsrdFormat { get { return pressureMtrCfg.MsrdFormat; } } + public double MeasuredVal { get { return receivedValue; } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, _adjustableMtrCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, _adjustableMtrCfg.MsrdValLimHi); } } + public Unit MsrdUnit { get { return _adjustableMtrCfg.MsrdUnit; } } + public string MsrdFormat { get { return _adjustableMtrCfg.MsrdFormat; } } public string AltString { get { return string.Empty; } } int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 - public double CorrectionValLo { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.CorrectionValLo); } } - public double CorrectionValHi { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.CorrectionValHi); } } + public double CorrectionValLo { get { return Units.ConvertFrom(MsrdUnit, _adjustableMtrCfg.CorrectionValLo); } } + public double CorrectionValHi { get { return Units.ConvertFrom(MsrdUnit, _adjustableMtrCfg.CorrectionValHi); } } IList CorrectionsLocal; - public PressureMeter() { } + public AdjustableMeter() { } - public PressureMeter(Generic.IComponentCfg cfg, IList components) + public AdjustableMeter(Generic.IComponentCfg cfg, IList components) : base(cfg) { - pressureMtrCfg = cfg as PressureMeterCfg; + _adjustableMtrCfg = cfg as AdjustableMeterCfg; CreateConditions(); } @@ -85,19 +85,19 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale private void InitModbus() { - modbus = TbfComponents.FindComponent(pressureMtrCfg.ParentName) as Common.Modbus; + modbus = TbfComponents.FindComponent(_adjustableMtrCfg.ParentName) as Common.Modbus; if (modbus == null) throw new Exception("Cannot find " + Name + " parent"); - modbus.ComponentNames[pressureMtrCfg.ModbusAddress] = Name; + modbus.ComponentNames[_adjustableMtrCfg.ModbusAddress] = Name; ticketNumber = modbus.RegisterForPolling(); log.FatalFormat("{0} initialized: {1}", Name, this); } public void RunDeviceBefore() { - if (DebugLevel == DebugMode.Normal && modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Count > 0) + if (DebugLevel == DebugMode.Normal && modbus.ReceivedTelegrams[_adjustableMtrCfg.ModbusAddress].Count > 0) { - byte[] telegram = modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Dequeue(); + byte[] telegram = modbus.ReceivedTelegrams[_adjustableMtrCfg.ModbusAddress].Dequeue(); if (telegram.Length == 9 && telegram[1] == 4 && telegram[2] == 4) { /// Swap byte order @@ -110,9 +110,17 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale telegram[5] = t2; telegram[6] = t1; - receivedAmpers = Units.ConvertFrom(Unit.kPa, System.BitConverter.ToSingle(telegram, 3)); - receivedPressure = MeasurementCorrection.GetCorrection(receivedAmpers, CorrectionsLocal); - log.WarnFormat("Pressure: {0}={1}bar interpolated from Ampers: {2}", Name, receivedPressure.ToString("F3"), receivedAmpers.ToString("F3")); + receivedAmpers = Units.ConvertFrom(Unit.A, System.BitConverter.ToSingle(telegram, 3)); + if (CorrectionsLocal != null) + { + receivedValue = MeasurementCorrection.GetCorrection(receivedAmpers, CorrectionsLocal); + } + else + { + receivedValue = receivedAmpers; + } + + log.WarnFormat("Adjustable meter: {0}={1} Unit interpolated from Ampers: {2}", Name, receivedValue.ToString("F3"), receivedAmpers.ToString("F3")); } } } @@ -123,7 +131,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale { const byte Function = 4; /// Read input registers const ushort Address = 0; /// Pressure - modbus.SendMessage((byte)pressureMtrCfg.ModbusAddress, Function, Address, 2, Name); + modbus.SendMessage((byte)_adjustableMtrCfg.ModbusAddress, Function, Address, 2, Name); } } @@ -139,7 +147,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale { if (DebugLevel == DebugMode.Normal) { - return MeasurementCorrection.CorrectedValue(receivedPressure, Corrections); + return MeasurementCorrection.CorrectedValue(receivedValue, Corrections); } else if (DebugLevel == DebugMode.Simulate) { @@ -156,20 +164,20 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale /// /// Reference to a variable for the pressure in Bar /// ReadPressureOp instance reference casted to IOperaton - public IOperation ReadPressureOp(ref DoubleBox pressureBox) + public IOperation ReadAdjustableOp(ref DoubleBox value) { - return new ReadPressureOp(this, ref pressureBox); + return new ReadValueOp(this, ref value); } /// - /// Events: pressureDone, Error + /// Events: valueDone, Error /// /// Reference to a variable for the pressure in Bar /// Event returned when measurement done /// ReadPressureOp instance reference casted to IOperaton - public IOperation ReadPressureOp(ref DoubleBox pressureBox, Event pressureDone) + public IOperation ReadAdjustableOp(ref DoubleBox value, Event valueDone) { - return new ReadPressureOp(this, ref pressureBox, pressureDone); + return new ReadValueOp(this, ref value, valueDone); } @@ -219,8 +227,8 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale ClearConditions(); foreach (var pressLimit in new double[] { 2.18, 2.2, 2.22, 2.24, 2.26, 2.27 }) { - AddCondition(string.Format("{0} {1} > {2} bar", Strings.Wait_until, Name, pressLimit), new WaitUntilPressureIsOp(this, Pr.IsGT, pressLimit)); - AddCondition(string.Format("{0} {1} < {2} bar", Strings.Wait_until, Name, pressLimit), new WaitUntilPressureIsOp(this, Pr.IsLT, pressLimit)); + AddCondition(string.Format("{0} {1} > {2} bar", Strings.Wait_until, Name, pressLimit), new WaitUntilValueIsOp(this, Pr.IsGT, pressLimit)); + AddCondition(string.Format("{0} {1} < {2} bar", Strings.Wait_until, Name, pressLimit), new WaitUntilValueIsOp(this, Pr.IsLT, pressLimit)); } } } diff --git a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeterCfg.cs b/TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeterCfg.cs similarity index 87% rename from TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeterCfg.cs rename to TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeterCfg.cs index 87033b7f8..3a141c5a4 100644 --- a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/PressureMeterCfg.cs +++ b/TBF/Rig/Modbus/Meret/AdjustableScale/AdjustableMeterCfg.cs @@ -10,12 +10,12 @@ using Config.Entities; using SchematicDrawing; using TBF.Rig.Generic; -namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale +namespace TBF.Rig.Modbus.Meret.AdjustableScale { - public class PressureMeterCfg : ComponentCfgBase, IChildComponentCfg, GenericDevices.ICalibInfoCfg, IParamsProvider, + public class AdjustableMeterCfg : ComponentCfgBase, IChildComponentCfg, GenericDevices.ICalibInfoCfg, IParamsProvider, IDrawingItemWithMeasuredVal { - public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PressureMeterCfg) })[0]; + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(AdjustableMeterCfg) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl(IList cmpntEntities) @@ -62,18 +62,18 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale public IList GNodes { get; set; } /// Private parameterless constructor invoked by all other (public) constructors - PressureMeterCfg() + AdjustableMeterCfg() { GNodes = new List(); } - public PressureMeterCfg(IComponentFactory factory) + public AdjustableMeterCfg(IComponentFactory factory) : this() { - Shape = Shape.PressM; + Shape = Shape.ElectricM; Sz = Sz.M; Factory = factory; - Name = "Pr"; + Name = "Ad"; ParentName = "Modbus"; InitializeAll(); } @@ -84,8 +84,8 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale { ModbusAddress = 49; DefaultPressure = 2.34; - MsrdFormat = "{0:F2} bar"; - MsrdUnit = Unit.bar; + MsrdFormat = "{0:F2} A"; + MsrdUnit = Unit.A; MsrdValLimLo = -0.1; MsrdValLimHi = 25.0; @@ -98,13 +98,13 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale string[] paramNames = new string[] { "Modbus address", /// 0 - "Default pressure", /// 1 + "Default value", /// 1 "Display format", /// 2 - "Unit of pressure", /// 3 - "Pressure limit Lo", /// 4 - "Pressure limit Hi", /// 5 - "Correction Pressure limit Lo", /// 6 - "Correction Pressure limit Hi", /// 7 + "Unit", /// 3 + "Limit Lo", /// 4 + "Limit Hi", /// 5 + "Correction limit Lo", /// 6 + "Correction limit Hi", /// 7 }; public string ParamName(int i) { return paramNames[i]; } public int ParamsCount() { return paramNames.Length; } @@ -114,7 +114,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale switch (i) { case 3: - return new string[] { "Pa", "hPa", "mbar", "kPa", "inHg", "psi", "bar", "MPa" }; + return new string[] { "A", "mA", "V", "mV", "Pa", "hPa", "mbar", "kPa", "inHg", "psi", "bar", "MPa" }; default: return null; } @@ -145,7 +145,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale case 1: DefaultPressure = Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd; case 2: MsrdFormat = str; return CfgUpdateFlags.RestartRqrd; case 3: - foreach (var u in new Unit[] { Unit.Pa, Unit.hPa, Unit.mbar, Unit.kPa, Unit.inHg, Unit.psi, Unit.bar, Unit.MPa }) + foreach (var u in new Unit[] { Unit.A, Unit.mA, Unit.V, Unit.mV, Unit.Pa, Unit.hPa, Unit.mbar, Unit.kPa, Unit.inHg, Unit.psi, Unit.bar, Unit.MPa }) { if (str == u.ToDescription()) { @@ -194,7 +194,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale return false; } - void CopyContentTo(PressureMeterCfg prms) + void CopyContentTo(AdjustableMeterCfg prms) { prms.ParentName = this.ParentName; @@ -227,7 +227,7 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale public IParamsProvider Clone() { - PressureMeterCfg pars = new PressureMeterCfg(); + AdjustableMeterCfg pars = new AdjustableMeterCfg(); CopyContentTo(pars); return pars; } diff --git a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/Factory.cs b/TBF/Rig/Modbus/Meret/AdjustableScale/Factory.cs similarity index 56% rename from TBF/Rig/Modbus/PressureMeter/AdjustableScale/Factory.cs rename to TBF/Rig/Modbus/Meret/AdjustableScale/Factory.cs index ec6dfaa2c..b8990f301 100644 --- a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/Factory.cs +++ b/TBF/Rig/Modbus/Meret/AdjustableScale/Factory.cs @@ -4,22 +4,22 @@ using System.Collections.Generic; using TBF.Rig.Generic; -namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale +namespace TBF.Rig.Modbus.Meret.AdjustableScale { public class Factory : IComponentFactory { public string ClassName { get { return GetType().Namespace.Substring(8); } } public override string ToString() { return ClassName; } - public IComponent DummyComponent() { return new PressureMeter(); } + public IComponent DummyComponent() { return new AdjustableMeter(); } - public IComponent GetComponent(IComponentCfg cfg, IList components) { return new PressureMeter(cfg, components); } + public IComponent GetComponent(IComponentCfg cfg, IList components) { return new AdjustableMeter(cfg, components); } - public IComponentCfg DefaultConfig() { return new PressureMeterCfg(this); } + public IComponentCfg DefaultConfig() { return new AdjustableMeterCfg(this); } public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(PressureMeterCfg.Serializer, component, this); + return ComponentCfgBase.CreateFromDbEntity(AdjustableMeterCfg.Serializer, component, this); } } } diff --git a/TBF/Rig/Modbus/Meret/AdjustableScale/ReadValueOp.cs b/TBF/Rig/Modbus/Meret/AdjustableScale/ReadValueOp.cs new file mode 100644 index 000000000..175dd2d80 --- /dev/null +++ b/TBF/Rig/Modbus/Meret/AdjustableScale/ReadValueOp.cs @@ -0,0 +1,60 @@ +/// +/// Copyright (c) 2016-2021 Sensus Slovensko a.s. +/// +using System; +using log4net; +using TBF.Boxes; + +namespace TBF.Rig.Modbus.Meret.AdjustableScale +{ + public class ReadValueOp : IOperation + { + private static readonly ILog log = LogManager.GetLogger(typeof(ReadValueOp)); + public override string ToString() { return string.Format("ReadPressureOp(.,{0},.)", eventDone); } + + /// Set by the constructor + readonly AdjustableMeter _adjustableMeter; + readonly DoubleBox value; /// Box for the measured value + readonly Event eventDone; + + /// + /// Events: PressureDone or Error + /// + /// Pressure meter reference + /// Reference to the measured pressure variable, value is in bar + /// Event to be returned by Run() when completed OK + public ReadValueOp(AdjustableMeter adjustableMeter, ref DoubleBox value, Event eventDone) + { + if (adjustableMeter == null) throw new ArgumentNullException("adjustableMeter"); + this._adjustableMeter = adjustableMeter; + this.value = value; + this.eventDone = eventDone; + + log.Debug(this.ToString()); + } + public ReadValueOp(AdjustableMeter adjustableMeter, ref DoubleBox value) + : this(adjustableMeter, ref value, Event.PressureDone) + { + } + + + /// Start this operation + public void Start() + { + if (value != null) value.Val = _adjustableMeter.ReadPressure(); + } + + /// Run this operation + /// + /// Event.PressureInDone or Event.PressureOutDone + /// + public Event Run() + { + if (value != null) value.Val = _adjustableMeter.ReadPressure(); + return eventDone; + } + + /// Stop this operation + public void Stop() { } + } +} diff --git a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/WaitUntilPressureIsOp.cs b/TBF/Rig/Modbus/Meret/AdjustableScale/WaitUntilValueIsOp.cs similarity index 73% rename from TBF/Rig/Modbus/PressureMeter/AdjustableScale/WaitUntilPressureIsOp.cs rename to TBF/Rig/Modbus/Meret/AdjustableScale/WaitUntilValueIsOp.cs index 3784ba70b..1f77c8c59 100644 --- a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/WaitUntilPressureIsOp.cs +++ b/TBF/Rig/Modbus/Meret/AdjustableScale/WaitUntilValueIsOp.cs @@ -4,7 +4,7 @@ using System; using log4net; -namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale +namespace TBF.Rig.Modbus.Meret.AdjustableScale { public enum Pr { @@ -12,14 +12,14 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale IsLT, } - public class WaitUntilPressureIsOp : IOperation + public class WaitUntilValueIsOp : IOperation { - private static readonly ILog log = LogManager.GetLogger(typeof(WaitUntilPressureIsOp)); - public override string ToString() { return string.Format("WaitUntilPressureIsOp({0}, {1}, {2:F1}bar)", meter.Name, condition, pressureLimit); } + private static readonly ILog log = LogManager.GetLogger(typeof(WaitUntilValueIsOp)); + public override string ToString() { return string.Format("WaitUntilPressureIsOp({0}, {1}, {2:F1}bar)", meter.Name, condition, valueLimit); } /// Set by the constructor - readonly PressureMeter meter; - readonly double pressureLimit; + readonly AdjustableMeter meter; + readonly double valueLimit; readonly Pr condition; /// @@ -27,11 +27,11 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale /// /// Temp. controller reference /// Event to be returned by Run() when completed OK - public WaitUntilPressureIsOp(PressureMeter meter, Pr condition, double pressureLimit) + public WaitUntilValueIsOp(AdjustableMeter meter, Pr condition, double valueLimit) { if (meter == null) throw new ArgumentNullException("tempControl"); this.meter = meter; - this.pressureLimit = pressureLimit; + this.valueLimit = valueLimit; this.condition = condition; log.Debug(this.ToString()); @@ -43,11 +43,11 @@ namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale /// Run this operation public Event Run() { - if (condition == Pr.IsGT && meter.ReadPressure() > pressureLimit) + if (condition == Pr.IsGT && meter.ReadPressure() > valueLimit) { return Event.ConditionMet; } - else if (condition == Pr.IsLT && meter.ReadPressure() < pressureLimit) + else if (condition == Pr.IsLT && meter.ReadPressure() < valueLimit) { return Event.ConditionMet; } diff --git a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/ReadPressureOp.cs b/TBF/Rig/Modbus/PressureMeter/AdjustableScale/ReadPressureOp.cs deleted file mode 100644 index 839bd02a3..000000000 --- a/TBF/Rig/Modbus/PressureMeter/AdjustableScale/ReadPressureOp.cs +++ /dev/null @@ -1,60 +0,0 @@ -/// -/// Copyright (c) 2016-2021 Sensus Slovensko a.s. -/// -using System; -using log4net; -using TBF.Boxes; - -namespace TBF.Rig.Modbus.PressureMeter.AdjustableScale -{ - public class ReadPressureOp : IOperation - { - private static readonly ILog log = LogManager.GetLogger(typeof(ReadPressureOp)); - public override string ToString() { return string.Format("ReadPressureOp(.,{0},.)", eventDone); } - - /// Set by the constructor - readonly PressureMeter pressureMeter; - readonly DoubleBox pressure; /// Box for the measured value - readonly Event eventDone; - - /// - /// Events: PressureDone or Error - /// - /// Pressure meter reference - /// Reference to the measured pressure variable, value is in bar - /// Event to be returned by Run() when completed OK - public ReadPressureOp(PressureMeter pressureMeter, ref DoubleBox pressure, Event eventDone) - { - if (pressureMeter == null) throw new ArgumentNullException("pressureMeter"); - this.pressureMeter = pressureMeter; - this.pressure = pressure; - this.eventDone = eventDone; - - log.Debug(this.ToString()); - } - public ReadPressureOp(PressureMeter pressureMeter, ref DoubleBox pressure) - : this(pressureMeter, ref pressure, Event.PressureDone) - { - } - - - /// Start this operation - public void Start() - { - if (pressure != null) pressure.Val = pressureMeter.ReadPressure(); - } - - /// Run this operation - /// - /// Event.PressureInDone or Event.PressureOutDone - /// - public Event Run() - { - if (pressure != null) pressure.Val = pressureMeter.ReadPressure(); - return eventDone; - } - - /// Stop this operation - public void Stop() { } - } -} diff --git a/TBF/Rig/Sequences/ProcessData.cs b/TBF/Rig/Sequences/ProcessData.cs index b66bc9a8f..00940d826 100644 --- a/TBF/Rig/Sequences/ProcessData.cs +++ b/TBF/Rig/Sequences/ProcessData.cs @@ -43,6 +43,7 @@ namespace TBF.Rig.Sequences public static Unit TempUnit { get { return BenchInfo != null ? BenchInfo.TempUnit : Unit.C; } } public static Unit PressUnit { get { return BenchInfo != null ? BenchInfo.PressUnit : Unit.bar; } } public static Unit LengthUnit { get { return BenchInfo != null ? BenchInfo.LengthUnit : Unit.mm; } } + public static Unit ElectricUnit { get { return BenchInfo != null ? BenchInfo.ElectricUnit : Unit.A; } } /// /// Procedure related state variables @@ -275,6 +276,9 @@ namespace TBF.Rig.Sequences public static DoubleBox PressUp = new DoubleBox() { Name = "Pressure Up", Format = "F2" }; /// [bar] public static DoubleBox PressDown = new DoubleBox() { Name = "Pressure Dn", Format = "F2" }; /// [bar] public static DoubleBox PressDelta = new DoubleBox() { Name = "Pressure Delta", Format = "F2" }; /// [bar] + public static DoubleBox ElectricUp = new DoubleBox() { Name = "Electric Up", Format = "F2" }; /// [A] + public static DoubleBox ElectricDown = new DoubleBox() { Name = "Electric Dn", Format = "F2" }; /// [A] + public static DoubleBox ElectricDelta = new DoubleBox() { Name = "Electric Delta", Format = "F2" }; /// [A] public static FloatBox Conductivity = new FloatBox(750) { Name = "Conductivity", Format = "F0" }; /// [uS/cm], default is 750 public static int RefPulses { get { return StateMachine.ControlBoard.RefPulses; } } diff --git a/TBF/Rig/TbfComponents.cs b/TBF/Rig/TbfComponents.cs index 2442c784a..57b6bb96b 100644 --- a/TBF/Rig/TbfComponents.cs +++ b/TBF/Rig/TbfComponents.cs @@ -62,7 +62,7 @@ namespace TBF.Rig new Modbus.Common.Factory(), /// Modbus new Modbus.Ambient.Comet.Factory(), /// Comet Ambient temp./pressure/humidity measurement via a modbus on a PC new Modbus.PressureMeter.Meret.Factory(), /// Meret pressure meter connected via a modbus on a PC - new Modbus.PressureMeter.AdjustableScale.Factory(), /// Adjustable pressure meter connected via a modbus on a PC + new Modbus.Meret.AdjustableScale.Factory(), /// Adjustable meter connected via a modbus on a PC new Modbus.PumpFM.DanfossVLT.Factory(), /// Pump controlled by Danfoss VLT connected via Modbus new Modbus.QuidoRS.Factory(), /// Modbus.QuidoRS new Modbus.TankSelector.Factory(), /// Modbus.TankSelector diff --git a/TBF/Rig/TestMethods/Dummy/DummySeq.cs b/TBF/Rig/TestMethods/Dummy/DummySeq.cs index 9941d4d32..dfca3e2ef 100644 --- a/TBF/Rig/TestMethods/Dummy/DummySeq.cs +++ b/TBF/Rig/TestMethods/Dummy/DummySeq.cs @@ -36,6 +36,9 @@ namespace TBF.Rig.TestMethods.Dummy if (benchPath.PressMtrUp != null) readTempPressOps.Add(benchPath.PressMtrUp.ReadPressureOp(ref PressUp)); if (benchPath.PressMtrDown != null) readTempPressOps.Add(benchPath.PressMtrDown.ReadPressureOp(ref PressDown)); if (benchPath.PressMtrDelta != null) readTempPressOps.Add(benchPath.PressMtrDelta.ReadPressureOp(ref PressDelta)); + if (benchPath.ElectricMtrUp != null) readTempPressOps.Add(benchPath.PressMtrUp.ReadPressureOp(ref ElectricUp)); + if (benchPath.ElectricMtrDown != null) readTempPressOps.Add(benchPath.PressMtrDown.ReadPressureOp(ref ElectricDown)); + if (benchPath.ElectricMtrDelta != null) readTempPressOps.Add(benchPath.PressMtrDelta.ReadPressureOp(ref ElectricDelta)); if (heatMetersPath != null) readTempPressOps.Add(heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefHi1)); if (heatMetersPath != null) readTempPressOps.Add(heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefHi2)); if (heatMetersPath != null) readTempPressOps.Add(heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefLo1)); diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index 2c8487384..eb7320480 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -588,6 +588,7 @@ + @@ -678,11 +679,11 @@ - - - - - + + + + + @@ -2011,6 +2012,12 @@ MetrologyDlg.cs + + UserControl + + + MetrologyDlgAdjustableScaleTab.cs + UserControl @@ -3081,6 +3088,9 @@ MetrologyDlg.cs + + MetrologyDlgAdjustableScaleTab.cs + MetrologyDlgScaleTab.cs @@ -3499,7 +3509,9 @@ Results - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TBF/UI/Bench/Paths/PathsBenchCtrl.cs b/TBF/UI/Bench/Paths/PathsBenchCtrl.cs index 3b00542e5..9efacbc4d 100644 --- a/TBF/UI/Bench/Paths/PathsBenchCtrl.cs +++ b/TBF/UI/Bench/Paths/PathsBenchCtrl.cs @@ -34,6 +34,9 @@ namespace TBF.UI.Bench.Paths Pup, Pdown, Pdelta, + Eup, + Edown, + Edelta, StopBFValve, FixedColumnsCount, } @@ -117,6 +120,12 @@ namespace TBF.UI.Bench.Paths prDownCBox.Items.Add(cmpnt.Cfg.Name); prDeltaCBox.Items.Add(cmpnt.Cfg.Name); } + if (cmpnt is Rig.GenericDevices.IAdjustableMeter) + { + prUpCBox.Items.Add(cmpnt.Cfg.Name); + prDownCBox.Items.Add(cmpnt.Cfg.Name); + prDeltaCBox.Items.Add(cmpnt.Cfg.Name); + } if (cmpnt is IValve && (cmpnt as IValve).CoupledTo == null) { stopBFValveComboBox.Items.Add(cmpnt.Cfg.Name); @@ -135,6 +144,9 @@ namespace TBF.UI.Bench.Paths editors[(int)Column.Pup] = prUpCBox; editors[(int)Column.Pdown] = prDownCBox; editors[(int)Column.Pdelta] = prDownCBox; + editors[(int)Column.Eup] = prUpCBox; + editors[(int)Column.Edown] = prDownCBox; + editors[(int)Column.Edelta] = prDownCBox; editors[(int)Column.StopBFValve] = stopBFValveComboBox; /// Prepare valve combo-boxes (max. 64 valves) for (int i = 0; i < 64; i++) @@ -326,6 +338,9 @@ namespace TBF.UI.Bench.Paths entity.PressMtrUp = lvi.SubItems[(int)Column.Pup].Text; entity.PressMtrDown = lvi.SubItems[(int)Column.Pdown].Text; entity.PressMtrDelta = lvi.SubItems[(int)Column.Pdelta].Text; + entity.ElectricMtrUp = lvi.SubItems[(int)Column.Pup].Text; + entity.ElectricMtrDown = lvi.SubItems[(int)Column.Pdown].Text; + entity.ElectricMtrDelta = lvi.SubItems[(int)Column.Pdelta].Text; entity.StopBFValve = lvi.SubItems[(int)Column.StopBFValve].Text.Equals("---") ? null : lvi.SubItems[(int)Column.StopBFValve].Text; string valvesOpen = string.Empty; diff --git a/TBF/UI/Graphs/GraphsTabPageCtrl.cs b/TBF/UI/Graphs/GraphsTabPageCtrl.cs index 47b8af550..5d22a4780 100644 --- a/TBF/UI/Graphs/GraphsTabPageCtrl.cs +++ b/TBF/UI/Graphs/GraphsTabPageCtrl.cs @@ -155,7 +155,7 @@ namespace TBF.UI.Graphs if (ProcessData.BatchRslts != null && batchNrStr == ProcessData.BatchRslts.Batch.BatchNr.ToString()) { - node.Text = string.Format("{0} ({1})", batchNrStr, Strings.current); + node.Text = string.Format("{0} ({1})", batchNrStr, Strings.current_); } } } diff --git a/TBF/UI/Procedures/ProcedureDlg.cs b/TBF/UI/Procedures/ProcedureDlg.cs index 6bd642fe3..bf04b1d80 100644 --- a/TBF/UI/Procedures/ProcedureDlg.cs +++ b/TBF/UI/Procedures/ProcedureDlg.cs @@ -457,6 +457,7 @@ namespace TBF.UI.Procedures test.TempUnit = ProcessData.TempUnit; test.PressUnit = ProcessData.PressUnit; test.LengthUnit = ProcessData.LengthUnit; + test.ElectricUnit = ProcessData.ElectricUnit; test.ResetChngdFlags(); } @@ -2663,6 +2664,7 @@ namespace TBF.UI.Procedures test.TempUnit = (benchInfo != null) ? benchInfo.TempUnit : Unit.C; test.PressUnit = (benchInfo != null) ? benchInfo.PressUnit : Unit.bar; test.LengthUnit = (benchInfo != null) ? benchInfo.LengthUnit : Unit.mm; + test.ElectricUnit = (benchInfo != null) ? benchInfo.ElectricUnit : Unit.A; TestWizard.RoiData roiData = new TestWizard.RoiData(); diff --git a/TBF/UI/Process/ProcessTabPageCtrl.cs b/TBF/UI/Process/ProcessTabPageCtrl.cs index 66de2648a..be1720a51 100644 --- a/TBF/UI/Process/ProcessTabPageCtrl.cs +++ b/TBF/UI/Process/ProcessTabPageCtrl.cs @@ -13,6 +13,8 @@ using TBF.Rig.Sequences; using TBF.Rig.Various.Drawing.Junction; using TBF.UiBridge; using Dirichlet.Numerics; +using TBF.Rig.Modbus.Meret.AdjustableScale; +using Factory = TBF.Rig.Various.Drawing.Junction.Factory; namespace TBF.UI.Process { @@ -370,11 +372,13 @@ namespace TBF.UI.Process Rig.Modbus.PumpFM.DanfossVLT.PumpCfg pumpCfg; /// | setpoint, route based (initially bit nr. = 124) Rig.Modbus.TempMeter.Groch.TempMeterCfg tempInCfg; /// | measured value Rig.Modbus.PressureMeter.Meret.PressureMeterCfg pressUpCfg; /// | measured value + Rig.Modbus.Meret.AdjustableScale.AdjustableMeterCfg electricUpCfg; /// | measured value Rig.WaterMeters.WaterMeter.WaterMeterCfg wm1Cfg; /// | Rig.WaterMeters.WaterMeter.WaterMeterCfg wm2Cfg; /// | Rig.WaterMeters.WaterMeter.WaterMeterCfg wmLastCfg; /// | Rig.Modbus.TempMeter.Groch.TempMeterCfg tempOutCfg; /// | measured value Rig.Modbus.PressureMeter.Meret.PressureMeterCfg pressDnCfg; /// | measured value + Rig.Modbus.Meret.AdjustableScale.AdjustableMeterCfg electricDownCfg; /// | measured value Rig.BuiltIn.Valve.ValveCfg startValveCfg; /// | route based (initially bit nr. = 125) Rig.Uni.FlowMeter.FlowMeterCfg flowMeterCfg; /// | measured value Rig.Uni.RegValve.RegValveCfg regValveCfg; /// | setpoint @@ -384,11 +388,12 @@ namespace TBF.UI.Process Rig.BuiltIn.Valve.ValveCfg drainValveCfg; /// v route based (initially bit nr. = 127) /// int scaleId, tankId, drainValveId, diverterId, regValveId, flowMeterId, startValveId; - int pumpId, tempInId, tempOutId, tempDivId, pressUpId, pressDownId; + int pumpId, tempInId, tempOutId, tempDivId, pressUpId, pressDownId, electricUpId, electricDownId; int wm1Id, wm2Id, wmLastId, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11; /// int scaleMsrdIx, flowMeterMsrdIx, tempMtrUpMsrdIx, tempMtrDownMsrdIx, tempMtrDivMsrdIx; int pressMtrUpMsrdIx, pressMtrDownMsrdIx; + int electricMtrUpMsrdIx, electricMtrDownMsrdIx; /// int regValveSetpIx, pumpSetpIx; /// @@ -461,6 +466,18 @@ namespace TBF.UI.Process MsrdValLimLo = -0.1, MsrdValLimHi = 25, }); + /// Electric up + electricMtrUpMsrdIx = msrdIx++; + processDrawingCtrl.AddItem( + electricUpCfg = new Rig.Modbus.Meret.AdjustableScale.AdjustableMeterCfg(new Rig.Modbus.Meret.AdjustableScale.Factory()) + { + Id = electricUpId = id++, Name = "El up", + X = 50, Y = 270, Shape = Shape.ElectricM, Sz = Sz.M, Orient = Orient.R, Flip = false, + LblX = 0, LblY = 0, LblOrient = Orient.R, + MsrdX = 0, MsrdY = 22, MsrdOrient = Orient.R, MsrdFormat = "{0:F2} A", MsrdUnit = Unit.A, + MsrdValLimLo = -0.1, MsrdValLimHi = 25, + }); + if (mtrKind == MetersKind.Combined) { /// WM 1 main @@ -540,6 +557,18 @@ namespace TBF.UI.Process MsrdX = 0, MsrdY = 22, MsrdOrient = Orient.R, MsrdFormat = "{0:F2} bar", MsrdUnit = Common.Unit.bar, MsrdValLimLo = -0.1, MsrdValLimHi = 25, }); + + /// El down + electricMtrDownMsrdIx = msrdIx++; + processDrawingCtrl.AddItem( + electricDownCfg = new AdjustableMeterCfg(new Rig.Modbus.Meret.AdjustableScale.Factory()) + { + Id = electricDownId = id++, Name = "El dn", + X = 370, Y = 270, Shape = Shape.PressM, Sz = Sz.M, Orient = Orient.R, Flip = false, + LblX = 0, LblY = 0, LblOrient = Orient.R, + MsrdX = 0, MsrdY = 22, MsrdOrient = Orient.R, MsrdFormat = "{0:F2} A", MsrdUnit = Common.Unit.A, + MsrdValLimLo = -0.1, MsrdValLimHi = 25, + }); /// Junction processDrawingCtrl.AddItem(new Configuration("J7", new Factory()) { Id=(j7=id++), Shape=Shape.Junction, X=460, Y=370, Sz=Sz.L, }); @@ -735,7 +764,14 @@ namespace TBF.UI.Process pressUpCfg.MsrdUnit = (args.BenchPath != null && args.BenchPath.PressMtrUp != null) ? args.BenchPath.PressMtrUp.MsrdUnit : Unit.bar; pressUpCfg.MsrdValLimLo = (args.BenchPath != null && args.BenchPath.PressMtrUp != null) ? args.BenchPath.PressMtrUp.MsrdValLimLo : 0; pressUpCfg.MsrdValLimHi = (args.BenchPath != null && args.BenchPath.PressMtrUp != null) ? args.BenchPath.PressMtrUp.MsrdValLimHi : 15; - + + //Electric + electricUpCfg.Name = (args.BenchPath != null && args.BenchPath.ElectricMtrUp != null) ? args.BenchPath.ElectricMtrUp.Name : "n/a"; + electricUpCfg.MsrdFormat = (args.BenchPath != null && args.BenchPath.ElectricMtrUp != null) ? args.BenchPath.ElectricMtrUp.MsrdFormat : "{0:F2} A"; + electricUpCfg.MsrdUnit = (args.BenchPath != null && args.BenchPath.ElectricMtrUp != null) ? args.BenchPath.ElectricMtrUp.MsrdUnit : Unit.A; + electricUpCfg.MsrdValLimLo = (args.BenchPath != null && args.BenchPath.ElectricMtrUp != null) ? args.BenchPath.ElectricMtrUp.MsrdValLimLo : 0; + electricUpCfg.MsrdValLimHi = (args.BenchPath != null && args.BenchPath.ElectricMtrUp != null) ? args.BenchPath.ElectricMtrUp.MsrdValLimHi : 15; + tempOutCfg.Name = (args.BenchPath != null && args.BenchPath.TempMtrDown != null) ? args.BenchPath.TempMtrDown.Name : "n/a"; tempOutCfg.MsrdFormat = (args.BenchPath != null && args.BenchPath.TempMtrDown != null) ? args.BenchPath.TempMtrDown.MsrdFormat : "{0:F1} °C"; tempOutCfg.MsrdUnit = (args.BenchPath != null && args.BenchPath.TempMtrDown != null) ? args.BenchPath.TempMtrDown.MsrdUnit : Unit.C; @@ -747,6 +783,13 @@ namespace TBF.UI.Process pressDnCfg.MsrdUnit = (args.BenchPath != null && args.BenchPath.PressMtrDown != null) ? args.BenchPath.PressMtrDown.MsrdUnit : Unit.bar; pressDnCfg.MsrdValLimLo = (args.BenchPath != null && args.BenchPath.PressMtrDown != null) ? args.BenchPath.PressMtrDown.MsrdValLimLo : 0; pressDnCfg.MsrdValLimHi = (args.BenchPath != null && args.BenchPath.PressMtrDown != null) ? args.BenchPath.PressMtrDown.MsrdValLimHi : 15; + + //Electric + electricDownCfg.Name = (args.BenchPath != null && args.BenchPath.ElectricMtrDown != null) ? args.BenchPath.ElectricMtrDown.Name : "n/a"; + electricDownCfg.MsrdFormat = (args.BenchPath != null && args.BenchPath.ElectricMtrDown != null) ? args.BenchPath.ElectricMtrDown.MsrdFormat : "{0:F2} A"; + electricDownCfg.MsrdUnit = (args.BenchPath != null && args.BenchPath.ElectricMtrDown != null) ? args.BenchPath.ElectricMtrDown.MsrdUnit : Unit.A; + electricDownCfg.MsrdValLimLo = (args.BenchPath != null && args.BenchPath.ElectricMtrDown != null) ? args.BenchPath.ElectricMtrDown.MsrdValLimLo : 0; + electricDownCfg.MsrdValLimHi = (args.BenchPath != null && args.BenchPath.ElectricMtrDown != null) ? args.BenchPath.ElectricMtrDown.MsrdValLimHi : 15; /// Output path startValveCfg.Name = (args.OutputPath != null && args.OutputPath.StartValve1 != null) ? args.OutputPath.StartValve1.Name : "n/a"; @@ -871,6 +914,8 @@ namespace TBF.UI.Process cmpntWithMeasuredVal[tempMtrDivMsrdIx] = args.OutputPath.TempMtrDiv as IDrawingItCmpntWithMeasuredVal; cmpntWithMeasuredVal[pressMtrUpMsrdIx] = args.BenchPath.PressMtrUp as IDrawingItCmpntWithMeasuredVal; cmpntWithMeasuredVal[pressMtrDownMsrdIx] = args.BenchPath.PressMtrDown as IDrawingItCmpntWithMeasuredVal; + cmpntWithMeasuredVal[electricMtrUpMsrdIx] = args.BenchPath.ElectricMtrUp as IDrawingItCmpntWithMeasuredVal; + cmpntWithMeasuredVal[electricMtrDownMsrdIx] = args.BenchPath.ElectricMtrDown as IDrawingItCmpntWithMeasuredVal; cmpntWithSetpoint[regValveSetpIx] = args.OutputPath.RegValve as IDrawingItCmpntWithSetpoint; cmpntWithSetpoint[pumpSetpIx] = args.FeedingPath.Pump as IDrawingItCmpntWithSetpoint; diff --git a/TBFTests/Entities/MeasurementCorrectionTest.cs b/TBFTests/Entities/MeasurementCorrectionTest.cs new file mode 100644 index 000000000..366161cf9 --- /dev/null +++ b/TBFTests/Entities/MeasurementCorrectionTest.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using Config.Entities; +using JetBrains.Annotations; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace TBFTests.Entities +{ + [TestClass] + [TestSubject(typeof(MeasurementCorrection))] + public class MeasurementCorrectionTest + { + + [TestMethod] + public void GetCorrection() + { + double rawValue, expectedVal; + IList corrections; + + corrections = new List(2); + MeasurementCorrection Lo, Hi; + Lo = new MeasurementCorrection(1); + Lo.Measurement = 0.04; //CorrectionValLo; + Lo.Correction = 0.0F; //MsrdValLimLo; + corrections.Add(Lo); + Hi = new MeasurementCorrection(2); + Hi.Measurement = 0.22F;//CorrectionValHi; + Hi.Correction = 2.0F;//MsrdValLimHi; + corrections.Add(Hi); + + + + expectedVal = Lo.Correction; + rawValue = Lo.Measurement; //Ampers + + double CorrectionVal = MeasurementCorrection.GetCorrection(rawValue, corrections); + Console.WriteLine("{0} Correction - rawValue: {1} CorrectionVal: {2}", "TEST " + rawValue, rawValue, CorrectionVal); + Assert.IsTrue(expectedVal == CorrectionVal); + + expectedVal = Hi.Correction; + rawValue = Hi.Measurement; //Ampers + + CorrectionVal = MeasurementCorrection.GetCorrection(rawValue, corrections); + Console.WriteLine("{0} Correction - rawValue: {1} CorrectionVal: {2}", "TEST " + rawValue, rawValue, CorrectionVal); + Assert.IsTrue(expectedVal == CorrectionVal); + + double toler = 0.3; + expectedVal = 1.24; //bar + rawValue = 0.152; //Ampers + + CorrectionVal = MeasurementCorrection.GetCorrection(rawValue, corrections); + Console.WriteLine("{0} Correction - rawValue: {1} CorrectionVal: {2}", "TEST " + rawValue, rawValue, CorrectionVal); + Assert.IsTrue((expectedVal + toler) >= CorrectionVal && (expectedVal - toler) <= CorrectionVal); + + toler = 0.0001; + expectedVal = 1.0; + rawValue = Lo.Measurement + ((Hi.Measurement - Lo.Measurement) / 2.0); //Ampers 0.129999999403954 + + CorrectionVal = MeasurementCorrection.GetCorrection(rawValue, corrections); + Console.WriteLine("{0} Correction - rawValue: {1} CorrectionVal: {2}", "TEST " + rawValue, rawValue, CorrectionVal); + Assert.IsTrue((expectedVal + toler) >= CorrectionVal && (expectedVal - toler) <= CorrectionVal); + + } + } +} \ No newline at end of file