laatzen/Common/CordonelPreadjustmentUi/PreAdjustmentSettingsContainer.cs
2022-04-06 10:42:16 +02:00

199 lines
8.1 KiB
C#

using Logic.ProductionToProductMapper.Cordonel;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts;
namespace CordonelPreadjustmentUi
{
public class PreAdjustmentSettingsContainer
{
#region prep
public Int32 CalFactor1 { get; internal set; } = 15625;
public Int32 CalFactor2 { get; internal set; } = 15625;
public Int32 CalFactor3 { get; internal set; } = 15625;
public Int32 ZeroOffset1 { get; internal set; } = 0;
public Int32 ZeroOffset2 { get; internal set; } = 0;
public Int32 ZeroOffset3 { get; internal set; } = 0;
public Int32 Samplerate { get; internal set; } = 10;
public MeterSize MeterSize { get; internal set; } = MeterSize.DN50;
public LedMode LedMode { get; internal set; } = LedMode.CalibData;
#endregion
#region ProcessesEnabled
//todo read from checkbox
public bool doOffsetTest { get; internal set; } = true;
public bool doAmplTest { get; internal set; } = true;
#endregion
#region TempControl
public Double UpperTempLimit { get; internal set; } = 35;
public Double LowerTempLimit { get; internal set; } = 15;
public Double TempDeviationLimit { get; internal set; } = 1;
#endregion
#region AmpTest
public Int32 AmpTestTofRecordingTime { get; internal set; } = 6;
public Double AmpTestTriggerValue { get; internal set; } = 0.5;
public bool AmpTestGenerateLogfiles { get; internal set; } = true;
public bool AmpTestGenerateMeanValuesFile { get; internal set; } = true;
public Int32 AmpTestFirstHitLevelPropMin { get; internal set; } = 12;//(Int32)nUD_Settings_AmplitudeTestLowerLimit.Value,
public Int32 AmpTestFirstHitLevelPropMax { get; internal set; } = 32;//(Int32)nUD_Settings_AmplitudeTestUpperLimit.Value,
public Int32 AmpTestAmpTestDistance { get; internal set; } = 7;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
public Int32 AmpTestPercentageStart { get; internal set; } = 5;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
public Int32 AmpTestPercentageStop { get; internal set; } = 35;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
public Int32 AmpTestActivityCheckInverval { get; internal set; } = 6;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
#endregion
#region OffsetTest
public bool OffsetTestGenerateLogfiles { get; internal set; } = true;
public Int32 OffsetTestUpperVoltageLimitMV { get; internal set; } = 650;//(Int32)nUD_Settings_AmplitudeTestLowerLimit.Value,
public Int32 OffsetTestLowerVoltageLimitMV { get; internal set; } = 200;//(Int32)nUD_Settings_AmplitudeTestUpperLimit.Value,
public Int32 OffsetTestOffsetLimitPS { get; internal set; } = 300;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
public Int32 OffsetTestSettlingTime { get; internal set; } = 60;//(Int32)nUD_Settings_AmplitudeTestMinDistance.Value
public Int32 OffsetTestNumberOfLines { get; internal set; } = 9000;
public Int32 OffsetTestActivityCheckInverval { get; internal set; } = 2;
public Int32 OffsetTestBadDataLimit { get; internal set; } = 3;
#endregion
private string CultureStr;
public List<Int32> TempMeters = new List<Int32>() { 1, 10 };
public List<Int32> Meters = new List<Int32>() { 2, 3, 4, 5, 6, 7, 8, 9 };
public CultureInfo Culture
{
get { return CultureInfo.CreateSpecificCulture(CultureStr); }
set { CultureStr = value.Name; }
}
public Int32 NumberOfPaths { get; internal set; }
public bool TempOnly { get; internal set; } = false;
private bool tempUseManualInput;
public bool GetTempUseManualInput()
{
return tempUseManualInput;
}
public void SetTempUseManualInput(bool value)
{
tempUseManualInput = value;
}
private bool tempUsePtOverSps;
public bool GetTempUsePtOverSps()
{
return tempUsePtOverSps;
}
public void SetTempUsePtOverSps(bool value)
{
tempUsePtOverSps = value;
}
private bool tempUseTempFlansh;
public bool GetTempUseTempFlansh()
{
return tempUseTempFlansh;
}
public void SetTempUseTempFlansh(bool value)
{
tempUseTempFlansh = value;
}
public PreAdjustmentSettingsContainer(
int numberOfPaths = 3,
Int32[] meters = null,
string cultureStr = "de-DE",
Int32[] tempMeters = null,
MeterSize meterSize = MeterSize.DN50,
Double upperTempLimit = 35,
Double lowerTempLimit = 15,
Double tempDeviationLimit = 1,
Int32 ampTestTofRecordingTime = 2,
Double ampTestTriggerValue = 0.5,
bool ampTestGenerateLogfiles = true,
bool ampTestGenerateMeanValuesFile = true,
Int32 ampTestFirstHitLevelPropMin = 12,
Int32 ampTestFirstHitLevelPropMax = 32,
Int32 ampTestAmpTestDistance = 7,
Int32 ampTestPercentageStart = 5,
Int32 ampTestPercentageStop = 35,
Int32 ampTestActivityCheckInverval = 6,
bool offsetTestGenerateLogfiles = true,
Int32 offsetTestUpperVoltageLimitMV = 650,
Int32 offsetTestLowerVoltageLimitMV = 200,
Int32 offsetTestOffsetLimitPS = 300,
Int32 offsetTestSettlingTime = 60,
Int32 offsetTestZeroflowOffsetTestNumberOfLines = 9000,
Int32 offsetTestActivityCheckInverval = 2,
Int32 offsetTestBadDataLimit = 3,
Int32 samplerate = 16)
{
NumberOfPaths = numberOfPaths;
CultureStr = cultureStr;//"en-US"
MeterSize = meterSize;
if (meters != null)
{
Meters = meters.ToList();
}
else
{
Meters = new List<int>() { 2, 3, 4, 5, 6, 7, 8, 9 };
}
if (tempMeters != null)
{
TempMeters = tempMeters.ToList();
}
else
{
TempMeters = new List<int>() { 1, 10 };
}
UpperTempLimit = upperTempLimit;
LowerTempLimit = lowerTempLimit;
TempDeviationLimit = tempDeviationLimit;
AmpTestTofRecordingTime = ampTestTofRecordingTime;
AmpTestTriggerValue = ampTestTriggerValue;
AmpTestGenerateLogfiles = ampTestGenerateLogfiles;
AmpTestGenerateMeanValuesFile = ampTestGenerateMeanValuesFile;
AmpTestFirstHitLevelPropMin = ampTestFirstHitLevelPropMin;
AmpTestFirstHitLevelPropMax = ampTestFirstHitLevelPropMax;
AmpTestAmpTestDistance = ampTestAmpTestDistance;
AmpTestPercentageStart = ampTestPercentageStart;
AmpTestPercentageStop = ampTestPercentageStop;
AmpTestActivityCheckInverval = ampTestActivityCheckInverval;
OffsetTestGenerateLogfiles = offsetTestGenerateLogfiles;
OffsetTestUpperVoltageLimitMV = offsetTestUpperVoltageLimitMV;
OffsetTestLowerVoltageLimitMV = offsetTestLowerVoltageLimitMV;
OffsetTestOffsetLimitPS = offsetTestOffsetLimitPS;
OffsetTestSettlingTime = offsetTestSettlingTime;
OffsetTestNumberOfLines = offsetTestZeroflowOffsetTestNumberOfLines;
OffsetTestActivityCheckInverval = offsetTestActivityCheckInverval;
OffsetTestBadDataLimit = offsetTestBadDataLimit;
Samplerate = samplerate;
}
public override string ToString()
{
var sb = new StringBuilder();
foreach (var p in this.GetType().GetProperties().Where(p => !p.GetGetMethod().GetParameters().Any()))
{
sb.Append($"{p.Name}={p.GetValue(this, null).ToString()}");
}
return sb.ToString();
}
}
}