Unit selection in UI.Procedures.ProcedureDlg and UI.Procedures.TestWizard, ver. 3.1.1801

This commit is contained in:
Milan Hanajik
2021-11-09 08:48:27 +01:00
parent 5996fda348
commit 0f5c4b083d
15 changed files with 1092 additions and 440 deletions
@@ -37,12 +37,18 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
public int WaterMetersCount; /// 10
public int LinesCount; /// 11
public int CompoundMetersCount; /// 12
public Side Side; /// 13
public int MaxTestIndex; /// 14 (MaxPruefindex % 100) value when to reject water meters completely if they are NOK
public ProcedureSelection Source1; /// 15
public ProcedureSelection Source2; /// 16
public ProcedureSelection Source3; /// 17
public ProcedureSelection Source4; /// 18
public Unit VolumeUnit;
public Unit FlowUnit;
public Unit MassUnit;
public Unit TempUnit;
public Unit PressUnit;
public Unit LenghtUnit;
public Side Side; /// 19
public int MaxTestIndex; /// 20 (MaxPruefindex % 100) value when to reject water meters completely if they are NOK
public ProcedureSelection Source1; /// 21
public ProcedureSelection Source2; /// 22
public ProcedureSelection Source3; /// 23
public ProcedureSelection Source4; /// 24
/// Calibration info serialized parameters displayed in Metrology tab page
string calibCertificateNr;
@@ -94,6 +100,12 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
WaterMetersCount = 20;
LinesCount = 2;
CompoundMetersCount = 1;
VolumeUnit = Unit.l;
FlowUnit = Unit.m3ph;
MassUnit = Unit.kg;
TempUnit = Unit.C;
PressUnit = Unit.bar;
LenghtUnit = Unit.mm;
Side = Side.Left;
MaxTestIndex = 4;
Source1 = ProcedureSelection.FromSharedDB;
@@ -117,18 +129,26 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
"Water meters count", /// 10
"Lines count", /// 11
"Compound meters count", /// 12
Strings.Side, /// 13
"Max.test index", /// 14
"Procedure selection source 1", /// 15
"Procedure selection source 2", /// 16
"Procedure selection source 3", /// 17
"Procedure selection source 4", /// 18
"Preffered volume unit",
"Preffered flow unit",
"Preffered mass unit",
"Preffered temperature unit",
"Preffered pressure unit",
"Preffered lenght unit",
Strings.Side, /// 19
"Max.test index", /// 20
"Procedure selection source 1", /// 21
"Procedure selection source 2", /// 22
"Procedure selection source 3", /// 23
"Procedure selection source 4", /// 24
};
public string ParamName(int i) { return paramNames[i]; }
public int ParamsCount() { return paramNames.Length; }
public ICollection<string> ParamValues(int i)
{
var list = new List<string>();
switch (i)
{
case 10:
@@ -138,20 +158,47 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
case 12:
return new string[] { "0", "1", "2", "3" };
case 13:
IList<string> list = new List<string>();
for (Side side = 0; side < Side.Count; side++) list.Add(side.ToDescription());
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Volume))
list.Add(unit.ToDescription());
return list;
case 14:
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Flow))
list.Add(unit.ToDescription());
return list;
case 15:
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Mass))
list.Add(unit.ToDescription());
return list;
case 16:
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Temperature))
list.Add(unit.ToDescription());
return list;
case 17:
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Pressure))
list.Add(unit.ToDescription());
return list;
case 18:
for (Unit unit = 0; unit < Unit.Count; unit++)
if (Units.IsQuantity(unit, Quantity.Length))
list.Add(unit.ToDescription());
return list;
case 19:
for (Side side = 0; side < Side.Count; side++)
list.Add(side.ToDescription());
return list;
case 15:
case 16:
case 17:
case 18:
IList<string> items = new List<string>();
case 21:
case 22:
case 23:
case 24:
for (ProcedureSelection src = 0; src < ProcedureSelection.Count; src++)
{
items.Add(src.ToDescription());
}
return items;
list.Add(src.ToDescription());
return list;
default:
return null;
@@ -175,12 +222,18 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
case 10: return WaterMetersCount.ToString();
case 11: return LinesCount.ToString();
case 12: return CompoundMetersCount.ToString();
case 13: return Side.ToDescription();
case 14: return MaxTestIndex.ToString();
case 15: return Source1.ToDescription();
case 16: return Source2.ToDescription();
case 17: return Source3.ToDescription();
case 18: return Source4.ToDescription();
case 13: return VolumeUnit.ToDescription();
case 14: return FlowUnit.ToDescription();
case 15: return MassUnit.ToDescription();
case 16: return TempUnit.ToDescription();
case 17: return PressUnit.ToDescription();
case 18: return LenghtUnit.ToDescription();
case 19: return Side.ToDescription();
case 20: return MaxTestIndex.ToString();
case 21: return Source1.ToDescription();
case 22: return Source2.ToDescription();
case 23: return Source3.ToDescription();
case 24: return Source4.ToDescription();
default:
return string.Format("{0}: Bench={1}, ID={2}, Mtrs={3}, Lines={4}, Compund mtrs={5}, S1={6}, S2={7}, S3={8}, S4={9}",
Name, TestBenchName, TestBenchId, WaterMetersCount, LinesCount, CompoundMetersCount, Source1, Source2, Source3, Source4);
@@ -206,6 +259,30 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
case 12: CompoundMetersCount = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 13:
VolumeUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 14:
FlowUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 15:
MassUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 16:
TempUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 17:
PressUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 18:
LenghtUnit = Units.FromDescription(str);
return CfgUpdateFlags.RestartRqrd;
case 19:
for (Side side = 0; side < Side.Count; side++)
{
if (str == side.ToDescription())
@@ -223,30 +300,30 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
}
return CfgUpdateFlags.Error;
case 14: MaxTestIndex = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 20: MaxTestIndex = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 15:
case 21:
for (ProcedureSelection source = 0; source < ProcedureSelection.Count; source++)
{
if (str == source.ToDescription()) { Source1 = source; return CfgUpdateFlags.RestartRqrd; }
}
break;
case 16:
case 22:
for (ProcedureSelection source = 0; source < ProcedureSelection.Count; source++)
{
if (str == source.ToDescription()) { Source2 = source; return CfgUpdateFlags.RestartRqrd; }
}
break;
case 17:
case 23:
for (ProcedureSelection source = 0; source < ProcedureSelection.Count; source++)
{
if (str == source.ToDescription()) { Source3 = source; return CfgUpdateFlags.RestartRqrd; }
}
break;
case 18:
case 24:
for (ProcedureSelection source = 0; source < ProcedureSelection.Count; source++)
{
if (str == source.ToDescription()) { Source4 = source; return CfgUpdateFlags.RestartRqrd; }
@@ -286,18 +363,26 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
if (int.TryParse(str, out idummy) && idummy >= 0 && idummy <= 3) return true;
break;
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
if (ParamValues(i).Contains(str)) return true;
break;
case 19:
for (Side side = 0; side < Side.Count; side++)
{
if (str == side.ToDescription()) return true;
}
break;
case 14:
case 20:
if (int.TryParse(str, out idummy) && (idummy >= 0)) return true;
break;
case 15:
case 16:
case 17:
case 18:
case 21:
case 22:
case 23:
case 24:
for (ProcedureSelection source = 0; source < ProcedureSelection.Count; source++)
{
if (str == source.ToDescription()) return true;
@@ -327,6 +412,12 @@ namespace TBF.Rig.DataContainer.iPerlBenchInfo
prms.WaterMetersCount = this.WaterMetersCount;
prms.LinesCount = this.LinesCount;
prms.CompoundMetersCount = this.CompoundMetersCount;
prms.VolumeUnit = this.VolumeUnit;
prms.FlowUnit = this.FlowUnit;
prms.MassUnit = this.MassUnit;
prms.TempUnit = this.TempUnit;
prms.PressUnit = this.PressUnit;
prms.LenghtUnit = this.LenghtUnit;
prms.Side = this.Side;
prms.MaxTestIndex = this.MaxTestIndex;
prms.Source1 = this.Source1;