diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs
index 1e8e30ff..5ac3a4b2 100644
--- a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs
+++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs
@@ -426,12 +426,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.MockGenesis
/// Mock reading all applications from a predefined package description file instead from the Meter.
///
///
- /// - Initial
+ /// - Initial.
+ ///
+ ///
+ /// - Avoid overwriting of list combined with valid register dictionary.
///
protected override void ReadMeterFirmwareAndAssignRegisters()
{
// Avoid overwriting of list if this already exits
- if (MeterAppListVersion.Any() && MeterAppListVersion.All(f => f.Status != MeterAppState.Unknown))
+ if (MeterAppListVersion.Any() && MeterAppListVersion.All(f => f.Status != MeterAppState.Unknown) &&
+ ConfigRegister.MeterRegisterDic.Count != 0)
{
Logger.Warn($"Slot:{Slot} - Trying to overwride installed FW. Skipping generation of new " +
"App list and meter register dictionary");
diff --git a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature
index 1e6f0491..f1fdd772 100644
--- a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature
+++ b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature
@@ -466,7 +466,11 @@ OUTPUT: "StatusReturn" with results "Okay" or "Failed",
# Activate the entire equality EOL progress check between requirement and result
And Activate EOL progress check
- # The input initializations don't have a "TestNo" nor a result (EOLStatus, StringReturn or StatusReturn) as those are commonly used for
+ # Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
+ # all required preceding production processes to check an entire sequence of processes.
+ And Define production process for sequencing before test 'ExecFinalParametrization'
+
+# The input initializations don't have a "TestNo" nor a result (EOLStatus, StringReturn or StatusReturn) as those are commonly used for
# all tests specified in "Input matrix defining the test cases and results". All these inputs have a setup to pass the overall test with
# positive feedback (all are good).
And Input initializations for the test matrix and presets to pass the preceding tests
@@ -525,29 +529,25 @@ OUTPUT: "StatusReturn" with results "Okay" or "Failed",
| Meter Calib Fact 1 | Meter Calib Fact 2 | Meter Calib Fact 3 | DB Calib Fact 1 | DB Calib Fact 2 | DB Calib Fact 3 | Comment |
| 10000 | 20000 | 30000 | 10000 | 20000 | 30000 | Valid calib factors |
- # Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
- # all required preceding production processes to check an entire sequence of processes.
- And Define production process for sequencing before test 'ExecFinalParametrization'
-
- #--------------------------------- Define Test-Cases -------------------------------------------------------------------------
+ #--------------------------------- Define Test-Cases -------------------------------------------------------------------------
And Input matrix defining the test cases and results
# "Kill x" forces the test to fail to check if all tests are executed. REMIND: Set only ONE to "X" and leave all others as "-"! Otherwise the test will FAIL!
| TestNo | Kill EOL | Kill Requ | Kill Order | Kill PcbId | Kill Region | Kill LUT | Kill Size | Kill FW | Kill Load | Kill LifeTime | Kill StoreTime | Kill PreAdj | Kill FlowTest | Kill Calib | StatusReturn | Comment |
| 1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Okay | Test sequence complete |
- | 2 | X | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill EOL generation |
- | 3 | - | X | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill requirement |
- | 4 | - | - | X | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill production order check |
- | 5 | - | - | - | X | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill PcbId check |
- | 6 | - | - | - | - | X | - | - | - | - | - | - | - | - | - | Failed | Detected kill region check |
- | 7 | - | - | - | - | - | X | - | - | - | - | - | - | - | - | Failed | Detected kill LUT check |
- | 8 | - | - | - | - | - | - | X | - | - | - | - | - | - | - | Failed | Detected kill meter size check |
- | 9 | - | - | - | - | - | - | - | X | - | - | - | - | - | - | Failed | Detected kill FW check |
- | 10 | - | - | - | - | - | - | - | - | X | - | - | - | - | - | Failed | Detected kill battery load check |
- | 11 | - | - | - | - | - | - | - | - | - | X | - | - | - | - | Failed | Detected kill life time check |
- | 12 | - | - | - | - | - | - | - | - | - | - | X | - | - | - | Failed | Detected kill storage time check |
- | 13 | - | - | - | - | - | - | - | - | - | - | - | X | - | - | Failed | Detected kill preadjustment check |
- | 14 | - | - | - | - | - | - | - | - | - | - | - | - | X | - | Failed | Detected kill flow test check |
- | 15 | - | - | - | - | - | - | - | - | - | - | - | - | - | X | Failed | Detected kill calibrations check |
+# | 2 | X | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill EOL generation |
+# | 3 | - | X | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill requirement |
+# | 4 | - | - | X | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill production order check |
+# | 5 | - | - | - | X | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill PcbId check |
+# | 6 | - | - | - | - | X | - | - | - | - | - | - | - | - | - | Failed | Detected kill region check |
+# | 7 | - | - | - | - | - | X | - | - | - | - | - | - | - | - | Failed | Detected kill LUT check |
+# | 8 | - | - | - | - | - | - | X | - | - | - | - | - | - | - | Failed | Detected kill meter size check |
+# | 9 | - | - | - | - | - | - | - | X | - | - | - | - | - | - | Failed | Detected kill FW check |
+# | 10 | - | - | - | - | - | - | - | - | X | - | - | - | - | - | Failed | Detected kill battery load check |
+# | 11 | - | - | - | - | - | - | - | - | - | X | - | - | - | - | Failed | Detected kill life time check |
+# | 12 | - | - | - | - | - | - | - | - | - | - | X | - | - | - | Failed | Detected kill storage time check |
+# | 13 | - | - | - | - | - | - | - | - | - | - | - | X | - | - | Failed | Detected kill preadjustment check |
+# | 14 | - | - | - | - | - | - | - | - | - | - | - | - | X | - | Failed | Detected kill flow test check |
+# | 15 | - | - | - | - | - | - | - | - | - | - | - | - | - | X | Failed | Detected kill calibrations check |
When Execute the generic tests
Then Check the generic test results
diff --git a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs
index a358fab1..1120f140 100644
--- a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs
+++ b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs
@@ -1877,6 +1877,9 @@ this.ScenarioInitialize(scenarioInfo);
#line hidden
#line 467
testRunner.And("Activate EOL progress check", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
+#line hidden
+#line 471
+ testRunner.And("Define production process for sequencing before test \'ExecFinalParametrization\'", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
TechTalk.SpecFlow.Table table16 = new TechTalk.SpecFlow.Table(new string[] {
"EOL Id",
@@ -1890,7 +1893,7 @@ this.ScenarioInitialize(scenarioInfo);
"182100041",
"182100041",
"EOL Progress successfully created"});
-#line 472
+#line 476
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table16, "And ");
#line hidden
@@ -1910,7 +1913,7 @@ this.ScenarioInitialize(scenarioInfo);
"null",
"null",
"Standard Requirement is active and approved"});
-#line 476
+#line 480
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table17, "And ");
#line hidden
@@ -1922,7 +1925,7 @@ this.ScenarioInitialize(scenarioInfo);
"3118323",
"3118323",
"Order number is identical"});
-#line 480
+#line 484
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table18, "And ");
#line hidden
@@ -1936,7 +1939,7 @@ this.ScenarioInitialize(scenarioInfo);
"182100041",
"182100041",
"PcbId is identical"});
-#line 484
+#line 488
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table19, "And ");
#line hidden
@@ -1948,7 +1951,7 @@ this.ScenarioInitialize(scenarioInfo);
"EMEA",
"EMEA",
"Region is identical"});
-#line 488
+#line 492
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table20, "And ");
#line hidden
@@ -1960,7 +1963,7 @@ this.ScenarioInitialize(scenarioInfo);
"0xEB7C",
"0xEB7C",
"LUT CRC is identical"});
-#line 492
+#line 496
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table21, "And ");
#line hidden
@@ -1972,7 +1975,7 @@ this.ScenarioInitialize(scenarioInfo);
"DN50",
"DN50",
"Meter size is identical"});
-#line 496
+#line 500
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table22, "And ");
#line hidden
@@ -1986,7 +1989,7 @@ this.ScenarioInitialize(scenarioInfo);
"R1.3.0B",
"R1.3.0B",
"FW Version is identical"});
-#line 500
+#line 504
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table23, "And ");
#line hidden
@@ -1996,7 +1999,7 @@ this.ScenarioInitialize(scenarioInfo);
table24.AddRow(new string[] {
"2.0",
"Normal threshold okay"});
-#line 504
+#line 508
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table24, "And ");
#line hidden
@@ -2010,7 +2013,7 @@ this.ScenarioInitialize(scenarioInfo);
"20.0",
"1.0",
"Remaining lifetime as required"});
-#line 508
+#line 512
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table25, "And ");
#line hidden
@@ -2022,7 +2025,7 @@ this.ScenarioInitialize(scenarioInfo);
"-3.0",
"3.0",
"Storage months in range"});
-#line 512
+#line 516
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table26, "And ");
#line hidden
@@ -2034,7 +2037,7 @@ this.ScenarioInitialize(scenarioInfo);
"5",
"21",
"Test bench preadjustment succeeded"});
-#line 516
+#line 520
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table27, "And ");
#line hidden
@@ -2046,7 +2049,7 @@ this.ScenarioInitialize(scenarioInfo);
"6",
"30",
"Test bench calibration succeeded"});
-#line 520
+#line 524
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table28, "And ");
#line hidden
@@ -2066,12 +2069,9 @@ this.ScenarioInitialize(scenarioInfo);
"20000",
"30000",
"Valid calib factors"});
-#line 524
+#line 528
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table29, "And ");
-#line hidden
-#line 530
- testRunner.And("Define production process for sequencing before test \'ExecFinalParametrization\'", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
TechTalk.SpecFlow.Table table30 = new TechTalk.SpecFlow.Table(new string[] {
"TestNo",
@@ -2109,258 +2109,6 @@ this.ScenarioInitialize(scenarioInfo);
"-",
"Okay",
"Test sequence complete"});
- table30.AddRow(new string[] {
- "2",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill EOL generation"});
- table30.AddRow(new string[] {
- "3",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill requirement"});
- table30.AddRow(new string[] {
- "4",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill production order check"});
- table30.AddRow(new string[] {
- "5",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill PcbId check"});
- table30.AddRow(new string[] {
- "6",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill region check"});
- table30.AddRow(new string[] {
- "7",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill LUT check"});
- table30.AddRow(new string[] {
- "8",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill meter size check"});
- table30.AddRow(new string[] {
- "9",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill FW check"});
- table30.AddRow(new string[] {
- "10",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill battery load check"});
- table30.AddRow(new string[] {
- "11",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill life time check"});
- table30.AddRow(new string[] {
- "12",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "-",
- "Failed",
- "Detected kill storage time check"});
- table30.AddRow(new string[] {
- "13",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "-",
- "Failed",
- "Detected kill preadjustment check"});
- table30.AddRow(new string[] {
- "14",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "-",
- "Failed",
- "Detected kill flow test check"});
- table30.AddRow(new string[] {
- "15",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "-",
- "X",
- "Failed",
- "Detected kill calibrations check"});
#line 533
testRunner.And("Input matrix defining the test cases and results", ((string)(null)), table30, "And ");
#line hidden
diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs
index 0222e089..b820c57c 100644
--- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs
+++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs
@@ -440,7 +440,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr
var erroneousSequenceStep = false;
var warningSequenceStep = false;
var statusReturn = CheckKitronRadioSignalLevels(out feedbackMsg);
-
+
if (StatusReturn.Failed == statusReturn)
{
ErrorMsgDispatcher(feedbackMsg);
@@ -448,7 +448,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr
// Do not return immediately to avoid multiple special-requirements on multiple errors
erroneousSequenceStep = true;
}
- if (StatusReturn.Skipped == statusReturn)
+ if (StatusReturn.Warning == statusReturn)
{
WarningMsgDispatcher(feedbackMsg);
warningSequenceStep = true;
diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs
index 0e2f084f..69eb76c5 100644
--- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs
+++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs
@@ -486,11 +486,17 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener
return StatusReturn.Failed;
}
- // The NA region has no radio or radio check should be ignored
- if (meter.Region.Equals("NA") || skipRadioCheck)
+ // The NA region has no radio
+ if (meter.Region.Equals("NA"))
{
return StatusReturn.Skipped;
}
+ // The radio check should be ignored
+ if (skipRadioCheck)
+ {
+ feedbackMsg = Resources.StrSkippedMsgRadioCheckSpecialPermission;
+ return StatusReturn.Warning;
+ }
var pressureSensorAssembled =
meter.PressureSensorAssembled ? $", {Resources.StrLblPressureSensorAssembledTxt}" : "";
var meterInfo = $"{Resources.StrLblRadioFrequencyTxt}: {meter.RadioFrequencyMhz} MHz," +
diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs
index ab00e7d3..36b539c8 100644
--- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs
+++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs
@@ -264,7 +264,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki
// Do not return immediately to avoid multiple special-requirements on multiple errors
erroneousSequenceStep = true;
}
- else if (StatusReturn.Skipped == statusReturn)
+ else if (StatusReturn.Warning == statusReturn)
{
WarningMsgDispatcher(feedbackMsg);
warningSequenceStep = true;