Add initial MassMeter implementation
This commit is contained in:
parent
b43657a4db
commit
ead350eef3
@ -293,7 +293,15 @@ namespace Common
|
||||
SingleOrCompound, /// Only used when querying results
|
||||
}
|
||||
|
||||
public enum Medium
|
||||
public enum PulsesTypeByQuantity : short
|
||||
{
|
||||
[Description("dm3")] Volume_dm3,
|
||||
[Description("kg")] Mass_kg,
|
||||
|
||||
Count
|
||||
}
|
||||
|
||||
public enum Medium
|
||||
{
|
||||
[Description("")] NotSpecified,
|
||||
#if LANG_PL
|
||||
|
||||
@ -16,20 +16,26 @@ namespace Results.Entities
|
||||
public virtual double PulsesMeter { get; set; } /// # of water meter or heat meter pulses
|
||||
public virtual double PulsesMaster { get; set; } /// # of reference flowmeter pulses (gated by this water meter pulses)
|
||||
public virtual double PulsesPerLiter { get; set; } /// [l ^ -1], in case of heat meters (CompoundMeterId==5) pulses per kWh in [kWh ^ -1]
|
||||
public virtual double PulsesPerKilogram { get; set; } /// [kg ^ -1]
|
||||
public virtual double VolumeStart { get; set; } /// Volume or energy (CompoundMeterId==5) on test start in [l] or [J]
|
||||
public virtual double VolumeEnd { get; set; } /// Volume or energy (CompoundMeterId==5) on test end in [l] or [J]
|
||||
public virtual double VolumeMeter { get; set; } /// Measured volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double VolumeRef { get; set; } /// Reference volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double VolumeMeter { get; set; } /// Measured volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double MassMeter { get; set; } /// Measured mass or energy (CompoundMeterId==5) in [kg] or [J]
|
||||
public virtual double VolumeRef { get; set; } /// Reference volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double MassRef { get; set; } /// Reference mass or energy (CompoundMeterId==5) in [kg] or [J]
|
||||
public virtual double TimestampStart { get; set; } /// [s]
|
||||
public virtual double TimestampEnd { get; set; } /// [s]
|
||||
public virtual double TestTime { get; set; } /// [s]
|
||||
|
||||
/// Main result
|
||||
public virtual double Error { get; set; } /// [%]
|
||||
public virtual double Error { get; set; } /// [%] for volume register reader
|
||||
public virtual double ErrorMass { get; set; } /// [%] for mass register reader
|
||||
public virtual long ErrorIndicators { get; set; } /// Not mapped to DB !!!, bit24=E25, bit25=E26, bit26=E27, bit27=E28 (error flags)
|
||||
public virtual long InfoIndicators { get; set; } /// Not mapped to DB !!!, bit24=E25, bit25=E26, bit26=E27, bit27=E28 (info flags)
|
||||
public virtual bool TestDone { get; set; } /// true = test was completed
|
||||
public virtual bool Passed { get; set; } /// true = test passed, water meter is OK
|
||||
public virtual bool Passed { get; set; } /// true = test passed, water meter is OK for Volume RegisterReader
|
||||
public virtual bool PassedMass { get; set; } /// true = test passed, water meter is OK for Mass RegisterReader
|
||||
public virtual string QuantityUnits { get; set; } /// dm3, kg, etc. - this value defined the quantity of meter, its decisive for distinction of pulse types
|
||||
#if IPERL
|
||||
public virtual int CalibFactor { get; set; }
|
||||
public virtual int CalibFactorLNA { get; set; }
|
||||
@ -123,6 +129,33 @@ namespace Results.Entities
|
||||
return Passed ? yesNo[0] : ((yesNo.Length >= 2) ? yesNo[1] : Results.Resources.Strings.No);
|
||||
}
|
||||
}
|
||||
public virtual string PassedMassColorStr(string yesNoFormatOrEmpty)
|
||||
{
|
||||
if (string.IsNullOrEmpty(yesNoFormatOrEmpty))
|
||||
{
|
||||
return Utils.PassedColorStr(PassedMass, Evaluate());
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] yesNo = yesNoFormatOrEmpty.Split(new char[] { '~' });
|
||||
return PassedMass ? yesNo[0] : ((yesNo.Length >= 2) ? yesNo[1] : Results.Resources.Strings.No);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string GetQuantityFromUnits()
|
||||
{
|
||||
|
||||
if (QuantityUnits == "kg")
|
||||
{
|
||||
return "Mass";
|
||||
}
|
||||
else if (QuantityUnits == "dm3")
|
||||
{
|
||||
return "Volume";
|
||||
}
|
||||
|
||||
return "Volume";
|
||||
}
|
||||
|
||||
public MeterTestRslt()
|
||||
{
|
||||
|
||||
@ -36,6 +36,8 @@ namespace Results.Entities
|
||||
public virtual double ConstMasterCorr { get; set; } /// [l/pls] Liters per pulse of the master flow meter corrected by a correction table.
|
||||
public virtual double ConstMaster { get; set; } /// [l/pls] Liters per pulse of the master flow meter calculated from a mass measurement.
|
||||
/// When mass measurement is not available, corrected by a correction table.
|
||||
public virtual double MassConstMaster { get; set; } /// [kg/pls] kilograms per pulse of the master flow meter calculated from a mass measurement.
|
||||
/// When mass measurement is not available, corrected by a correction table.
|
||||
public virtual double MassStartRaw { get; set; } /// [kg]
|
||||
public virtual double MassStart { get; set; } /// [kg]
|
||||
public virtual double MassEndRaw { get; set; } /// [kg]
|
||||
@ -48,7 +50,11 @@ namespace Results.Entities
|
||||
public virtual double Flow { get; set; } /// [m3/h] calculated from conventional true value
|
||||
public virtual double VolumeCTV { get; set; } /// [l] Volume conventional true value
|
||||
public virtual double VolumeMaster { get; set; } /// [l] Volume from the master flow meter
|
||||
public virtual double ErrorMaster { get; set; } /// [%] Error of the master flow meter
|
||||
public virtual double ErrorMaster { get; set; } /// [%] Error of the master flow meter
|
||||
public virtual double MassFlow { get; set; } /// [t/h] calculated from conventional true value
|
||||
public virtual double MassCTV { get; set; } /// [kg] Volume conventional true value
|
||||
public virtual double MassMaster { get; set; } /// [kg] Volume from the master flow meter
|
||||
public virtual double MassErrorMaster { get; set; } /// [%] Error of the master flow meter
|
||||
|
||||
public virtual float DiverterStart { get; set; } /// [s] Diverter switch time or a start/stop valve open time when the test starts
|
||||
public virtual float DivStart10 { get; set; } /// [s] Diverter switch time when test starts at level 10 (e.g. 10%) (not mapped to DB)
|
||||
|
||||
@ -33,7 +33,8 @@ namespace Results.Entities
|
||||
public virtual string ApprovalInfo { get; set; }
|
||||
public virtual string Certificate { get; set; }
|
||||
public virtual double PulsesPerLtr { get; set; }
|
||||
|
||||
public virtual double PulsesPerKilogram { get; set; }
|
||||
|
||||
/// Concerns compound water meters
|
||||
public virtual string ProducerAux { get; set; }
|
||||
public virtual double Q3_Qn_Aux { get; set; } /// [m3/h]
|
||||
@ -85,6 +86,7 @@ namespace Results.Entities
|
||||
ApprovalInfo = oriWMData.ApprovalInfo;
|
||||
Certificate = oriWMData.Certificate;
|
||||
PulsesPerLtr = oriWMData.PulsesPerLtr;
|
||||
PulsesPerKilogram = oriWMData.PulsesPerKilogram;
|
||||
ProducerAux = oriWMData.ProducerAux;
|
||||
Q3_Qn_Aux = oriWMData.Q3_Qn_Aux;
|
||||
MetrologicalClassAux = oriWMData.MetrologicalClassAux;
|
||||
@ -129,6 +131,7 @@ namespace Results.Entities
|
||||
if (ApprovalInfo != wmd.ApprovalInfo) return false;
|
||||
if (Certificate != wmd.Certificate) return false;
|
||||
if (PulsesPerLtr != wmd.PulsesPerLtr) return false;
|
||||
if (PulsesPerKilogram != wmd.PulsesPerKilogram) return false;
|
||||
if (ProducerAux != wmd.ProducerAux) return false;
|
||||
if (Q3_Qn_Aux != wmd.Q3_Qn_Aux) return false;
|
||||
if (MetrologicalClassAux != wmd.MetrologicalClassAux) return false;
|
||||
@ -188,6 +191,7 @@ namespace Results.Entities
|
||||
writer.Write((ApprovalInfo != null) ? ApprovalInfo : string.Empty);
|
||||
writer.Write((Certificate != null) ? Certificate : string.Empty);
|
||||
writer.Write(PulsesPerLtr);
|
||||
writer.Write(PulsesPerKilogram);
|
||||
writer.Write((ProducerAux != null) ? ProducerAux : string.Empty);
|
||||
writer.Write(Q3_Qn_Aux);
|
||||
writer.Write((MetrologicalClassAux != null) ? MetrologicalClassAux : string.Empty);
|
||||
@ -227,6 +231,7 @@ namespace Results.Entities
|
||||
ApprovalInfo = reader.ReadString();
|
||||
Certificate = reader.ReadString();
|
||||
PulsesPerLtr = reader.ReadDouble();
|
||||
PulsesPerKilogram = reader.ReadDouble();
|
||||
ProducerAux = reader.ReadString();
|
||||
Q3_Qn_Aux = reader.ReadDouble();
|
||||
MetrologicalClassAux = reader.ReadString();
|
||||
|
||||
@ -16,16 +16,22 @@ namespace Results.Mappings
|
||||
Map(x => x.PulsesMeter);
|
||||
Map(x => x.PulsesMaster);
|
||||
Map(x => x.PulsesPerLiter);
|
||||
Map(x => x.VolumeStart);
|
||||
Map(x => x.PulsesPerKilogram);
|
||||
Map(x => x.VolumeStart);
|
||||
Map(x => x.VolumeEnd);
|
||||
Map(x => x.VolumeMeter);
|
||||
Map(x => x.VolumeRef);
|
||||
Map(x => x.TimestampStart);
|
||||
Map(x => x.MassMeter);
|
||||
Map(x => x.MassRef);
|
||||
Map(x => x.TimestampStart);
|
||||
Map(x => x.TimestampEnd);
|
||||
Map(x => x.TestTime);
|
||||
Map(x => x.Error);
|
||||
Map(x => x.ErrorMass);
|
||||
Map(x => x.TestDone);
|
||||
Map(x => x.Passed);
|
||||
Map(x => x.PassedMass);
|
||||
Map(x => x.QuantityUnits);
|
||||
#if IPERL
|
||||
Map(x => x.ExtraDataPath);
|
||||
Map(x => x.X1);
|
||||
|
||||
@ -45,6 +45,10 @@ namespace Results.Mappings
|
||||
Map(x => x.VolumeCTV);
|
||||
Map(x => x.VolumeMaster);
|
||||
Map(x => x.ErrorMaster);
|
||||
Map(x => x.MassFlow).Column("MassFlow");
|
||||
Map(x => x.MassCTV);
|
||||
Map(x => x.MassMaster);
|
||||
Map(x => x.MassErrorMaster);
|
||||
Map(x => x.DiverterStart);
|
||||
Map(x => x.DiverterEnd);
|
||||
Map(x => x.ErrorFlags);
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
is_global = true
|
||||
build_property.RootNamespace = SharedComponents
|
||||
build_property.ProjectDir = C:\Users\micha\git\tbf\SharedComponents\
|
||||
build_property.ProjectDir = C:\Sensus projects\LocalBranch_start_at_19.2.2026\tbf-exchange260123\tbf\SharedComponents\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.CsWinRTUseWindowsUIXamlProjections = false
|
||||
build_property.EffectiveAnalysisLevelStyle =
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
|
||||
@ -5,11 +5,12 @@
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\micha\.nuget\packages\</NuGetPackageFolders>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\MFRNIAK\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\micha\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Users\MFRNIAK\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -19,8 +19,8 @@
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
<applicationRequestMinimum>
|
||||
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
|
||||
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||
<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
|
||||
</applicationRequestMinimum>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
28
TBF/Resources/Strings.Designer.cs
generated
28
TBF/Resources/Strings.Designer.cs
generated
@ -1,6 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 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.
|
||||
@ -4415,6 +4416,15 @@ namespace TBF.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses per kilogram.
|
||||
/// </summary>
|
||||
internal static string PulsesPerKilogram {
|
||||
get {
|
||||
return ResourceManager.GetString("PulsesPerKilogram", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses per kWh.
|
||||
/// </summary>
|
||||
@ -4433,6 +4443,15 @@ namespace TBF.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses per unit.
|
||||
/// </summary>
|
||||
internal static string PulsesPerUnit {
|
||||
get {
|
||||
return ResourceManager.GetString("PulsesPerUnit", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pump.
|
||||
/// </summary>
|
||||
@ -6686,6 +6705,15 @@ namespace TBF.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Units.
|
||||
/// </summary>
|
||||
internal static string Units {
|
||||
get {
|
||||
return ResourceManager.GetString("Units", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Unlock.
|
||||
/// </summary>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -126,4 +126,13 @@
|
||||
<data name="ShowDialog" xml:space="preserve">
|
||||
<value>Mostrar diálogo</value>
|
||||
</data>
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
</root>
|
||||
@ -117,9 +117,6 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Activité</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>Confirmation</value>
|
||||
</data>
|
||||
@ -399,9 +396,6 @@
|
||||
<data name="Tol_red_pct_chdr" xml:space="preserve">
|
||||
<value>Toler rouge. [%]</value>
|
||||
</data>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>Temps test [s]</value>
|
||||
</data>
|
||||
<data name="Error_while_creating_DB_Reason" xml:space="preserve">
|
||||
<value>Erreur lors de la création de la base de données. Raison:</value>
|
||||
</data>
|
||||
@ -525,9 +519,6 @@
|
||||
<data name="RelativeQto" xml:space="preserve">
|
||||
<value>Q relatif à</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>Q cible [m3/h]</value>
|
||||
</data>
|
||||
<data name="Compound_meters" xml:space="preserve">
|
||||
<value>Mètres composés</value>
|
||||
</data>
|
||||
@ -618,6 +609,9 @@
|
||||
<data name="Switching_flow_detection" xml:space="preserve">
|
||||
<value>Détection flux commutation</value>
|
||||
</data>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Activité</value>
|
||||
</data>
|
||||
<data name="Progress" xml:space="preserve">
|
||||
<value>Progrès</value>
|
||||
</data>
|
||||
@ -888,7 +882,7 @@
|
||||
<data name="Qrise" xml:space="preserve">
|
||||
<value>Q hausse</value>
|
||||
</data>
|
||||
<data name="Serial_Number" xml:space="preserve">
|
||||
<data name="Serial_number" xml:space="preserve">
|
||||
<value>Numéro série</value>
|
||||
</data>
|
||||
<data name="State" xml:space="preserve">
|
||||
@ -939,6 +933,9 @@
|
||||
<data name="Purchase_order" xml:space="preserve">
|
||||
<value>Commande</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Numéro de projet</value>
|
||||
</data>
|
||||
<data name="Ambient_humidity" xml:space="preserve">
|
||||
<value>Humidité ambiante</value>
|
||||
</data>
|
||||
@ -1245,9 +1242,6 @@
|
||||
<data name="Target_ref_pulses_" xml:space="preserve">
|
||||
<value>Cible ref impulsions:</value>
|
||||
</data>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>Volume cible [l]:</value>
|
||||
</data>
|
||||
<data name="Save_column_widths" xml:space="preserve">
|
||||
<value>Enregistrer largeurs colonne</value>
|
||||
</data>
|
||||
@ -1386,9 +1380,6 @@
|
||||
<data name="Last_changed_by" xml:space="preserve">
|
||||
<value>Dernier changement dby</value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>Types compteurs testés</value>
|
||||
</data>
|
||||
<data name="Notes" xml:space="preserve">
|
||||
<value>Remarques</value>
|
||||
</data>
|
||||
@ -1671,6 +1662,9 @@
|
||||
<data name="Protected_procedure" xml:space="preserve">
|
||||
<value>Procédure protégée</value>
|
||||
</data>
|
||||
<data name="Empty" xml:space="preserve">
|
||||
<value>Vidanger</value>
|
||||
</data>
|
||||
<data name="Session" xml:space="preserve">
|
||||
<value>Session</value>
|
||||
</data>
|
||||
@ -1713,9 +1707,6 @@
|
||||
<data name="RFID_communication_failed" xml:space="preserve">
|
||||
<value>Échec communication RFID</value>
|
||||
</data>
|
||||
<data name="Opto_head_was_disabled_by_the_user" xml:space="preserve">
|
||||
<value>tête désactivée par utilisateur</value>
|
||||
</data>
|
||||
<data name="failed_0_1_exclamation" xml:space="preserve">
|
||||
<value>{0}' exclamation échoué ({1}) !!!</value>
|
||||
</data>
|
||||
@ -1803,9 +1794,6 @@
|
||||
<data name="Refresh" xml:space="preserve">
|
||||
<value>Rafraîchir</value>
|
||||
</data>
|
||||
<data name="current" xml:space="preserve">
|
||||
<value>actuel</value>
|
||||
</data>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>Couler</value>
|
||||
</data>
|
||||
@ -1905,7 +1893,7 @@
|
||||
<data name="Import" xml:space="preserve">
|
||||
<value>Importation</value>
|
||||
</data>
|
||||
<data name="repetition" xml:space="preserve">
|
||||
<data name="Repetition" xml:space="preserve">
|
||||
<value>répétition</value>
|
||||
</data>
|
||||
<data name="Result" xml:space="preserve">
|
||||
@ -1989,6 +1977,9 @@
|
||||
<data name="End_session" xml:space="preserve">
|
||||
<value>Terminer le cycle</value>
|
||||
</data>
|
||||
<data name="Fill" xml:space="preserve">
|
||||
<value>Inonder</value>
|
||||
</data>
|
||||
<data name="Pipeline" xml:space="preserve">
|
||||
<value>Pipeline</value>
|
||||
</data>
|
||||
@ -2001,25 +1992,40 @@
|
||||
<data name="Q_tg" xml:space="preserve">
|
||||
<value>Q obj.</value>
|
||||
</data>
|
||||
<data name="Empty" xml:space="preserve">
|
||||
<value>Vidanger</value>
|
||||
</data>
|
||||
<data name="Empty_the_tank" xml:space="preserve">
|
||||
<value>Vidanger réservoir</value>
|
||||
</data>
|
||||
<data name="Fill" xml:space="preserve">
|
||||
<value>Inonder</value>
|
||||
</data>
|
||||
<data name="Current" xml:space="preserve">
|
||||
<value>Curren</value>
|
||||
</data>
|
||||
<data name="Voltage" xml:space="preserve">
|
||||
<value>Tension</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Numéro de projet</value>
|
||||
</data>
|
||||
<data name="ShowDialog" xml:space="preserve">
|
||||
<value>Afficher la boîte de dialogue</value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>Types compteurs testés</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>Q cible [m3/h]</value>
|
||||
</data>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>Volume cible [l]:</value>
|
||||
</data>
|
||||
<data name="Opto_head_was_disabled_by_the_user" xml:space="preserve">
|
||||
<value>tête désactivée par utilisateur</value>
|
||||
</data>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>Temps test [s]</value>
|
||||
</data>
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
</root>
|
||||
@ -117,9 +117,6 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Attività</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>conferma</value>
|
||||
</data>
|
||||
@ -252,9 +249,6 @@
|
||||
<data name="Nr" xml:space="preserve">
|
||||
<value>numero</value>
|
||||
</data>
|
||||
<data name="Mass" xml:space="preserve">
|
||||
<value>massa</value>
|
||||
</data>
|
||||
<data name="AddBtnText" xml:space="preserve">
|
||||
<value>Aggiunta</value>
|
||||
</data>
|
||||
@ -276,12 +270,6 @@
|
||||
<data name="OkBtnText" xml:space="preserve">
|
||||
<value>Ok</value>
|
||||
</data>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>flusso</value>
|
||||
</data>
|
||||
<data name="Pressure" xml:space="preserve">
|
||||
<value>pressione</value>
|
||||
</data>
|
||||
<data name="Invalid_username_or_password" xml:space="preserve">
|
||||
<value>Username o password non validi</value>
|
||||
</data>
|
||||
@ -399,12 +387,6 @@
|
||||
<data name="Output_chdr" xml:space="preserve">
|
||||
<value>Uscite</value>
|
||||
</data>
|
||||
<data name="Q_from_lph" xml:space="preserve">
|
||||
<value>Qda [l/h]</value>
|
||||
</data>
|
||||
<data name="Q_to_lph" xml:space="preserve">
|
||||
<value>Q a [l/h]</value>
|
||||
</data>
|
||||
<data name="Red_type_chdr" xml:space="preserve">
|
||||
<value>tipo rosso</value>
|
||||
</data>
|
||||
@ -414,9 +396,6 @@
|
||||
<data name="Tol_red_pct_chdr" xml:space="preserve">
|
||||
<value>tolleranza rossa [%]</value>
|
||||
</data>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>test time [s]</value>
|
||||
</data>
|
||||
<data name="Error_while_creating_DB_Reason" xml:space="preserve">
|
||||
<value>errore durante la creazione del data base. ragioni:</value>
|
||||
</data>
|
||||
@ -540,9 +519,6 @@
|
||||
<data name="RelativeQto" xml:space="preserve">
|
||||
<value>Q relativo a</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>target Q [m3/h]</value>
|
||||
</data>
|
||||
<data name="Compound_meters" xml:space="preserve">
|
||||
<value>metri composti</value>
|
||||
</data>
|
||||
@ -633,6 +609,9 @@
|
||||
<data name="Switching_flow_detection" xml:space="preserve">
|
||||
<value>rilevamento del flusso di commutazione</value>
|
||||
</data>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Attività</value>
|
||||
</data>
|
||||
<data name="Progress" xml:space="preserve">
|
||||
<value>progressi</value>
|
||||
</data>
|
||||
@ -903,7 +882,7 @@
|
||||
<data name="Qrise" xml:space="preserve">
|
||||
<value>Qalta</value>
|
||||
</data>
|
||||
<data name="Serial_Number" xml:space="preserve">
|
||||
<data name="Serial_number" xml:space="preserve">
|
||||
<value>Numero Seriale</value>
|
||||
</data>
|
||||
<data name="State" xml:space="preserve">
|
||||
@ -954,6 +933,9 @@
|
||||
<data name="Purchase_order" xml:space="preserve">
|
||||
<value>ordine acquisto</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Numero del progetto</value>
|
||||
</data>
|
||||
<data name="Ambient_humidity" xml:space="preserve">
|
||||
<value>Umidità dell'ambiente</value>
|
||||
</data>
|
||||
@ -981,9 +963,6 @@
|
||||
<data name="Start" xml:space="preserve">
|
||||
<value>Inizio</value>
|
||||
</data>
|
||||
<data name="AtTemperature_C" xml:space="preserve">
|
||||
<value>@temperatura [°C]</value>
|
||||
</data>
|
||||
<data name="Density" xml:space="preserve">
|
||||
<value>densità</value>
|
||||
</data>
|
||||
@ -1125,15 +1104,15 @@
|
||||
<data name="ID" xml:space="preserve">
|
||||
<value>ID </value>
|
||||
</data>
|
||||
<data name="Focus" xml:space="preserve">
|
||||
<value>messa a fuoco</value>
|
||||
</data>
|
||||
<data name="Grab" xml:space="preserve">
|
||||
<value>afferrare</value>
|
||||
</data>
|
||||
<data name="Live" xml:space="preserve">
|
||||
<value>dal vivo</value>
|
||||
</data>
|
||||
<data name="Camera" xml:space="preserve">
|
||||
<value>Fotocamera</value>
|
||||
</data>
|
||||
<data name="Closing_the_tank" xml:space="preserve">
|
||||
<value>chiusura del serbatoio</value>
|
||||
</data>
|
||||
@ -1212,15 +1191,15 @@
|
||||
<data name="Compound_meter_0" xml:space="preserve">
|
||||
<value>misuratore composto {0}</value>
|
||||
</data>
|
||||
<data name="Error_" xml:space="preserve">
|
||||
<value>Errore:</value>
|
||||
</data>
|
||||
<data name="Estimated_time_s_" xml:space="preserve">
|
||||
<value>tempo stimato [s]:</value>
|
||||
</data>
|
||||
<data name="Mass_diff_kg_" xml:space="preserve">
|
||||
<value>mass diff [kg]:</value>
|
||||
</data>
|
||||
<data name="Mass" xml:space="preserve">
|
||||
<value>massa</value>
|
||||
</data>
|
||||
<data name="Meter" xml:space="preserve">
|
||||
<value>metri</value>
|
||||
</data>
|
||||
@ -1260,9 +1239,6 @@
|
||||
<data name="Target_ref_pulses_" xml:space="preserve">
|
||||
<value>Target ref. count:</value>
|
||||
</data>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>target volume [l]:</value>
|
||||
</data>
|
||||
<data name="Save_column_widths" xml:space="preserve">
|
||||
<value>salva larghezza colonne</value>
|
||||
</data>
|
||||
@ -1314,6 +1290,9 @@
|
||||
<data name="Print_watermeter_results" xml:space="preserve">
|
||||
<value>stampare i risultati dei contatori</value>
|
||||
</data>
|
||||
<data name="Save_again" xml:space="preserve">
|
||||
<value>inviato</value>
|
||||
</data>
|
||||
<data name="Sent" xml:space="preserve">
|
||||
<value>inviato</value>
|
||||
</data>
|
||||
@ -1398,9 +1377,6 @@
|
||||
<data name="Last_changed_by" xml:space="preserve">
|
||||
<value>ultimo cambiato da </value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>tipi di contatori testati</value>
|
||||
</data>
|
||||
<data name="Notes" xml:space="preserve">
|
||||
<value>note</value>
|
||||
</data>
|
||||
@ -1572,9 +1548,6 @@
|
||||
<data name="User_code" xml:space="preserve">
|
||||
<value>codice utente</value>
|
||||
</data>
|
||||
<data name="Save_again" xml:space="preserve">
|
||||
<value>inviato</value>
|
||||
</data>
|
||||
<data name="Failed_to_initialize_device_0_1_2" xml:space="preserve">
|
||||
<value>Errore dispositivo '{0}':{1}{2}</value>
|
||||
</data>
|
||||
@ -1686,8 +1659,8 @@
|
||||
<data name="Protected_procedure" xml:space="preserve">
|
||||
<value>Procedura protetta</value>
|
||||
</data>
|
||||
<data name="Drain" xml:space="preserve">
|
||||
<value>Drenare</value>
|
||||
<data name="Empty" xml:space="preserve">
|
||||
<value>Svuotare</value>
|
||||
</data>
|
||||
<data name="Session" xml:space="preserve">
|
||||
<value>Sessione</value>
|
||||
@ -1740,14 +1713,17 @@
|
||||
<data name="Correction" xml:space="preserve">
|
||||
<value>correzione</value>
|
||||
</data>
|
||||
<data name="Camera" xml:space="preserve">
|
||||
<value>Fotocamera</value>
|
||||
<data name="Start_the_test_bench" xml:space="preserve">
|
||||
<value>Avvio del banco prova</value>
|
||||
</data>
|
||||
<data name="Finish_the_session_please" xml:space="preserve">
|
||||
<value>Finire la misurazione perfavore</value>
|
||||
</data>
|
||||
<data name="Start_the_test_bench" xml:space="preserve">
|
||||
<value>Avvio del banco prova</value>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>flusso</value>
|
||||
</data>
|
||||
<data name="Pressure" xml:space="preserve">
|
||||
<value>pressione</value>
|
||||
</data>
|
||||
<data name="Flow_adjustment_failed" xml:space="preserve">
|
||||
<value>Errore impostazione del flusso</value>
|
||||
@ -1761,12 +1737,6 @@
|
||||
<data name="Abort_session" xml:space="preserve">
|
||||
<value>Interrompere</value>
|
||||
</data>
|
||||
<data name="Empty" xml:space="preserve">
|
||||
<value>Svuotare</value>
|
||||
</data>
|
||||
<data name="Empty_the_tank" xml:space="preserve">
|
||||
<value>Svuotare il serbatoio</value>
|
||||
</data>
|
||||
<data name="End_session" xml:space="preserve">
|
||||
<value>Finire il ciclo</value>
|
||||
</data>
|
||||
@ -1779,16 +1749,55 @@
|
||||
<data name="Start_cycle" xml:space="preserve">
|
||||
<value>Avviare il ciclo</value>
|
||||
</data>
|
||||
<data name="Empty_the_tank" xml:space="preserve">
|
||||
<value>Svuotare il serbatoio</value>
|
||||
</data>
|
||||
<data name="Current" xml:space="preserve">
|
||||
<value>Corrente</value>
|
||||
</data>
|
||||
<data name="Voltage" xml:space="preserve">
|
||||
<value>Voltaggio</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Numero del progetto</value>
|
||||
</data>
|
||||
<data name="ShowDialog" xml:space="preserve">
|
||||
<value>Mostra dialogo</value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>tipi di contatori testati</value>
|
||||
</data>
|
||||
<data name="Q_from_lph" xml:space="preserve">
|
||||
<value>Qda [l/h]</value>
|
||||
</data>
|
||||
<data name="Q_to_lph" xml:space="preserve">
|
||||
<value>Q a [l/h]</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>target Q [m3/h]</value>
|
||||
</data>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>target volume [l]:</value>
|
||||
</data>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>test time [s]</value>
|
||||
</data>
|
||||
<data name="AtTemperature_C" xml:space="preserve">
|
||||
<value>@temperatura [°C]</value>
|
||||
</data>
|
||||
<data name="Focus" xml:space="preserve">
|
||||
<value>messa a fuoco</value>
|
||||
</data>
|
||||
<data name="Error_" xml:space="preserve">
|
||||
<value>Errore:</value>
|
||||
</data>
|
||||
<data name="Drain" xml:space="preserve">
|
||||
<value>Drenare</value>
|
||||
</data>
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@ -198,10 +198,10 @@
|
||||
<data name="Reg_valve" xml:space="preserve">
|
||||
<value>Reg. valve</value>
|
||||
</data>
|
||||
<data name="RegulMinStep" xml:space="preserve">
|
||||
<data name="RegulMinStep" xml:space="preserve">
|
||||
<value>Reg. min step</value>
|
||||
</data>
|
||||
<data name="Application_Diagnostic" xml:space="preserve">
|
||||
<data name="Application_Diagnostic" xml:space="preserve">
|
||||
<value>Application diagnostic</value>
|
||||
</data>
|
||||
<data name="Balance" xml:space="preserve">
|
||||
@ -2449,7 +2449,7 @@
|
||||
<data name="Upgrade_DB" xml:space="preserve">
|
||||
<value>Upgrade database</value>
|
||||
</data>
|
||||
<data name="AppDiagnostic" xml:space="preserve">
|
||||
<data name="AppDiagnostic" xml:space="preserve">
|
||||
<value>Application diagnostic</value>
|
||||
</data>
|
||||
<data name="About" xml:space="preserve">
|
||||
@ -2473,5 +2473,13 @@
|
||||
<data name="SaveCommunication" xml:space="preserve">
|
||||
<value>Save Communication</value>
|
||||
</data>
|
||||
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value>Pulses per unit</value>
|
||||
</data>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value>Pulses per kilogram</value>
|
||||
</data>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value>Units</value>
|
||||
</data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@ -117,9 +117,6 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Активность</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>Подтверждение</value>
|
||||
</data>
|
||||
@ -183,6 +180,12 @@
|
||||
<data name="P_out" xml:space="preserve">
|
||||
<value>P вниз</value>
|
||||
</data>
|
||||
<data name="Q_from" xml:space="preserve">
|
||||
<value>Q от</value>
|
||||
</data>
|
||||
<data name="Q_to" xml:space="preserve">
|
||||
<value>Q до</value>
|
||||
</data>
|
||||
<data name="Reference" xml:space="preserve">
|
||||
<value>Ссылка</value>
|
||||
</data>
|
||||
@ -240,9 +243,6 @@
|
||||
<data name="Nr" xml:space="preserve">
|
||||
<value>№</value>
|
||||
</data>
|
||||
<data name="Mass" xml:space="preserve">
|
||||
<value>Масса</value>
|
||||
</data>
|
||||
<data name="AddBtnText" xml:space="preserve">
|
||||
<value>Добавить</value>
|
||||
</data>
|
||||
@ -264,12 +264,6 @@
|
||||
<data name="OkBtnText" xml:space="preserve">
|
||||
<value>OK</value>
|
||||
</data>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>Расход</value>
|
||||
</data>
|
||||
<data name="Pressure" xml:space="preserve">
|
||||
<value>Давление</value>
|
||||
</data>
|
||||
<data name="Username" xml:space="preserve">
|
||||
<value>Имя пользователя</value>
|
||||
</data>
|
||||
@ -384,12 +378,6 @@
|
||||
<data name="Output_chdr" xml:space="preserve">
|
||||
<value>Выход</value>
|
||||
</data>
|
||||
<data name="Q_from_lph" xml:space="preserve">
|
||||
<value>Q от [л/ч]</value>
|
||||
</data>
|
||||
<data name="Q_to_lph" xml:space="preserve">
|
||||
<value>Q до [л/ч]</value>
|
||||
</data>
|
||||
<data name="Red_type_chdr" xml:space="preserve">
|
||||
<value>Тип сокращ.</value>
|
||||
</data>
|
||||
@ -399,9 +387,6 @@
|
||||
<data name="Tol_red_pct_chdr" xml:space="preserve">
|
||||
<value>Toler. red. [%]</value>
|
||||
</data>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>Время теста [с]</value>
|
||||
</data>
|
||||
<data name="Error_while_creating_DB_Reason" xml:space="preserve">
|
||||
<value>Ошибка при создании базы данных. Причина:</value>
|
||||
</data>
|
||||
@ -525,9 +510,6 @@
|
||||
<data name="RelativeQto" xml:space="preserve">
|
||||
<value>Относительный Q до</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>Заданный Q [м3/ч]</value>
|
||||
</data>
|
||||
<data name="Compound_meters" xml:space="preserve">
|
||||
<value>Комбинированные счетчики</value>
|
||||
</data>
|
||||
@ -618,6 +600,9 @@
|
||||
<data name="Switching_flow_detection" xml:space="preserve">
|
||||
<value>Переключение потока</value>
|
||||
</data>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Активность</value>
|
||||
</data>
|
||||
<data name="Progress" xml:space="preserve">
|
||||
<value>Прогресс</value>
|
||||
</data>
|
||||
@ -888,7 +873,7 @@
|
||||
<data name="Qrise" xml:space="preserve">
|
||||
<value>Qпониж</value>
|
||||
</data>
|
||||
<data name="Serial_Number" xml:space="preserve">
|
||||
<data name="Serial_number" xml:space="preserve">
|
||||
<value>Серийный номер</value>
|
||||
</data>
|
||||
<data name="State" xml:space="preserve">
|
||||
@ -939,6 +924,9 @@
|
||||
<data name="Purchase_order" xml:space="preserve">
|
||||
<value>Заказ</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Номер проекта</value>
|
||||
</data>
|
||||
<data name="Ambient_humidity" xml:space="preserve">
|
||||
<value>Относительная влажность окружающей среды</value>
|
||||
</data>
|
||||
@ -966,9 +954,6 @@
|
||||
<data name="Start" xml:space="preserve">
|
||||
<value>Старт</value>
|
||||
</data>
|
||||
<data name="AtTemperature_C" xml:space="preserve">
|
||||
<value>температура [°C]</value>
|
||||
</data>
|
||||
<data name="Density" xml:space="preserve">
|
||||
<value>Плотность</value>
|
||||
</data>
|
||||
@ -996,12 +981,6 @@
|
||||
<data name="Qt" xml:space="preserve">
|
||||
<value>Qt</value>
|
||||
</data>
|
||||
<data name="cold" xml:space="preserve">
|
||||
<value>холодный</value>
|
||||
</data>
|
||||
<data name="hot" xml:space="preserve">
|
||||
<value>горячий</value>
|
||||
</data>
|
||||
<data name="Water" xml:space="preserve">
|
||||
<value>Вода</value>
|
||||
</data>
|
||||
@ -1110,9 +1089,6 @@
|
||||
<data name="ID" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="Focus" xml:space="preserve">
|
||||
<value>Сфокусировать</value>
|
||||
</data>
|
||||
<data name="Grab" xml:space="preserve">
|
||||
<value>Захватить</value>
|
||||
</data>
|
||||
@ -1203,6 +1179,9 @@
|
||||
<data name="Mass_diff_kg_" xml:space="preserve">
|
||||
<value>Mass diff. [kg]:</value>
|
||||
</data>
|
||||
<data name="Mass" xml:space="preserve">
|
||||
<value>Масса</value>
|
||||
</data>
|
||||
<data name="Meter" xml:space="preserve">
|
||||
<value>Счетчик</value>
|
||||
</data>
|
||||
@ -1242,9 +1221,6 @@
|
||||
<data name="Target_ref_pulses_" xml:space="preserve">
|
||||
<value>Target ref. count:</value>
|
||||
</data>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>Заданный объем [л]:</value>
|
||||
</data>
|
||||
<data name="Save_column_widths" xml:space="preserve">
|
||||
<value>Сохранить ширину столбцов</value>
|
||||
</data>
|
||||
@ -1296,9 +1272,6 @@
|
||||
<data name="Print_watermeter_results" xml:space="preserve">
|
||||
<value>Печатать результатов водосчетчиков</value>
|
||||
</data>
|
||||
<data name="Again" xml:space="preserve">
|
||||
<value>Снова</value>
|
||||
</data>
|
||||
<data name="Sent" xml:space="preserve">
|
||||
<value>Отправлено</value>
|
||||
</data>
|
||||
@ -1383,9 +1356,6 @@
|
||||
<data name="Last_changed_by" xml:space="preserve">
|
||||
<value>Изменено</value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>Типы испытываемых счетчиков</value>
|
||||
</data>
|
||||
<data name="Notes" xml:space="preserve">
|
||||
<value>Заметки</value>
|
||||
</data>
|
||||
@ -1557,6 +1527,57 @@
|
||||
<data name="User_code" xml:space="preserve">
|
||||
<value>Код пользователя</value>
|
||||
</data>
|
||||
<data name="Resetting_scales" xml:space="preserve">
|
||||
<value>Сброс весов</value>
|
||||
</data>
|
||||
<data name="Correction" xml:space="preserve">
|
||||
<value>Коррекция</value>
|
||||
</data>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>Расход</value>
|
||||
</data>
|
||||
<data name="Pressure" xml:space="preserve">
|
||||
<value>Давление</value>
|
||||
</data>
|
||||
<data name="Result" xml:space="preserve">
|
||||
<value>Результат</value>
|
||||
</data>
|
||||
<data name="Evaporation" xml:space="preserve">
|
||||
<value>испарение</value>
|
||||
</data>
|
||||
<data name="String1" xml:space="preserve">
|
||||
<value>Строка 1</value>
|
||||
</data>
|
||||
<data name="Current" xml:space="preserve">
|
||||
<value>Current</value>
|
||||
</data>
|
||||
<data name="Voltage" xml:space="preserve">
|
||||
<value>Voltage</value>
|
||||
</data>
|
||||
<data name="cold" xml:space="preserve">
|
||||
<value>холодный</value>
|
||||
</data>
|
||||
<data name="hot" xml:space="preserve">
|
||||
<value>горячий</value>
|
||||
</data>
|
||||
<data name="Test_method2" xml:space="preserve">
|
||||
<value>Метод испытаний 2</value>
|
||||
</data>
|
||||
<data name="Meter_types_tested" xml:space="preserve">
|
||||
<value>Типы испытываемых счетчиков</value>
|
||||
</data>
|
||||
<data name="Short_dercription" xml:space="preserve">
|
||||
<value>Краткое описание</value>
|
||||
</data>
|
||||
<data name="Q_from_lph" xml:space="preserve">
|
||||
<value>Q от [л/ч]</value>
|
||||
</data>
|
||||
<data name="Q_to_lph" xml:space="preserve">
|
||||
<value>Q до [л/ч]</value>
|
||||
</data>
|
||||
<data name="TargetQ" xml:space="preserve">
|
||||
<value>Заданный Q [м3/ч]</value>
|
||||
</data>
|
||||
<data name="P_in_end" xml:space="preserve">
|
||||
<value>P вверх конец</value>
|
||||
</data>
|
||||
@ -1569,43 +1590,31 @@
|
||||
<data name="P_out_start" xml:space="preserve">
|
||||
<value>P вниз начало</value>
|
||||
</data>
|
||||
<data name="Q_from" xml:space="preserve">
|
||||
<value>Q от</value>
|
||||
<data name="Target_volume_l_" xml:space="preserve">
|
||||
<value>Заданный объем [л]:</value>
|
||||
</data>
|
||||
<data name="Q_to" xml:space="preserve">
|
||||
<value>Q до</value>
|
||||
<data name="Test_time_s_chdr" xml:space="preserve">
|
||||
<value>Время теста [с]</value>
|
||||
</data>
|
||||
<data name="AtTemperature_C" xml:space="preserve">
|
||||
<value>температура [°C]</value>
|
||||
</data>
|
||||
<data name="Focus" xml:space="preserve">
|
||||
<value>Сфокусировать</value>
|
||||
</data>
|
||||
<data name="ROI_Detection_in_ProgressROI_Detection_in_Progress" xml:space="preserve">
|
||||
<value>Продолжается распознавание</value>
|
||||
</data>
|
||||
<data name="String1" xml:space="preserve">
|
||||
<value>Строка 1</value>
|
||||
<data name="Again" xml:space="preserve">
|
||||
<value>Снова</value>
|
||||
</data>
|
||||
<data name="Test_method2" xml:space="preserve">
|
||||
<value>Метод испытаний 2</value>
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Short_dercription" xml:space="preserve">
|
||||
<value>Краткое описание</value>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Correction" xml:space="preserve">
|
||||
<value>Коррекция</value>
|
||||
</data>
|
||||
<data name="Resetting_scales" xml:space="preserve">
|
||||
<value>Сброс весов</value>
|
||||
</data>
|
||||
<data name="Result" xml:space="preserve">
|
||||
<value>Результат</value>
|
||||
</data>
|
||||
<data name="Evaporation" xml:space="preserve">
|
||||
<value>испарение</value>
|
||||
</data>
|
||||
<data name="Current" xml:space="preserve">
|
||||
<value>Current</value>
|
||||
</data>
|
||||
<data name="Voltage" xml:space="preserve">
|
||||
<value>Voltage</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Номер проекта</value>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
</root>
|
||||
@ -117,33 +117,51 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Činnosť</value>
|
||||
<data name="Error" xml:space="preserve">
|
||||
<value>Chyba</value>
|
||||
</data>
|
||||
<data name="Sensor" xml:space="preserve">
|
||||
<value>Senzor</value>
|
||||
</data>
|
||||
<data name="CancelBtnText" xml:space="preserve">
|
||||
<value>Zrušiť</value>
|
||||
</data>
|
||||
<data name="Compound" xml:space="preserve">
|
||||
<value>Združený</value>
|
||||
<data name="OkBtnText" xml:space="preserve">
|
||||
<value>Áno</value>
|
||||
</data>
|
||||
<data name="Exit" xml:space="preserve">
|
||||
<value>Ukončiť</value>
|
||||
</data>
|
||||
<data name="Compound_meters" xml:space="preserve">
|
||||
<value>Združené vodomery</value>
|
||||
</data>
|
||||
<data name="Error" xml:space="preserve">
|
||||
<value>Chyba</value>
|
||||
<data name="Activity" xml:space="preserve">
|
||||
<value>Činnosť</value>
|
||||
</data>
|
||||
<data name="Compound" xml:space="preserve">
|
||||
<value>Združený</value>
|
||||
</data>
|
||||
<data name="Serial_number" xml:space="preserve">
|
||||
<value>Sériové číslo</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Číslo projektu</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Jazyk</value>
|
||||
</data>
|
||||
<data name="OkBtnText" xml:space="preserve">
|
||||
<value>Áno</value>
|
||||
<data name="Paths" xml:space="preserve">
|
||||
<value>Cesty</value>
|
||||
</data>
|
||||
<data name="Head_was_disabled_by_the_user" xml:space="preserve">
|
||||
<value>Hlavica bola vypnutá používateľom</value>
|
||||
<data name="Meter" xml:space="preserve">
|
||||
<value>Merač</value>
|
||||
</data>
|
||||
<data name="RFID_communication_failed" xml:space="preserve">
|
||||
<value>Zlyhala RFID komunikácia</value>
|
||||
</data>
|
||||
<data name="Head_was_disabled_by_the_user" xml:space="preserve">
|
||||
<value>Hlavica bola vypnutá používateľom</value>
|
||||
</data>
|
||||
<data name="Level" xml:space="preserve">
|
||||
<value>Hladina</value>
|
||||
</data>
|
||||
@ -156,15 +174,9 @@
|
||||
<data name="Side" xml:space="preserve">
|
||||
<value>Strana</value>
|
||||
</data>
|
||||
<data name="Meter" xml:space="preserve">
|
||||
<value>Merač</value>
|
||||
</data>
|
||||
<data name="Result" xml:space="preserve">
|
||||
<value>Výsledok</value>
|
||||
</data>
|
||||
<data name="Sensor" xml:space="preserve">
|
||||
<value>Senzor</value>
|
||||
</data>
|
||||
<data name="Mute_alarm" xml:space="preserve">
|
||||
<value>Stlmiť sirénu</value>
|
||||
</data>
|
||||
@ -217,9 +229,6 @@
|
||||
<data name="Production_order_and_serial_numbers" xml:space="preserve">
|
||||
<value>Výrobná zákazka a sériové čísla</value>
|
||||
</data>
|
||||
<data name="Serial_number" xml:space="preserve">
|
||||
<value>Sériové číslo</value>
|
||||
</data>
|
||||
<data name="Serial_numbers" xml:space="preserve">
|
||||
<value>Sériové čísla</value>
|
||||
</data>
|
||||
@ -235,19 +244,19 @@
|
||||
<data name="Do_you_really_want_to_delete_all_codes_Q" xml:space="preserve">
|
||||
<value>Naozaj chcete vymazať všetky kódy ?</value>
|
||||
</data>
|
||||
<data name="Exit" xml:space="preserve">
|
||||
<value>Ukončiť</value>
|
||||
</data>
|
||||
<data name="Paths" xml:space="preserve">
|
||||
<value>Cesty</value>
|
||||
</data>
|
||||
<data name="Project_number" xml:space="preserve">
|
||||
<value>Číslo projektu</value>
|
||||
</data>
|
||||
<data name="ShowDialog" xml:space="preserve">
|
||||
<value>Zobraz dialóg</value>
|
||||
</data>
|
||||
<data name="SaveCommunication" xml:space="preserve">
|
||||
<value>Ulož komunikáciu</value>
|
||||
</data>
|
||||
<data name="PulsesPerUnit" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="PulsesPerKilogram" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="Units" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,17 +1,22 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.DataEntry.StandardCamera
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public string OcrWorkspace; /// Path to a Cognex workspace file
|
||||
@ -92,28 +97,42 @@ namespace TBF.Rig.DataEntry.StandardCamera
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -1,17 +1,22 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public string OcrWorkspace; /// Path to a Cognex workspace file
|
||||
@ -92,28 +97,42 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -1,17 +1,22 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2022-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.DataEntry.Uni
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public string OcrWorkspace; /// Path to a Cognex workspace file
|
||||
@ -92,28 +97,42 @@ namespace TBF.Rig.DataEntry.Uni
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ namespace TBF.Rig.Generic
|
||||
{
|
||||
public interface IProcedureParams
|
||||
{
|
||||
void UpdateFromDbEntity(ComponentProcedure dbEntity);
|
||||
bool UpdateFromDbEntity(ComponentProcedure dbEntity);
|
||||
void FromDbEntity(string componentName, Procedure procedure);
|
||||
ComponentProcedure ToDbEntity(string componentName, Procedure procedure);
|
||||
}
|
||||
|
||||
@ -9,12 +9,11 @@ namespace TBF.Rig.GenericDevices
|
||||
Common.RegisterReaderType RegisterReaderType { get; }
|
||||
|
||||
int Position { get; }
|
||||
double PulsesPerLtr { get; } /// [imp/l] ... water meter or volume measurement part of a heat meter
|
||||
double PulsesPerLtr { get; set; } /// [imp/l] ... water meter or volume measurement part of a heat meter
|
||||
double LtrsPerPulse { get; } /// [l/imp]
|
||||
|
||||
int WMPulses { get; } /// Counted pulses of the water meter
|
||||
string QuantityUnits { get; set; } /// dm3, kg, etc
|
||||
int WMPulses { get; } /// Counted pulses of the water meter
|
||||
int WMRefPulses { get; } /// 'Gated' reference pulses of the water meters
|
||||
|
||||
double WMVolume { get; } /// Counted volume of the water meter
|
||||
double BeginWMState { get; } /// Test begin state of the water meter
|
||||
double EndWMState { get; } /// Test end state of the water meter
|
||||
|
||||
@ -1,10 +1,13 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2017-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.Sequences;
|
||||
@ -13,6 +16,8 @@ namespace TBF.Rig.Modbus.TempControl.Easytherm
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
@ -127,9 +132,9 @@ namespace TBF.Rig.Modbus.TempControl.Easytherm
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
@ -138,10 +143,24 @@ namespace TBF.Rig.Modbus.TempControl.Easytherm
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,10 +1,13 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.Sequences;
|
||||
@ -12,8 +15,10 @@ using TBF.Rig.Sequences;
|
||||
namespace TBF.Rig.Modbus.TempControl.Novus
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double Temp_A; /// [°C] Target temperature for a tempe. controller or 0=not communicated to the controller
|
||||
@ -127,28 +132,42 @@ namespace TBF.Rig.Modbus.TempControl.Novus
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -1,20 +1,23 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.Network.Camera.Roi
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
@ -114,25 +117,39 @@ namespace TBF.Rig.Network.Camera.Roi
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
public ProcedureParams() { }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ProcedureParams() { }
|
||||
|
||||
public ProcedureParams(bool initialize)
|
||||
{
|
||||
|
||||
@ -39,8 +39,13 @@ namespace TBF.Rig.Network.Camera.Roi
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Camera; } }
|
||||
public double PulsesPerLtr { get { return RoiCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return RoiCfg.ProcParams.PulsesPerLtr; }
|
||||
set { RoiCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
int cameraPulses;
|
||||
int pulsesDelta; /// = (WMPulses - cameraPulses) ... WMPulses = cameraPulses + pulsesDelta, Clear() calculates pulsesDelta
|
||||
|
||||
@ -1,18 +1,23 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.Network.Camera.RoiForFixedStart
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
@ -80,25 +85,39 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStart
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
public ProcedureParams() { }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ProcedureParams() { }
|
||||
|
||||
public ProcedureParams(bool initialize)
|
||||
{
|
||||
|
||||
@ -36,11 +36,16 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStart
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Manual; } }
|
||||
public double PulsesPerLtr { get { return roiCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return roiCfg.ProcParams.PulsesPerLtr; }
|
||||
set { roiCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
|
||||
double beginWMState;
|
||||
double beginWMState;
|
||||
public double BeginWMState
|
||||
{
|
||||
get { return beginWMState; }
|
||||
|
||||
@ -1,18 +1,23 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.Network.Camera.RoiForFixedStartCJMS11
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
@ -80,25 +85,39 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStartCJMS11
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
public ProcedureParams() { }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ProcedureParams() { }
|
||||
|
||||
public ProcedureParams(bool initialize)
|
||||
{
|
||||
|
||||
@ -36,11 +36,15 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStartCJMS11
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Manual; } }
|
||||
public double PulsesPerLtr { get { return roiCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return roiCfg.ProcParams.PulsesPerLtr; }
|
||||
set { roiCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
|
||||
double beginWMState;
|
||||
double beginWMState;
|
||||
public double BeginWMState
|
||||
{
|
||||
get { return beginWMState; }
|
||||
|
||||
@ -1,18 +1,22 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.Network.Camera.RoiForFixedStartKeyence
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
@ -80,23 +84,37 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStartKeyence
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ProcedureParams() { }
|
||||
|
||||
|
||||
@ -38,11 +38,16 @@ namespace TBF.Rig.Network.Camera.RoiForFixedStartKeyence
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Manual; } }
|
||||
public double PulsesPerLtr { get { return roiCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return roiCfg.ProcParams.PulsesPerLtr; }
|
||||
set { roiCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
|
||||
double beginWMState;
|
||||
double beginWMState;
|
||||
public double BeginWMState
|
||||
{
|
||||
get { return beginWMState; }
|
||||
|
||||
@ -16,7 +16,7 @@ using TBF.Resources;
|
||||
namespace TBF.Rig.Output.DB.SensusOracle
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
@ -267,27 +267,40 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("Failed to UpdateFromDbEntity({0}): {1}", dbEntity, exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
public ProcedureParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ProcedureParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -43,8 +43,9 @@ namespace TBF.Rig
|
||||
}
|
||||
|
||||
/// <summary> To be overridden </summary>
|
||||
public virtual void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public virtual bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void FromDbEntity(string cmpntName, Procedure procedure)
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.Sequences;
|
||||
@ -22,6 +23,8 @@ namespace TBF.Rig.RegisterReaders.DataStream.Reader
|
||||
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
@ -183,9 +186,9 @@ namespace TBF.Rig.RegisterReaders.DataStream.Reader
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
@ -194,10 +197,24 @@ namespace TBF.Rig.RegisterReaders.DataStream.Reader
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -33,8 +33,13 @@ namespace TBF.Rig.RegisterReaders.DataStream.Reader
|
||||
readonly ReaderCfg myCfg;
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.DataStream; } }
|
||||
public int Position { get { return (myCfg != null) ? myCfg.Position : 1; } }
|
||||
public double PulsesPerLtr { get { return 1.0; } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return 1.0; }
|
||||
set { }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1.0; } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
public UnitsSource UnitsSource { get { return (myCfg != null && myCfg.ProcParams != null) ? myCfg.ProcParams.UnitsSource : UnitsSource.AsDefined; } }
|
||||
public Common.Unit AsDefTimeUnit { get { return (myCfg != null && myCfg.ProcParams != null) ? myCfg.ProcParams.TimeUnit : Common.Unit.s; } }
|
||||
|
||||
@ -17,8 +17,15 @@ namespace TBF.Rig.RegisterReaders.FrequencyMeterFromUniCB
|
||||
|
||||
public int Position { get{ return rrCfg.Position; } }
|
||||
public Common.RegisterReaderType RegisterReaderType { get { return Common.RegisterReaderType.Pulses; } }
|
||||
public double PulsesPerLtr { get { return rrCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); ; } }
|
||||
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return rrCfg.ProcParams.PulsesPerLtr; }
|
||||
set { rrCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
public int Filter { get { return rrCfg.ProcParams.Filter; } }
|
||||
|
||||
public int WMPulses { get { return cb.PulsesWM(Position); } }
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
@ -5,16 +8,16 @@ using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.FrequencyMeterFromUniCB
|
||||
{
|
||||
public class RRProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(RRProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
@ -94,26 +97,40 @@ namespace TBF.Rig.RegisterReaders.FrequencyMeterFromUniCB
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
public RRProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public RRProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -484,6 +484,7 @@ namespace TBF.Rig.RegisterReaders.IPerlReader.implementations
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return 1000.0; }
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
|
||||
public double LtrsPerPulse
|
||||
@ -491,6 +492,8 @@ namespace TBF.Rig.RegisterReaders.IPerlReader.implementations
|
||||
get { return 1 / PulsesPerLtr; }
|
||||
}
|
||||
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
public int WMPulses
|
||||
{
|
||||
get { return wmPulses; }
|
||||
|
||||
@ -1,20 +1,23 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2018 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.KPackE.RegisterReader
|
||||
{
|
||||
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// Target low limit of the flow increase or decrease
|
||||
@ -82,26 +85,40 @@ namespace TBF.Rig.RegisterReaders.KPackE.RegisterReader
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ProcedureParams()
|
||||
public ProcedureParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -29,8 +29,12 @@ namespace TBF.Rig.RegisterReaders.KPackE.RegisterReader
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Manual; } }
|
||||
public double PulsesPerLtr { get { return rrCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return rrCfg.ProcParams.PulsesPerLtr; }
|
||||
set { rrCfg.ProcParams.PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Writen to by DataEntryForRadio component
|
||||
|
||||
@ -1,16 +1,21 @@
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.RegisterReaders.SerialStream;
|
||||
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop
|
||||
{
|
||||
public class PoseidonProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PoseidonProcParams) })[0];
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(PoseidonProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PoseidonProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public StreamType StreamType; /// Enumerated stream type
|
||||
@ -250,9 +255,9 @@ namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
PoseidonProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as PoseidonProcParams;
|
||||
@ -261,11 +266,25 @@ namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -93,10 +93,14 @@ namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.DataStream; } }
|
||||
public double PulsesPerLtr { get { return 1000.0; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return 1000.0;}
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1 / PulsesPerLtr; } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
///
|
||||
///
|
||||
/// Wrappers for procedure parameters
|
||||
///
|
||||
public StreamType StreamType { get { return (registerReaderCfg.ProcParams != null) ?registerReaderCfg.ProcParams.StreamType : StreamType.None; } }
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.RegisterReaders.CommonRR;
|
||||
|
||||
@ -10,7 +12,8 @@ namespace TBF.Rig.RegisterReaders.PoseidonReader
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
@ -146,22 +149,36 @@ namespace TBF.Rig.RegisterReaders.PoseidonReader
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -400,8 +400,12 @@ namespace TBF.Rig.RegisterReaders.PoseidonReader
|
||||
double wmVolume;
|
||||
double wmTestTime;
|
||||
|
||||
public double PulsesPerLtr { get { return 1000.0; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return 1000.0; }
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1 / PulsesPerLtr; } }
|
||||
public string QuantityUnits { get; set; }
|
||||
public int WMPulses { get { return wmPulses; } }
|
||||
public int WMRefPulses { get { return wmRefPulses; }}
|
||||
public double WMVolume { get { return wmVolume; } }
|
||||
|
||||
@ -121,8 +121,12 @@ namespace TBF.Rig.RegisterReaders.PoseidonReader.implementations
|
||||
private double _endWmState ;
|
||||
|
||||
|
||||
public double PulsesPerLtr { get => _pulsesPerLtr; }
|
||||
public double PulsesPerLtr {
|
||||
get => _pulsesPerLtr;
|
||||
set => _pulsesPerLtr = value;
|
||||
}
|
||||
public double LtrsPerPulse { get => _ltrsPerPulse; }
|
||||
public string QuantityUnits { get; set; }
|
||||
public int WMPulses { get => _wmPulses; }
|
||||
public int WMRefPulses { get =>_wmRefPulses; }
|
||||
public double WMVolume { get =>_wmVolume; }
|
||||
|
||||
@ -21,8 +21,8 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
///
|
||||
public int Position; /// 1..nrWaterMeters
|
||||
|
||||
/// <summary> Procedure parameters </summary>
|
||||
[XmlIgnore]
|
||||
/// <summary> Procedure parameters </summary>
|
||||
[XmlIgnore]
|
||||
public RRProcParams ProcParams;
|
||||
public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; }
|
||||
public override IParamsProvider CreateProcParamsProvider() { return new RRProcParams(true); }
|
||||
|
||||
@ -63,14 +63,14 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
nameTextBox.Text = config.Name;
|
||||
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
|
||||
positionTextBox.Text = config.Position.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
{
|
||||
nameTextBox.Enabled = true;
|
||||
parentNameComboBox.Enabled = true;
|
||||
positionTextBox.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public CfgUpdateFlags VerifyCfg(ref string message)
|
||||
{
|
||||
|
||||
@ -31,92 +31,92 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.positionTextBox = new System.Windows.Forms.TextBox();
|
||||
this.positionLabel = new System.Windows.Forms.Label();
|
||||
this.parentNameLabel = new System.Windows.Forms.Label();
|
||||
this.nameTextBox = new System.Windows.Forms.TextBox();
|
||||
this.nameLabel = new System.Windows.Forms.Label();
|
||||
this.componentNameLabel = new System.Windows.Forms.Label();
|
||||
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// positionTextBox
|
||||
//
|
||||
this.positionTextBox.Enabled = false;
|
||||
this.positionTextBox.Location = new System.Drawing.Point(136, 119);
|
||||
this.positionTextBox.Name = "positionTextBox";
|
||||
this.positionTextBox.Size = new System.Drawing.Size(46, 20);
|
||||
this.positionTextBox.TabIndex = 6;
|
||||
//
|
||||
// positionLabel
|
||||
//
|
||||
this.positionLabel.AutoSize = true;
|
||||
this.positionLabel.Location = new System.Drawing.Point(26, 122);
|
||||
this.positionLabel.Name = "positionLabel";
|
||||
this.positionLabel.Size = new System.Drawing.Size(44, 13);
|
||||
this.positionLabel.TabIndex = 5;
|
||||
this.positionLabel.Text = "Position";
|
||||
//
|
||||
// parentNameLabel
|
||||
//
|
||||
this.parentNameLabel.AutoSize = true;
|
||||
this.parentNameLabel.Location = new System.Drawing.Point(26, 96);
|
||||
this.parentNameLabel.Name = "parentNameLabel";
|
||||
this.parentNameLabel.Size = new System.Drawing.Size(69, 13);
|
||||
this.parentNameLabel.TabIndex = 3;
|
||||
this.parentNameLabel.Text = "Parent Name";
|
||||
//
|
||||
// nameTextBox
|
||||
//
|
||||
this.nameTextBox.Enabled = false;
|
||||
this.nameTextBox.Location = new System.Drawing.Point(136, 67);
|
||||
this.nameTextBox.Name = "nameTextBox";
|
||||
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
|
||||
this.nameTextBox.TabIndex = 2;
|
||||
//
|
||||
// nameLabel
|
||||
//
|
||||
this.nameLabel.AutoSize = true;
|
||||
this.nameLabel.Location = new System.Drawing.Point(26, 70);
|
||||
this.nameLabel.Name = "nameLabel";
|
||||
this.nameLabel.Size = new System.Drawing.Size(35, 13);
|
||||
this.nameLabel.TabIndex = 1;
|
||||
this.nameLabel.Text = "Name";
|
||||
//
|
||||
// componentNameLabel
|
||||
//
|
||||
this.componentNameLabel.AutoSize = true;
|
||||
this.componentNameLabel.Location = new System.Drawing.Point(133, 43);
|
||||
this.componentNameLabel.Name = "componentNameLabel";
|
||||
this.componentNameLabel.Size = new System.Drawing.Size(83, 13);
|
||||
this.componentNameLabel.TabIndex = 0;
|
||||
this.componentNameLabel.Text = "ComonentName";
|
||||
//
|
||||
// parentNameComboBox
|
||||
//
|
||||
this.parentNameComboBox.Enabled = false;
|
||||
this.parentNameComboBox.FormattingEnabled = true;
|
||||
this.parentNameComboBox.Location = new System.Drawing.Point(136, 93);
|
||||
this.parentNameComboBox.Name = "parentNameComboBox";
|
||||
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
|
||||
this.parentNameComboBox.TabIndex = 4;
|
||||
//
|
||||
// RegisterReaderCfgCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.parentNameComboBox);
|
||||
this.Controls.Add(this.positionTextBox);
|
||||
this.Controls.Add(this.positionLabel);
|
||||
this.Controls.Add(this.parentNameLabel);
|
||||
this.Controls.Add(this.nameTextBox);
|
||||
this.Controls.Add(this.nameLabel);
|
||||
this.Controls.Add(this.componentNameLabel);
|
||||
this.Name = "RegisterReaderCfgCtrl";
|
||||
this.Size = new System.Drawing.Size(300, 200);
|
||||
this.positionTextBox = new System.Windows.Forms.TextBox();
|
||||
this.positionLabel = new System.Windows.Forms.Label();
|
||||
this.parentNameLabel = new System.Windows.Forms.Label();
|
||||
this.nameTextBox = new System.Windows.Forms.TextBox();
|
||||
this.nameLabel = new System.Windows.Forms.Label();
|
||||
this.componentNameLabel = new System.Windows.Forms.Label();
|
||||
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// positionTextBox
|
||||
//
|
||||
this.positionTextBox.Enabled = false;
|
||||
this.positionTextBox.Location = new System.Drawing.Point(136, 119);
|
||||
this.positionTextBox.Name = "positionTextBox";
|
||||
this.positionTextBox.Size = new System.Drawing.Size(46, 20);
|
||||
this.positionTextBox.TabIndex = 6;
|
||||
//
|
||||
// positionLabel
|
||||
//
|
||||
this.positionLabel.AutoSize = true;
|
||||
this.positionLabel.Location = new System.Drawing.Point(26, 122);
|
||||
this.positionLabel.Name = "positionLabel";
|
||||
this.positionLabel.Size = new System.Drawing.Size(44, 13);
|
||||
this.positionLabel.TabIndex = 5;
|
||||
this.positionLabel.Text = "Position";
|
||||
//
|
||||
// parentNameLabel
|
||||
//
|
||||
this.parentNameLabel.AutoSize = true;
|
||||
this.parentNameLabel.Location = new System.Drawing.Point(26, 96);
|
||||
this.parentNameLabel.Name = "parentNameLabel";
|
||||
this.parentNameLabel.Size = new System.Drawing.Size(69, 13);
|
||||
this.parentNameLabel.TabIndex = 3;
|
||||
this.parentNameLabel.Text = "Parent Name";
|
||||
//
|
||||
// nameTextBox
|
||||
//
|
||||
this.nameTextBox.Enabled = false;
|
||||
this.nameTextBox.Location = new System.Drawing.Point(136, 67);
|
||||
this.nameTextBox.Name = "nameTextBox";
|
||||
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
|
||||
this.nameTextBox.TabIndex = 2;
|
||||
//
|
||||
// nameLabel
|
||||
//
|
||||
this.nameLabel.AutoSize = true;
|
||||
this.nameLabel.Location = new System.Drawing.Point(26, 70);
|
||||
this.nameLabel.Name = "nameLabel";
|
||||
this.nameLabel.Size = new System.Drawing.Size(35, 13);
|
||||
this.nameLabel.TabIndex = 1;
|
||||
this.nameLabel.Text = "Name";
|
||||
//
|
||||
// componentNameLabel
|
||||
//
|
||||
this.componentNameLabel.AutoSize = true;
|
||||
this.componentNameLabel.Location = new System.Drawing.Point(133, 43);
|
||||
this.componentNameLabel.Name = "componentNameLabel";
|
||||
this.componentNameLabel.Size = new System.Drawing.Size(83, 13);
|
||||
this.componentNameLabel.TabIndex = 0;
|
||||
this.componentNameLabel.Text = "ComonentName";
|
||||
//
|
||||
// parentNameComboBox
|
||||
//
|
||||
this.parentNameComboBox.Enabled = false;
|
||||
this.parentNameComboBox.FormattingEnabled = true;
|
||||
this.parentNameComboBox.Location = new System.Drawing.Point(136, 93);
|
||||
this.parentNameComboBox.Name = "parentNameComboBox";
|
||||
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
|
||||
this.parentNameComboBox.TabIndex = 4;
|
||||
//
|
||||
// RRCfgCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.parentNameComboBox);
|
||||
this.Controls.Add(this.positionTextBox);
|
||||
this.Controls.Add(this.positionLabel);
|
||||
this.Controls.Add(this.parentNameLabel);
|
||||
this.Controls.Add(this.nameTextBox);
|
||||
this.Controls.Add(this.nameLabel);
|
||||
this.Controls.Add(this.componentNameLabel);
|
||||
this.Name = "RRCfgCtrl";
|
||||
this.Size = new System.Drawing.Size(300, 200);
|
||||
this.Load += new System.EventHandler(this.RegisterReaderCfgCtrl_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@ -129,5 +129,5 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
private System.Windows.Forms.Label nameLabel;
|
||||
private System.Windows.Forms.Label componentNameLabel;
|
||||
private System.Windows.Forms.ComboBox parentNameComboBox;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,45 +1,86 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using SharedComponents;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
{
|
||||
public class RRProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(RRProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// [l^-1]
|
||||
public string Units; /// [kg^-1]...MF
|
||||
public int Filter;
|
||||
|
||||
public override void InitializeAll()
|
||||
{
|
||||
PulsesPerLtr = 1.0;
|
||||
Units = "---"; //...MF
|
||||
Filter = 0;
|
||||
}
|
||||
|
||||
string[] paramNames = new string[]
|
||||
{
|
||||
Strings.PulsesPerLtr,
|
||||
//Strings.PulsesPerLtr,
|
||||
Strings.PulsesPerUnit,
|
||||
Strings.Units,
|
||||
Strings.Filter,
|
||||
};
|
||||
public override string ParamName(int i) { return paramNames[i]; }
|
||||
|
||||
//...MF
|
||||
private void RefreshParamNames(int i) {
|
||||
if (i == 0)
|
||||
{
|
||||
if (Units == "kg") paramNames[0] = Strings.PulsesPerKilogram;
|
||||
else if (Units == "dm3") paramNames[0] = Strings.PulsesPerLtr;
|
||||
else paramNames[0] = Strings.PulsesPerLtr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override string ParamName(int i)
|
||||
{
|
||||
//if(i==0) RefreshParamNames(0);//...MF
|
||||
return paramNames[i];
|
||||
}
|
||||
public override int ParamsCount() { return paramNames.Length; }
|
||||
|
||||
public override string ToString(int i)
|
||||
public ICollection<string> ParamValues(int ix)
|
||||
{
|
||||
var values = new List<string>();
|
||||
switch (ix)
|
||||
{
|
||||
case 1:
|
||||
for (PulsesTypeByQuantity m = 0; m < PulsesTypeByQuantity.Count; m++) values.Add(m.ToDescription());
|
||||
return values;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString(int i)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0: return PulsesPerLtr.ToString();
|
||||
case 1: return Filter.ToString();
|
||||
case 1: return Units;
|
||||
case 2: return Filter.ToString();
|
||||
default: return string.Empty;
|
||||
}
|
||||
}
|
||||
@ -50,7 +91,8 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
switch (i)
|
||||
{
|
||||
case 0: PulsesPerLtr = Utils.ParseUDouble(strValue); return CfgUpdateFlags.None;
|
||||
case 1: Filter = int.Parse(strValue); return CfgUpdateFlags.None;
|
||||
case 1: Units = strValue; return CfgUpdateFlags.None;
|
||||
case 2: Filter = int.Parse(strValue); return CfgUpdateFlags.None;
|
||||
default: return CfgUpdateFlags.None;
|
||||
}
|
||||
}
|
||||
@ -67,8 +109,9 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
case 0:
|
||||
if (Utils.TryParseUDouble(strValue, out dummy)) return true;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
if (int.TryParse(strValue, out idummy) && (idummy >= 0)) return true;
|
||||
break;
|
||||
|
||||
@ -84,6 +127,7 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
void CopyContentTo(RRProcParams prms)
|
||||
{
|
||||
prms.PulsesPerLtr = this.PulsesPerLtr;
|
||||
prms.Units = this.Units; //...MF
|
||||
prms.Filter = this.Filter;
|
||||
}
|
||||
|
||||
@ -94,9 +138,9 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcParams;
|
||||
@ -105,13 +149,34 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
LiveLogDiag.Log1(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public RRProcParams()
|
||||
{
|
||||
@ -129,4 +194,17 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
this.procedure = procedure;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Diagnostic logging MF
|
||||
/// Activated by compilation condition: DIAG_ENDURANCE_xyz
|
||||
/// </summary>
|
||||
static class LiveLogDiag
|
||||
{
|
||||
[Conditional("DIAG_LOG_MASS1")]
|
||||
public static void Log1(string format, params object[] args)
|
||||
{
|
||||
LiveLogCache.Instance.AddLog(string.Format(format, args));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,41 +7,46 @@ using log4net;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.PulsesFromUniCB
|
||||
{
|
||||
public class RegisterReader : ComponentBase, GenericDevices.IRegReader
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(RegisterReader));
|
||||
public class RegisterReader : ComponentBase, GenericDevices.IRegReader
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(RegisterReader));
|
||||
public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); }
|
||||
|
||||
readonly RRCfg rrCfg;
|
||||
readonly TBF.Rig.ControlBoard.IControlBoard cb;
|
||||
|
||||
public int Position { get { return rrCfg.Position; } } /// 1 .. ProcessData.WMsCount
|
||||
public int Position { get { return rrCfg.Position; } } /// 1 .. ProcessData.WMsCount
|
||||
|
||||
public Common.RegisterReaderType RegisterReaderType { get { return Common.RegisterReaderType.Pulses; } }
|
||||
public double PulsesPerLtr { get { return rrCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); ; } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get => rrCfg.ProcParams.PulsesPerLtr;
|
||||
set => rrCfg.ProcParams.PulsesPerLtr = value;
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); ; } }
|
||||
public string QuantityUnits { get { return rrCfg.ProcParams.Units; } set { rrCfg.ProcParams.Units = value; } }
|
||||
public int Filter { get { return rrCfg.ProcParams.Filter; } }
|
||||
|
||||
public int WMPulses { get { return cb.PulsesWM(Position); } }
|
||||
public int WMRefPulses { get { return cb.RefPulsesWM(Position); } }
|
||||
public double WMVolume { get { return LtrsPerPulse * Convert.ToDouble(WMPulses); } }
|
||||
|
||||
public double BeginWMState { get { return 0; } } /// Always 0
|
||||
public double EndWMState { get { return WMVolume; } } /// Derived from WMVolume
|
||||
public double BeginWMState { get { return 0; } } /// Always 0
|
||||
public double EndWMState { get { return WMVolume; } } /// Derived from WMVolume
|
||||
|
||||
|
||||
public RegisterReader() { }
|
||||
public RegisterReader() { }
|
||||
|
||||
public RegisterReader(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
|
||||
: base(cfg)
|
||||
{
|
||||
rrCfg = cfg as RRCfg;
|
||||
public RegisterReader(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
|
||||
: base(cfg)
|
||||
{
|
||||
rrCfg = cfg as RRCfg;
|
||||
|
||||
cb = TbfComponents.FindComponent(cfg.ParentName, components) as TBF.Rig.ControlBoard.IControlBoard;
|
||||
if (cb == null) throw new Exception("Cannot find " + Name + " parent");
|
||||
cb = TbfComponents.FindComponent(cfg.ParentName, components) as TBF.Rig.ControlBoard.IControlBoard;
|
||||
if (cb == null) throw new Exception("Cannot find " + Name + " parent");
|
||||
|
||||
log.Warn(this.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public override void Initialize() { }
|
||||
}
|
||||
|
||||
@ -25,8 +25,12 @@ namespace TBF.Rig.RegisterReaders.S640Stream
|
||||
|
||||
public int Position { get { return myCfg.Position; } }
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.DataStream; } }
|
||||
public double PulsesPerLtr { get { return 1000.0; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return 1000.0; }
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1 / PulsesPerLtr; } }
|
||||
public string QuantityUnits { get; set; }
|
||||
public Unit VolumeUnits { get { return Unit.ml; } }
|
||||
public double VolumeScaleFactor { get { return 1; } }
|
||||
public Unit TimeUnits { get { return Unit.ms; } }
|
||||
|
||||
@ -1,18 +1,21 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2018 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.SerialStream
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
|
||||
@ -252,26 +255,40 @@ namespace TBF.Rig.RegisterReaders.SerialStream
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ProcParams()
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -34,9 +34,12 @@ namespace TBF.Rig.RegisterReaders.SerialStream
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.DataStream; } }
|
||||
public double PulsesPerLtr { get { return 1000.0; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return 1000.0; }
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1 / PulsesPerLtr; } }
|
||||
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
///
|
||||
/// Wrappers for procedure parameters
|
||||
|
||||
@ -1,42 +1,79 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using SharedComponents;
|
||||
|
||||
///
|
||||
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
{
|
||||
public class RRProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(RRProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public double PulsesPerLtr; /// Target low limit of the flow increase or decrease
|
||||
public string Units; /// [kg^-1]...MF
|
||||
|
||||
public override void InitializeAll()
|
||||
public override void InitializeAll()
|
||||
{
|
||||
PulsesPerLtr = 1.0;
|
||||
}
|
||||
Units = "---"; //...MF
|
||||
}
|
||||
|
||||
string[] paramNames = new string[]
|
||||
{
|
||||
Strings.PulsesPerLtr,
|
||||
//Strings.PulsesPerLtr,
|
||||
Strings.PulsesPerUnit,//...MF
|
||||
Strings.Units,//...MF
|
||||
};
|
||||
public override string ParamName(int i) { return paramNames[i]; }
|
||||
|
||||
//...MF
|
||||
private void RefreshParamNames(int i)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
if (Units == "kg") paramNames[0] = Strings.PulsesPerKilogram;
|
||||
else if (Units == "dm3") paramNames[0] = Strings.PulsesPerLtr;
|
||||
else paramNames[0] = Strings.PulsesPerLtr;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ParamName(int i) { return paramNames[i]; }
|
||||
public override int ParamsCount() { return paramNames.Length; }
|
||||
|
||||
public override string ToString(int i)
|
||||
public ICollection<string> ParamValues(int ix)
|
||||
{
|
||||
var values = new List<string>();
|
||||
switch (ix)
|
||||
{
|
||||
case 1:
|
||||
for (PulsesTypeByQuantity m = 0; m < PulsesTypeByQuantity.Count; m++) values.Add(m.ToDescription());
|
||||
return values;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString(int i)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0: return PulsesPerLtr.ToString();
|
||||
default: return string.Empty;
|
||||
case 1: return Units;//...MF
|
||||
default: return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,6 +83,7 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
switch (i)
|
||||
{
|
||||
case 0: PulsesPerLtr = Utils.ParseUDouble(strValue); return CfgUpdateFlags.None;
|
||||
case 1: Units = strValue; return CfgUpdateFlags.None;
|
||||
default: return CfgUpdateFlags.None;
|
||||
}
|
||||
}
|
||||
@ -61,7 +99,9 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
case 0:
|
||||
if (Utils.TryParseUDouble(strValue, out dummy)) return true;
|
||||
break;
|
||||
default:
|
||||
case 1:
|
||||
return true;
|
||||
default:
|
||||
message = "Invalid index";
|
||||
return false;
|
||||
}
|
||||
@ -73,7 +113,8 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
void CopyContentTo(RRProcParams prms)
|
||||
{
|
||||
prms.PulsesPerLtr = this.PulsesPerLtr;
|
||||
}
|
||||
prms.Units = this.Units; //...MF
|
||||
}
|
||||
|
||||
public IParamsProvider Clone()
|
||||
{
|
||||
@ -82,9 +123,9 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcParams;
|
||||
@ -93,12 +134,26 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public RRProcParams()
|
||||
@ -116,4 +171,17 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
this.componentName = componentName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Diagnostic logging MF
|
||||
/// Activated by compilation condition: DIAG_ENDURANCE_xyz
|
||||
/// </summary>
|
||||
static class LiveLogDiag
|
||||
{
|
||||
[Conditional("DIAG_LOG_MASS1")]
|
||||
public static void Log1(string format, params object[] args)
|
||||
{
|
||||
LiveLogCache.Instance.AddLog(string.Format(format, args));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,11 +28,16 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.Manual; } }
|
||||
public double PulsesPerLtr { get { return registerReaderCfg.ProcParams.PulsesPerLtr; } }
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return registerReaderCfg.ProcParams.PulsesPerLtr; }
|
||||
set { }
|
||||
}
|
||||
public double LtrsPerPulse { get { return (PulsesPerLtr <= float.Epsilon) ? 1.0 : (1 / PulsesPerLtr); } }
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
|
||||
double beginWMState;
|
||||
double beginWMState;
|
||||
public double BeginWMState
|
||||
{
|
||||
get { return beginWMState; }
|
||||
|
||||
@ -484,12 +484,15 @@ namespace TBF.Rig.RegisterReaders.iPerlASICReader.implementations
|
||||
public double PulsesPerLtr
|
||||
{
|
||||
get { return 1000.0; }
|
||||
set { PulsesPerLtr = value; }
|
||||
}
|
||||
|
||||
public double LtrsPerPulse
|
||||
{
|
||||
get { return 1 / PulsesPerLtr; }
|
||||
}
|
||||
|
||||
public string QuantityUnits { get; set; }
|
||||
|
||||
public int WMPulses
|
||||
{
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Rig.RegisterReaders.CommonRR;
|
||||
|
||||
@ -10,7 +12,8 @@ namespace TBF.Rig.RegisterReaders.iPerlReaderUNI
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
@ -146,22 +149,36 @@ namespace TBF.Rig.RegisterReaders.iPerlReaderUNI
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,20 +1,23 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig;
|
||||
using System.Xml.Serialization;
|
||||
using TBF.Boxes;
|
||||
using TBF.Resources;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Rig;
|
||||
using TBF.Rig.GenericDevices;
|
||||
using TBF.Rig.RegisterReaders.PoseidonReader;
|
||||
using TBF.Rig.RegisterReaders.PoseidonReader.implementations;
|
||||
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Rig.RegisterReaders.PulsesFromUniCB;
|
||||
|
||||
namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
{
|
||||
@ -708,7 +711,21 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
tstRslt.Flow = 3.6 * tstRslt.VolumeCTV / tstRslt.TestTime; /// Flow from VolumeCTV and time
|
||||
tstRslt.ErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.VolumeCTV);
|
||||
tstRslt.ConstMaster = (tstRslt.PulsesMaster != 0) ? (tstRslt.VolumeCTV / tstRslt.PulsesMaster) : tstRslt.ConstMasterCorr;
|
||||
/// Master pulses per liter from the measured mass
|
||||
/// Master pulses per liter from the measured mass
|
||||
|
||||
/// Main result calculation for mass
|
||||
tstRslt.MassCTV = tstRslt.Batch.Buoyancy * mass;
|
||||
if ((outPath.Diverter != null) && (tstRslt.TestTime > float.Epsilon))
|
||||
{
|
||||
tstRslt.TestTimeCorrection = outPath.Diverter.TestTimeCorrection(flowMID);
|
||||
tstRslt.MassCTV *= tstRslt.TestTime + tstRslt.TestTimeCorrection;
|
||||
tstRslt.MassCTV /= tstRslt.TestTime;
|
||||
}
|
||||
tstRslt.MassFlow = 3.6 * tstRslt.MassCTV / tstRslt.TestTime; /// Flow from MassCTV and time
|
||||
tstRslt.MassErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.MassCTV);
|
||||
tstRslt.MassConstMaster = (tstRslt.PulsesMaster != 0) ? (tstRslt.MassCTV / tstRslt.PulsesMaster) : tstRslt.ConstMasterCorr;
|
||||
|
||||
|
||||
/// Flow statistics correction
|
||||
tstRslt.FlowMean = Convert.ToSingle(tstRslt.ConstMaster * RefFlowStat.Average / tstRslt.ConstMasterRaw);
|
||||
tstRslt.FlowStart = Convert.ToSingle(tstRslt.ConstMaster * RefFlowStat.First / tstRslt.ConstMasterRaw);
|
||||
@ -915,8 +932,36 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
if (meterRslt != null && regReader != null)
|
||||
{
|
||||
meterRslt.RegReaderType = (int)regReader.RegisterReaderType;
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;
|
||||
meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses);
|
||||
ComponentProcedure procParamsEntity = test.Procedure.GetProcedureParamsEntity(regReader.Name);
|
||||
|
||||
try
|
||||
{
|
||||
if (regReader.RegisterReaderType == RegisterReaderType.Pulses)
|
||||
{
|
||||
XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(procParamsEntity.Parameters.ToString())) as RRProcParams;
|
||||
regReader.PulsesPerLtr = tmp.PulsesPerLtr;
|
||||
regReader.QuantityUnits = tmp.Units;
|
||||
}
|
||||
else
|
||||
{
|
||||
//MessageBox.Show("Cannot create or initialize a printer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
/*log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);*/
|
||||
}
|
||||
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;//...MF 11.12.2025 toto chybalo, v .csv bol stlpec naplneny nulami
|
||||
meterRslt.QuantityUnits = regReader.QuantityUnits;
|
||||
meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses);
|
||||
|
||||
if (dstrReader != null)
|
||||
{
|
||||
@ -1050,26 +1095,50 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
/// Normal measurement
|
||||
meterRslt.TestTime = cBrd.TestTimeWM(regReader.Position);
|
||||
meterRslt.VolumeRef = meterRslt.PulsesMaster * tstRslt.ConstMaster; /// [l]
|
||||
meterRslt.MassRef = meterRslt.PulsesMaster * tstRslt.MassConstMaster; /// [kg]
|
||||
}
|
||||
else
|
||||
{
|
||||
/// None or one pulse from the water meter
|
||||
meterRslt.TestTime = tstRslt.TestTime;
|
||||
meterRslt.VolumeRef = tstRslt.VolumeCTV; /// [l]
|
||||
}
|
||||
|
||||
log.DebugFormat("Pulses: Pref4meter={0} Vmeter={1} Vref4meter={2} Ttime4meter={3} Ttime={4}",
|
||||
meterRslt.PulsesMaster,
|
||||
meterRslt.VolumeMeter,
|
||||
meterRslt.VolumeRef,
|
||||
meterRslt.TestTime,
|
||||
tstRslt.TestTime);
|
||||
meterRslt.MassRef = tstRslt.MassCTV;
|
||||
}
|
||||
|
||||
meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty)
|
||||
&& (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty)
|
||||
&& (tstRslt.ErrorFlags == 0);
|
||||
log.DebugFormat("Pulses: Pref4meter={0} Vmeter={1} Vref4meter={2} Mmeter={3} Mref4meter={4} Ttime4meter={5} Ttime={6}",
|
||||
meterRslt.PulsesMaster,
|
||||
meterRslt.VolumeMeter,
|
||||
meterRslt.VolumeRef,
|
||||
meterRslt.MassMeter,
|
||||
meterRslt.MassRef,
|
||||
meterRslt.TestTime,
|
||||
tstRslt.TestTime);
|
||||
}
|
||||
|
||||
double Error = 0;
|
||||
if (meterRslt.GetQuantityFromUnits() == "Mass")
|
||||
Error = Formulas.ErrorFromVolumes(meterRslt.MassMeter, meterRslt.MassRef);
|
||||
else
|
||||
Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
|
||||
meterRslt.Error = Error;
|
||||
|
||||
var ErrLimLo_Volume = test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime);
|
||||
var ErrLimHi_Volume = test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime);
|
||||
var ErrLimLo_Mass = test.GetErrLimLo(tstRslt.MassCTV, tstRslt.TestTime);
|
||||
var ErrLimHi_Mass = test.GetErrLimHi(tstRslt.MassCTV, tstRslt.TestTime);
|
||||
|
||||
bool Passed;
|
||||
if (meterRslt.GetQuantityFromUnits() == "Mass")
|
||||
Passed = (meterRslt.Error >= ErrLimLo_Volume + test.Uncertainty) &&
|
||||
(meterRslt.Error <= ErrLimHi_Volume - test.Uncertainty) &&
|
||||
(tstRslt.ErrorFlags == 0);
|
||||
else
|
||||
Passed = (meterRslt.Error >= ErrLimLo_Mass + test.Uncertainty) &&
|
||||
(meterRslt.Error <= ErrLimHi_Mass - test.Uncertainty) &&
|
||||
(tstRslt.ErrorFlags == 0);
|
||||
|
||||
meterRslt.Passed = Passed;
|
||||
meterRslt.TestDone = true;
|
||||
tstRslt.TestDone = true;
|
||||
#if ORACLE_DB
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
@ -6,16 +9,16 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.TestMethods.S640Communication
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
|
||||
@ -324,28 +327,42 @@ namespace TBF.Rig.TestMethods.S640Communication
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -13,6 +13,8 @@ using TBF.Resources;
|
||||
using TBF.Rig.GenericDevices;
|
||||
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
|
||||
using TBF.UiBridge;
|
||||
using System.Xml.Serialization;
|
||||
using TBF.Rig.RegisterReaders.PulsesFromUniCB;
|
||||
|
||||
namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
{
|
||||
@ -844,7 +846,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
double buoyancy = Formulas.Buoyancy();
|
||||
double massOfEvaporatedWater = (double)(tMass2 - tMass1) * outPath.Scale.EvaporationRate(TempDivStat.Average);
|
||||
double volumeCTV = 1000.0 * buoyancy * (massEnd - massStart + massOfEvaporatedWater) / densityOut;
|
||||
if (debugLevel == Common.DebugMode.Simulate) volumeCTV = test.Volume;
|
||||
double massCTV = buoyancy * (massEnd - massStart + massOfEvaporatedWater);
|
||||
if (debugLevel == Common.DebugMode.Simulate) volumeCTV = test.Volume;
|
||||
|
||||
double refEnergy = Energy.Sum * volumeCTV / VolumeForEnergy.Sum; /// [J]=[J]*[l]/[l]
|
||||
|
||||
@ -1077,6 +1080,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
/// Main results
|
||||
tstRslt.VolumeCTV = volumeCTV; /// [l] 1000.0f is because density is in [kg/m3]
|
||||
tstRslt.Flow = 3.6 * volumeCTV / tstRslt.TestTime; /// [m3/h]
|
||||
tstRslt.MassCTV = massCTV; /// [kg] 1000.0f is because density is in [kg/m3]
|
||||
tstRslt.MassFlow = 3.6 * massCTV / tstRslt.TestTime; /// [kg/h]
|
||||
|
||||
if (cBrd is ControlBoard.Uni.UniCB)
|
||||
{
|
||||
@ -1085,6 +1090,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
tstRslt.ConstMasterCorr = outPath.FlowMeter.LtrPerPulseCorrected(tstRslt.Flow, tstRslt.TempDownMean);
|
||||
tstRslt.VolumeMaster = tstRslt.ConstMasterRaw * tstRslt.PulsesMaster; /// [l] volume from the master flow meter
|
||||
tstRslt.ConstMaster = (tstRslt.VolumeMaster != 0) ? (tstRslt.ConstMasterRaw * tstRslt.VolumeCTV / tstRslt.VolumeMaster) : tstRslt.ConstMasterCorr;
|
||||
tstRslt.MassConstMaster = (tstRslt.PulsesMaster != 0) ? (tstRslt.MassCTV / tstRslt.PulsesMaster) : tstRslt.ConstMasterCorr;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1095,6 +1101,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
tstRslt.ConstMaster = 1;
|
||||
}
|
||||
tstRslt.ErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.VolumeCTV);
|
||||
tstRslt.MassErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.MassCTV);
|
||||
|
||||
tstRslt.FlowMean = (float)RefFlowStat.Average;
|
||||
tstRslt.FlowStart = (float)RefFlowStat.First;
|
||||
@ -1244,18 +1251,72 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||
if (meterRslt != null && regReader != null)
|
||||
{
|
||||
meterRslt.RegReaderType = (int)regReader.RegisterReaderType;
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;
|
||||
ComponentProcedure procParamsEntity = test.Procedure.GetProcedureParamsEntity(regReader.Name);
|
||||
|
||||
try
|
||||
{
|
||||
if (regReader.RegisterReaderType == RegisterReaderType.Pulses || regReader.RegisterReaderType == RegisterReaderType.Manual)
|
||||
{
|
||||
XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0];
|
||||
RRProcParams tmp = Serializer.Deserialize(new StringReader(procParamsEntity.Parameters.ToString())) as RRProcParams;
|
||||
regReader.PulsesPerLtr = tmp.PulsesPerLtr;
|
||||
regReader.QuantityUnits = tmp.Units;
|
||||
}
|
||||
else
|
||||
{
|
||||
//MessageBox.Show("Cannot create or initialize a printer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
/*log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);*/
|
||||
}
|
||||
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;//...MF 11.12.2025 toto chybalo, v .csv bol stlpec naplneny nulami
|
||||
meterRslt.QuantityUnits = regReader.QuantityUnits;
|
||||
meterRslt.VolumeStart = regReader.BeginWMState;
|
||||
meterRslt.VolumeEnd = regReader.EndWMState;
|
||||
meterRslt.VolumeMeter = Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart);
|
||||
meterRslt.VolumeRef = tstRslt.VolumeCTV; /// liter
|
||||
meterRslt.MassMeter = Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart);
|
||||
meterRslt.VolumeRef = tstRslt.VolumeCTV; /// liter
|
||||
meterRslt.MassRef = tstRslt.MassCTV; /// kg
|
||||
meterRslt.PulsesMeter = meterRslt.VolumeMeter;
|
||||
meterRslt.PulsesMaster = tstRslt.PulsesMaster;
|
||||
meterRslt.TestTime = tstRslt.TestTime;
|
||||
meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty)
|
||||
//meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
double Error = 0;
|
||||
if (meterRslt.GetQuantityFromUnits() == "Mass")
|
||||
Error = Formulas.ErrorFromVolumes(meterRslt.MassMeter, meterRslt.MassRef);
|
||||
else
|
||||
Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
|
||||
meterRslt.Error = Error;
|
||||
|
||||
/*meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty)
|
||||
&& (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty)
|
||||
&& (tstRslt.ErrorFlags == 0);
|
||||
&& (tstRslt.ErrorFlags == 0);*/
|
||||
var ErrLimLo_Volume = test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime);
|
||||
var ErrLimHi_Volume = test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime);
|
||||
var ErrLimLo_Mass = test.GetErrLimLo(tstRslt.MassCTV, tstRslt.TestTime);
|
||||
var ErrLimHi_Mass = test.GetErrLimHi(tstRslt.MassCTV, tstRslt.TestTime);
|
||||
|
||||
bool Passed;
|
||||
if (meterRslt.GetQuantityFromUnits() == "Mass")
|
||||
Passed = (meterRslt.Error >= ErrLimLo_Volume + test.Uncertainty) &&
|
||||
(meterRslt.Error <= ErrLimHi_Volume - test.Uncertainty) &&
|
||||
(tstRslt.ErrorFlags == 0);
|
||||
else
|
||||
Passed = (meterRslt.Error >= ErrLimLo_Mass + test.Uncertainty) &&
|
||||
(meterRslt.Error <= ErrLimHi_Mass - test.Uncertainty) &&
|
||||
(tstRslt.ErrorFlags == 0);
|
||||
|
||||
meterRslt.Passed = Passed;
|
||||
meterRslt.TestDone = true;
|
||||
tstRslt.TestDone = true;
|
||||
if (regReader is ICommonRegReader regReaderCommon)
|
||||
|
||||
@ -89,9 +89,12 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
}
|
||||
}
|
||||
public RegisterReaderType RegisterReaderType { get { return RegisterReaderType.DataStream; } }
|
||||
public double PulsesPerLtr { get { return 1000.0; } }
|
||||
public double PulsesPerLtr {
|
||||
get { return 1000.0; }
|
||||
set {PulsesPerLtr = value; }
|
||||
}
|
||||
public double LtrsPerPulse { get { return 1 / PulsesPerLtr; } }
|
||||
|
||||
public string QuantityUnits { get; set; }
|
||||
public double CalibTarget { get { return iperlHeadCfg.ProcParams.CalibTarget; } }
|
||||
public ushort FactorLimitLo { get { return (ushort)iperlHeadCfg.ProcParams.FactorLimitLo; } }
|
||||
public ushort FactorLimitHi { get { return (ushort)iperlHeadCfg.ProcParams.FactorLimitHi; } }
|
||||
|
||||
@ -1,19 +1,22 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public int WMType_ID;
|
||||
@ -146,26 +149,39 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during Procedure parameters deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ProcParams()
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
///
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using log4net;
|
||||
///
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
@ -6,16 +9,16 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Rig.Generic;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Generic;
|
||||
|
||||
namespace TBF.Rig.WaterMeters.WaterMeter
|
||||
{
|
||||
public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(ProcParams));
|
||||
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0];
|
||||
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
|
||||
@ -372,28 +375,42 @@ namespace TBF.Rig.WaterMeters.WaterMeter
|
||||
return pars;
|
||||
}
|
||||
|
||||
public override void UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
public override bool UpdateFromDbEntity(ComponentProcedure dbEntity)
|
||||
{
|
||||
if (dbEntity == null) return false;
|
||||
try
|
||||
{
|
||||
ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams;
|
||||
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
procedureParamsEntity = dbEntity;
|
||||
componentName = dbEntity.CmpntName;
|
||||
procedure = dbEntity.Procedure;
|
||||
|
||||
if (tmp != null) tmp.CopyContentTo(this);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.CopyContentTo(this);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.DebugFormat(
|
||||
"Error during RRProcParams deserialization. CmpntName='{0}', Procedure='{1}', Parameters='{2}', Exception: {3}",
|
||||
dbEntity?.CmpntName,
|
||||
dbEntity?.Procedure,
|
||||
dbEntity?.Parameters,
|
||||
ex
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor initializes the parameters
|
||||
/// </summary>
|
||||
public ProcParams()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<LangVersion>8</LangVersion>
|
||||
<PublishUrl>D:\_Sensus\Temp\Bin\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
@ -33,7 +34,6 @@
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<LangVersion>8</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@ -101,6 +101,9 @@
|
||||
<PropertyGroup>
|
||||
<SignManifests>false</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Castle.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Castle.Core.5.1.1\lib\net462\Castle.Core.dll</HintPath>
|
||||
@ -1456,7 +1459,9 @@
|
||||
<Compile Include="Rig\Scales\MettlerToledo\Factory.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\GetSerNumOp.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\ReadStableMassOp.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\SerialPortDevice.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\SerialPortDevice.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Rig\Scales\MettlerToledo\SerialPortDeviceFake.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\SetUnitsOp.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\TaringOp.cs" />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user