diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json index 9a652317..7c5d0140 100644 --- a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json @@ -1 +1,417 @@ -[{"RegisterName":"SENSUSRADIO_RadioAddress","RegisterValue":"GI6fMA==","Source":0},{"RegisterName":"SENSUSRADIO_EncryptionKey","RegisterValue":"Dp+sxqDh7xw7J6SbrCFlNQ==","Source":0},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAQ==","Source":0},{"RegisterName":"GENESISFLOW_DisplayUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_FlowUnits","RegisterValue":"AAAABA==","Source":0},{"RegisterName":"SENSUSRADIO_FrequencyIndicator","RegisterValue":"AAABsQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseMode","RegisterValue":"AAAABQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseLength","RegisterValue":"AAAACA==","Source":0},{"RegisterName":"METROLOGYASST_PressurePresent","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PulseWeight","RegisterValue":"ADDUAA==","Source":0},{"RegisterName":"SENSUSRADIO_MbusState","RegisterValue":"AAAABw==","Source":0},{"RegisterName":"SENSUSRADIO_OmTxInterval","RegisterValue":"AAAOEA==","Source":0},{"RegisterName":"SENSUSRADIO_TxInterval","RegisterValue":"AAAADw==","Source":0},{"RegisterName":"SENSUSRADIO_WakeupInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"SENSUSRADIO_LatInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"GENESISFLOW_DisplayPow10","RegisterValue":"/f///w==","Source":0},{"RegisterName":"METROLOGYASST_FlowPoint","RegisterValue":"AgAAAA==","Source":0},{"RegisterName":"CUSTOMER_AlarmEnableMask","RegisterValue":"AACAUw==","Source":1},{"RegisterName":"CUSTOMER_AlarmBroadcastMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_AlarmVisualMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_LeakTimeThreshold","RegisterValue":"AABOwA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowTimeThreshold","RegisterValue":"AAAABQ==","Source":1},{"RegisterName":"CUSTOMER_ReverseFlowTimeThreshold","RegisterValue":"AAAHCA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighThreshold","RegisterValue":"AAAB9A==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowThreshold","RegisterValue":"AAAAFA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighThreshold","RegisterValue":"ABhqAA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowThreshold","RegisterValue":"AAB1MA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureOffset","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_DataLogContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_DataLogPeriod","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"PERIODICLOG_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"SENSUSRADIO_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"PERIODICLOG_PeriodicLogLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_MetroRadioLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateReadingContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateDayOfMonth","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"POWERMON_WarnFromClamp","RegisterValue":"JZgGAA==","Source":1},{"RegisterName":"SYSTEM_UpgradePermissions","RegisterValue":"AAAA/g==","Source":1},{"RegisterName":"POWERMON_BatteryQuantity","RegisterValue":"AAAAAg==","Source":1},{"RegisterName":"GENESISFLOW_SampleRate","RegisterValue":"AAI=","Source":1},{"RegisterName":"GENESISFLOW_LedMode","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_HardErrorLimit","RegisterValue":"AAQ=","Source":1},{"RegisterName":"IRDA_PulseReportRate","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"IRDA_AdapterPresenceLimit","RegisterValue":"AAM=","Source":1},{"RegisterName":"SENSUSRADIO_OTAControlFlags","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_RebootCount","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowMaxPeriod","RegisterValue":"ADwAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowThreshold","RegisterValue":"AAAAyA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidDeltaToF","RegisterValue":"AAPGXg==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidToF","RegisterValue":"AXl8ww==","Source":1},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"GENESISFLOW_MinValidAmplitude","RegisterValue":"JYAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MinValidToF","RegisterValue":"ANG3Fw==","Source":1},{"RegisterName":"GENESISFLOW_Timeout","RegisterValue":"AAE=","Source":1},{"RegisterName":"CUSTOMER_LeakFlowThreshold","RegisterValue":"AAF3AA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowVolumeThreshold","RegisterValue":"AMNQAA==","Source":1},{"RegisterName":"CUSTOMER_AppArrangement","RegisterValue":"AAE=","Source":1},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_Locale","RegisterValue":"AAAA0A==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_HistoricalAlarmsDays","RegisterValue":"AAAAWg==","Source":1},{"RegisterName":"SENSUSRADIO_OmTxInterval","RegisterValue":"AAADhA==","Source":1},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"SENSUSRADIO_EncryptionKey","RegisterValue":"8L/KE0jHXszHydwgWg0KHQ==","Source":1},{"RegisterName":"GENESISFLOW_ArrowThreshold","RegisterValue":"HoSA","Source":1},{"RegisterName":"GENESISFLOW_StartHit","RegisterValue":"AAAABg==","Source":1},{"RegisterName":"CUSTOMER_InstallationTime","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AADqYA==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFDeviation","RegisterValue":"AAGtfw==","Source":1},{"RegisterName":"SENSUSRADIO_TemperatureMeasurePeriod","RegisterValue":"AAAAPA==","Source":1}] \ No newline at end of file +[ + { + "RegisterName": "SENSUSRADIO_RadioAddress", + "RegisterValue": "GI6fMA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_EncryptionKey", + "RegisterValue": "Dp+sxqDh7xw7J6SbrCFlNQ==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_PowerLevel", + "RegisterValue": "AAAALQ==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_PowerLevelOption", + "RegisterValue": "AAAALw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_ImpedanceCodeNew", + "RegisterValue": "AAALLQ==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_ImpedanceCodeOption", + "RegisterValue": "AAALLw==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_MeterSize", + "RegisterValue": "AAAAAQ==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_DisplayUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_FlowUnits", + "RegisterValue": "AAAABA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_FrequencyIndicator", + "RegisterValue": "AAABsQ==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseMode", + "RegisterValue": "AAAABQ==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseLength", + "RegisterValue": "AAAACA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressurePresent", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_TemperatureUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressureRate", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressureUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseWeight", + "RegisterValue": "ADDUAA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_MbusState", + "RegisterValue": "AAAABw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_OmTxInterval", + "RegisterValue": "AAAOEA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_TxInterval", + "RegisterValue": "AAAADw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_WakeupInterval", + "RegisterValue": "AAAAAw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_LatInterval", + "RegisterValue": "AAAAAw==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_DisplayPow10", + "RegisterValue": "/f///w==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_FlowPoint", + "RegisterValue": "AgAAAA==", + "Source": 0 + }, + { + "RegisterName": "CUSTOMER_AlarmEnableMask", + "RegisterValue": "AACAUw==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_AlarmBroadcastMask", + "RegisterValue": "AAAf3A==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_AlarmVisualMask", + "RegisterValue": "AAAf3A==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_LeakTimeThreshold", + "RegisterValue": "AABOwA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_ExcessFlowTimeThreshold", + "RegisterValue": "AAAABQ==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_ReverseFlowTimeThreshold", + "RegisterValue": "AAAHCA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_TemperatureHighThreshold", + "RegisterValue": "AAAB9A==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_TemperatureHighDelay", + "RegisterValue": "AAABLA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_TemperatureLowThreshold", + "RegisterValue": "AAAAFA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_TemperatureLowDelay", + "RegisterValue": "AAABLA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_PressureHighThreshold", + "RegisterValue": "ABhqAA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_PressureHighDelay", + "RegisterValue": "AAABLA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_PressureLowThreshold", + "RegisterValue": "AAB1MA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_PressureLowDelay", + "RegisterValue": "AAABLA==", + "Source": 1 + }, + { + "RegisterName": "METROLOGYASST_TemperatureUnits", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "METROLOGYASST_PressureOffset", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_DataLogContents", + "RegisterValue": "DAAkAw==", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_DataLogPeriod", + "RegisterValue": "AAAAPA==", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_AverageFlowPeriod", + "RegisterValue": "AAU=", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_AverageFlowPeriod", + "RegisterValue": "AAU=", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_PeriodicLogLifeTimeCounter", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_MetroRadioLifeTimeCounter", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_FixedDateReadingContents", + "RegisterValue": "DAAkAw==", + "Source": 1 + }, + { + "RegisterName": "PERIODICLOG_FixedDateDayOfMonth", + "RegisterValue": "AAAAAQ==", + "Source": 1 + }, + { + "RegisterName": "POWERMON_WarnFromClamp", + "RegisterValue": "JZgGAA==", + "Source": 1 + }, + { + "RegisterName": "SYSTEM_UpgradePermissions", + "RegisterValue": "AAAA/g==", + "Source": 1 + }, + { + "RegisterName": "POWERMON_BatteryQuantity", + "RegisterValue": "AAAAAg==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_SampleRate", + "RegisterValue": "AAI=", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_LedMode", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_HardErrorLimit", + "RegisterValue": "AAQ=", + "Source": 1 + }, + { + "RegisterName": "IRDA_PulseReportRate", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "IRDA_AdapterPresenceLimit", + "RegisterValue": "AAM=", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_OTAControlFlags", + "RegisterValue": "AAA=", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_RebootCount", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_LowFlowMaxPeriod", + "RegisterValue": "ADwAAA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_LowFlowThreshold", + "RegisterValue": "AAAAyA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MaxValidAmplitude", + "RegisterValue": "rwAAAA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MaxValidDeltaToF", + "RegisterValue": "AAPGXg==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MaxValidToF", + "RegisterValue": "AXl8ww==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MeterSize", + "RegisterValue": "AAAAAQ==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MinValidAmplitude", + "RegisterValue": "JYAAAA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MinValidToF", + "RegisterValue": "ANG3Fw==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_Timeout", + "RegisterValue": "AAE=", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_LeakFlowThreshold", + "RegisterValue": "AAF3AA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_ExcessFlowVolumeThreshold", + "RegisterValue": "AMNQAA==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_AppArrangement", + "RegisterValue": "AAE=", + "Source": 1 + }, + { + "RegisterName": "METROLOGYASST_PressureUnits", + "RegisterValue": "AAA=", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_Locale", + "RegisterValue": "AAAA0A==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MaxValidAmplitude", + "RegisterValue": "rwAAAA==", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_HistoricalAlarmsDays", + "RegisterValue": "AAAAWg==", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_OmTxInterval", + "RegisterValue": "AAADhA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_ForwardArrow", + "RegisterValue": "AAAAAQ==", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_EncryptionKey", + "RegisterValue": "8L/KE0jHXszHydwgWg0KHQ==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_ArrowThreshold", + "RegisterValue": "HoSA", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_StartHit", + "RegisterValue": "AAAABg==", + "Source": 1 + }, + { + "RegisterName": "CUSTOMER_InstallationTime", + "RegisterValue": "AAAAAA==", + "Source": 1 + }, + { + "RegisterName": "METROLOGYASST_PressureRate", + "RegisterValue": "AADqYA==", + "Source": 1 + }, + { + "RegisterName": "GENESISFLOW_MaxDeltaToFDeviation", + "RegisterValue": "AAGtfw==", + "Source": 1 + }, + { + "RegisterName": "SENSUSRADIO_TemperatureMeasurePeriod", + "RegisterValue": "AAAAPA==", + "Source": 1 + } +] \ No newline at end of file diff --git a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature index 0a7bcdf7..1e6f0491 100644 --- a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature +++ b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature @@ -525,7 +525,11 @@ 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 | - #--------------------------------- Define Test-Cases ------------------------------------------------------------------------- + # 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 ------------------------------------------------------------------------- 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 | diff --git a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs index 1c996a06..a358fab1 100644 --- a/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs +++ b/Common/Production/ProductionUiCordonel.UnitTests/Features/ProductionProcessCheckProductionState.feature.cs @@ -2069,6 +2069,9 @@ this.ScenarioInitialize(scenarioInfo); #line 524 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", @@ -2358,13 +2361,13 @@ this.ScenarioInitialize(scenarioInfo); "X", "Failed", "Detected kill calibrations check"}); -#line 529 +#line 533 testRunner.And("Input matrix defining the test cases and results", ((string)(null)), table30, "And "); #line hidden -#line 547 +#line 551 testRunner.When("Execute the generic tests", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); #line hidden -#line 548 +#line 552 testRunner.Then("Check the generic test results", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); #line hidden } diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs index 4906d74a..0222e089 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/CheckProductionState.cs @@ -139,7 +139,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr ActualProcessProgress++; - // Get the real content of the FW package including all binaries of each app and the application description file + // Get the real content of the FW package including all binaries of each app and the application + // description file FwUpdatePackage = new List(); if (!MeterFwUpdate.GetFwPackageFromDb((Int32)parentFileId, FwUpdatePackage, out error) || FwUpdatePackage == null) @@ -283,7 +284,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr /// - Region, /// - FW, /// - LUT CRC, - /// - Meter size + /// - Meter size, + /// - Kitron radio parameter, /// - Drained battery load versus required remaining battery load in percent, /// - Remaining run time in years, /// - Preadjustment is completed including correct values in registers, @@ -297,12 +299,13 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr /// - Adapted to new production process. /// /// - /// - Removed signals for and as - /// these will be automatically set based on return value in + /// - Removed signals for and + /// as these will be automatically set based on return value in /// . /// /// - /// - Take cordonel requirements from DB as base for checks of drained battery load and eventually special requirements. + /// - Take cordonel requirements from DB as base for checks of drained battery load and eventually special + /// requirements. /// /// /// - Get EOL progress model from DB, @@ -325,8 +328,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr /// - Changed from "StatusReturn" to "EOLStatus". /// /// - /// - Collect all requirement statuses before signalizing failed to summarize results starting with battery - /// load. + /// - Collect all requirement statuses before signalizing failed to summarize results starting with + /// battery load. /// /// /// - Check radio signal levels in parameter list. @@ -420,22 +423,6 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr ActualProcessProgress++; #endregion - #region ----------------------------------- Check Kitron Radio Signal Levels ------------------------------ - - var statusReturn = CheckKitronRadioSignalLevels(out feedbackMsg); - if (StatusReturn.Failed == statusReturn) - { - ErrorMsgDispatcher(feedbackMsg); - return StatusReturn.Failed; - } - if (StatusReturn.Okay == statusReturn) - { - SuccessMsgDispatcher(feedbackMsg); - } - - ActualProcessProgress++; - #endregion - #region ----------------------------------- Check Firmware and Apps --------------------------------------- if (string.IsNullOrEmpty(CheckFwAndApps(out feedbackMsg))) @@ -448,9 +435,34 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr ActualProcessProgress++; #endregion - #region ----------------------------------- Check Remaining Battery Load ---------------------------------- + #region ----------------------------------- Check Kitron Radio Signal Levels ------------------------------ var erroneousSequenceStep = false; + var warningSequenceStep = false; + var statusReturn = CheckKitronRadioSignalLevels(out feedbackMsg); + + if (StatusReturn.Failed == statusReturn) + { + ErrorMsgDispatcher(feedbackMsg); + //return StatusReturn.Failed; + // Do not return immediately to avoid multiple special-requirements on multiple errors + erroneousSequenceStep = true; + } + if (StatusReturn.Skipped == statusReturn) + { + WarningMsgDispatcher(feedbackMsg); + warningSequenceStep = true; + } + if (StatusReturn.Okay == statusReturn) + { + SuccessMsgDispatcher(feedbackMsg); + } + + ActualProcessProgress++; + #endregion + + #region ----------------------------------- Check Remaining Battery Load ---------------------------------- + if (EOLStatus.FAIL == CheckRemainingBatteryLoad(out feedbackMsg)) { ErrorMsgDispatcher(feedbackMsg); @@ -458,7 +470,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -472,7 +487,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -486,14 +504,16 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion #region ----------------------------------- Check Preadjusment -------------------------------------------- - var warningSequenceStep = false; eolStatus = CheckPreadjustment(out feedbackMsg); if (EOLStatus.FAIL == eolStatus) { @@ -502,12 +522,15 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - if (EOLStatus.NA == eolStatus) + else if (EOLStatus.NA == eolStatus) { WarningMsgDispatcher(feedbackMsg); warningSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -522,12 +545,15 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - if (EOLStatus.NA == eolStatus) + else if (EOLStatus.NA == eolStatus) { WarningMsgDispatcher(feedbackMsg); warningSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -545,20 +571,24 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr warningSequenceStep = true; //return StatusReturn.Skipped; } - if (StatusReturn.Failed == statusReturn) + else if (StatusReturn.Failed == statusReturn) { ErrorMsgDispatcher(feedbackMsg); //return StatusReturn.Failed; // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - if (StatusReturn.Warning == statusReturn) + else if (StatusReturn.Warning == statusReturn) { WarningMsgDispatcher(feedbackMsg); //return StatusReturn.Failed;//TODO THW return warning? erroneousSequenceStep = true; } - #endregion -------------------------------- Check Calibration Values -------------------------------------- + else + { + SuccessMsgDispatcher(feedbackMsg); + } + #endregion #region ----------------------------------- Summarize Check Results --------------------------------------- @@ -1006,7 +1036,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr /// /// - Changed from "StatusReturn" to "EOLStatus". /// - /// + /// /// - Modified for generic checks. /// private EOLStatus CheckStorageMonths(out String feedbackMsg) @@ -1017,11 +1047,16 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr ProductionStatus, out feedbackMsg)) { if (EolProgress != null) + { EolProgress.MaxStorageMonthsChecked = EOLStatus.FAIL; + EolProgress.MaxStorageMonths = ProductionRequirements.MaxStorageMonths; + } + return EOLStatus.FAIL; } EolProgress.MaxStorageMonthsChecked = EOLStatus.OK; + EolProgress.MaxStorageMonths = ProductionRequirements.MaxStorageMonths; return EOLStatus.OK; } diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs index c0894307..0e2f084f 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericModules/GenericChecks.cs @@ -472,6 +472,9 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener /// /// - Import from CheckProductionState for common use. /// + /// + /// - Extended radio parameter. + /// public static StatusReturn CheckKitronRadioSignalLevels(IGenesisMeter meter, RegisterRestorer registerRestorer, Boolean skipRadioCheck, out String feedbackMsg) { @@ -495,8 +498,11 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener $"{Resources.StrLblMeterLengthTxt}: {meter.MeterLength} mm" + $"{pressureSensorAssembled}"; // On unknown radio signal level parameters from Kitron those are not in the list of the programming parameters - if (!registerRestorer.RecoveryRegisters.Any(x => x.RegisterIdent.Equals("SENSUSRADIO_PowerLevel"))) - { + if (!registerRestorer.RecoveryRegisters.Any(x => x.RegisterIdent.Equals("SENSUSRADIO_PowerLevel")) || + !registerRestorer.RecoveryRegisters.Any(x => x.RegisterIdent.Equals("SENSUSRADIO_PowerLevelOption")) || + !registerRestorer.RecoveryRegisters.Any(x => x.RegisterIdent.Equals("SENSUSRADIO_ImpedanceCodeNew")) || + !registerRestorer.RecoveryRegisters.Any(x => x.RegisterIdent.Equals("SENSUSRADIO_ImpedanceCodeOption")) ) + { feedbackMsg = Resources.StrErrorMsgRadioSignalLevels + " " + meterInfo; return StatusReturn.Failed; } diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs index 1a0dd36d..ab00e7d3 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckProductionState.cs @@ -148,7 +148,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki /// - Region, /// - FW, /// - LUT CRC, - /// - Meter size + /// - Meter size, + /// - Kitron radio parameter, /// - Drained battery load versus required remaining battery load in percent, /// - Remaining run time in years, /// @@ -236,23 +237,6 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki ActualProcessProgress++; #endregion - #region ----------------------------------- Check Kitron Radio Signal Levels ------------------------------ - - statusReturn = GenericChecks.CheckKitronRadioSignalLevels(Meter, RegisterRestorer, - ProductionRequirements.SkipRadioCheck,out feedbackMsg); - if (StatusReturn.Failed == statusReturn) - { - ErrorMsgDispatcher(feedbackMsg); - return StatusReturn.Failed; - } - if (StatusReturn.Okay == statusReturn) - { - SuccessMsgDispatcher(feedbackMsg); - } - - ActualProcessProgress++; - #endregion - #region ----------------------------------- Check Firmware and Apps --------------------------------------- if (string.IsNullOrEmpty(GenericChecks.CheckFwAndApps(Meter, ProductionRequirements, FwUpdatePackage, @@ -266,9 +250,35 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki ActualProcessProgress++; #endregion - #region ----------------------------------- Check Remaining Battery Load ---------------------------------- + #region ----------------------------------- Check Kitron Radio Signal Levels ------------------------------ var erroneousSequenceStep = false; + var warningSequenceStep = false; + statusReturn = GenericChecks.CheckKitronRadioSignalLevels(Meter, RegisterRestorer, ProductionRequirements.SkipRadioCheck, + out feedbackMsg); + + if (StatusReturn.Failed == statusReturn) + { + ErrorMsgDispatcher(feedbackMsg); + //return StatusReturn.Failed; + // Do not return immediately to avoid multiple special-requirements on multiple errors + erroneousSequenceStep = true; + } + else if (StatusReturn.Skipped == statusReturn) + { + WarningMsgDispatcher(feedbackMsg); + warningSequenceStep = true; + } + else + { + SuccessMsgDispatcher(feedbackMsg); + } + + ActualProcessProgress++; + #endregion + + #region ----------------------------------- Check Remaining Battery Load ---------------------------------- + if (StatusReturn.Failed == GenericChecks.CheckRemainingBatteryLoad(Meter, ProductionRequirements, ProductionStatus, out feedbackMsg, true)) { @@ -277,7 +287,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -292,7 +305,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -307,7 +323,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki // Do not return immediately to avoid multiple special-requirements on multiple errors erroneousSequenceStep = true; } - SuccessMsgDispatcher(feedbackMsg); + else + { + SuccessMsgDispatcher(feedbackMsg); + } ActualProcessProgress++; #endregion @@ -318,6 +337,10 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki if (erroneousSequenceStep) return StatusReturn.Failed; + // One or more checks generated a warning + if (warningSequenceStep) + return StatusReturn.Skipped; + // Here everything went fine SuccessMsgDispatcher(feedbackMsg);