GenesisMeter: - avoid registers of uninstalled apps,
ProductionUiCordonel: - temporary removed 'reboot counter check', RegisterRestorer: -modified _excludedFromReadParameters
This commit is contained in:
parent
639aee89bb
commit
933d18d534
@ -13,4 +13,4 @@ using System.Reflection;
|
||||
//
|
||||
//[assembly: AssemblyVersion("1.2.*.0")]
|
||||
|
||||
[assembly: AssemblyVersion("2.8.14.*")]
|
||||
[assembly: AssemblyVersion("2.8.15.*")]
|
||||
|
||||
@ -1648,6 +1648,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
/// <remarks date="2025-Dec-09" author="Thomas Wiedebusch">
|
||||
/// - Excluded register versions explicit specified in the 'configuration.json' as version.exclude list.
|
||||
/// </remarks>
|
||||
/// <remarks date="2025-Dec-16" author="Thomas Wiedebusch">
|
||||
/// - Excluded all registers from apps which are NOT installed (isInstalled == false).
|
||||
/// </remarks>
|
||||
public void BuildValidMeterRegisters(List<KeyValuePair<RegisterDefinition, Byte[]>> tempConfigRegisters)
|
||||
{
|
||||
if (tempConfigRegisters == null || tempConfigRegisters.Count == 0)
|
||||
@ -1668,7 +1671,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
foreach (var registerToCheck in tempConfigRegisters)
|
||||
{
|
||||
if (registerToCheck.Key?.RegisterDetail?.Version == null ||
|
||||
MeterAppListVersion.All(f => f.AppId != registerToCheck.Key.AppAddress))
|
||||
MeterAppListVersion.All(f => f.AppId != registerToCheck.Key.AppAddress || !f.IsInstalled))
|
||||
continue;
|
||||
|
||||
var currentGroup = MeterAppListVersion.First(f => f.AppId == registerToCheck.Key.AppAddress);
|
||||
|
||||
@ -274,13 +274,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
/// </summary>
|
||||
private static readonly List<String> _excludedFromReadParameters = new List<String>
|
||||
{
|
||||
"CUSTOMER_InternalLoginTest", // Does NOT respond
|
||||
"CUSTOMER_InternalLoginTest", //TODO THW check again which FW is impacted - Does NOT respond
|
||||
"CUSTOMER_AlarmVisualAutoClearMask", // Does NOT respond
|
||||
"SYSTEM_CRC", // Needs application number written to it
|
||||
"SYSTEM_CRC32", // Needs application number written to it
|
||||
"SYSTEM_ExitReason", // Needs application number written to it
|
||||
"SYSTEM_DriveCapacity", // Needs drive number written to it
|
||||
"GENESISFLOW_TriggerActive", // Does NOT respond
|
||||
"GENESISFLOW_TriggerActive", //TODO THW check again which FW is impacted - Does NOT respond
|
||||
"SENSUSRADIO_CurrentLoopMax", // Does NOT respond
|
||||
"SENSUSRADIO_CurrentLoopSource", // Does NOT respond
|
||||
"SENSUSRADIO_CustomerText", // Does NOT respond
|
||||
|
||||
@ -17806,7 +17806,7 @@
|
||||
},
|
||||
"values": {
|
||||
"default": 206906379,
|
||||
"minimum": 201344787,
|
||||
"minimum": 3,
|
||||
"maximum": 4294967295
|
||||
},
|
||||
"statictype": "infrequentlyupdated",
|
||||
@ -18099,7 +18099,7 @@
|
||||
},
|
||||
"values": {
|
||||
"default": 206906379,
|
||||
"minimum": 201344787,
|
||||
"minimum": 3,
|
||||
"maximum": 4294967295
|
||||
},
|
||||
"statictype": "infrequentlyupdated",
|
||||
@ -21744,7 +21744,7 @@
|
||||
},
|
||||
"values": {
|
||||
"default": 206906379,
|
||||
"minimum": 201344787,
|
||||
"minimum": 3,
|
||||
"maximum": 4294967295
|
||||
},
|
||||
"statictype": "infrequentlyupdated",
|
||||
@ -22011,7 +22011,7 @@
|
||||
},
|
||||
"values": {
|
||||
"default": 206906379,
|
||||
"minimum": 201344787,
|
||||
"minimum": 3,
|
||||
"maximum": 4294967295
|
||||
},
|
||||
"statictype": "infrequentlyupdated",
|
||||
|
||||
@ -40,6 +40,9 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener
|
||||
/// <remarks date="2025-Nov-18" author="Thomas Wiedebusch">
|
||||
/// - Threshold for allowed reboots to detect erroneous hardware.
|
||||
/// </remarks>
|
||||
/// <remarks date="2025-Dec-15" author="Thomas Wiedebusch">
|
||||
/// - Reboot counter temporary deactivated with WARNING.
|
||||
/// </remarks>
|
||||
public override StatusReturn ExecuteProcess()
|
||||
{
|
||||
Boolean retVal;
|
||||
@ -70,14 +73,16 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener
|
||||
// Read reboot count and compare with hardcoded maximum value
|
||||
var rebootCount =
|
||||
RegisterConverter.ByteArrayToValue<UInt32>(Meter.ReadRegister("CUSTOMER_RebootCount"));
|
||||
if (rebootCount > MeterResetPsu.MAX_REBOOTS_FOR_HEALTHY_HW)
|
||||
{
|
||||
ErrorMsgDispatcher(Resources.StrErrorMsgTooManyReboots +
|
||||
$" - {Resources.StrProcessStateAllowed}: {MeterResetPsu.MAX_REBOOTS_FOR_HEALTHY_HW}" +
|
||||
$" - {Resources.StrProcessStateDetected}: {rebootCount}");
|
||||
return StatusReturn.Failed;
|
||||
}
|
||||
//TODO THW reactivate for REBOOT Ctr check
|
||||
//if (rebootCount > MeterResetPsu.MAX_REBOOTS_FOR_HEALTHY_HW)
|
||||
//{
|
||||
// ErrorMsgDispatcher(Resources.StrErrorMsgTooManyReboots +
|
||||
// $" - {Resources.StrProcessStateAllowed}: {MeterResetPsu.MAX_REBOOTS_FOR_HEALTHY_HW}" +
|
||||
// $" - {Resources.StrProcessStateDetected}: {rebootCount}");
|
||||
// return StatusReturn.Failed;
|
||||
//}
|
||||
|
||||
WarningMsgDispatcher(Resources.StrWarningRebbotCounterCheckSkipped);
|
||||
// If interface is outdated
|
||||
if (!Meter.InterfaceSupportsFwVersion)
|
||||
{
|
||||
|
||||
@ -2642,5 +2642,14 @@ namespace Xylem.Common.Production.ProductionUiCordonel.Properties {
|
||||
return ResourceManager.GetString("StrWarningMsgServiceSirtSkipped", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to WARNING: Reboot counter check skipped.
|
||||
/// </summary>
|
||||
internal static string StrWarningRebbotCounterCheckSkipped {
|
||||
get {
|
||||
return ResourceManager.GetString("StrWarningRebbotCounterCheckSkipped", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -681,9 +681,12 @@
|
||||
</data>
|
||||
<data name="StrWarningMsgProcess" xml:space="preserve">
|
||||
<value>WARNUNG: Ergebnis muß überprüft werden! Prozeß </value>
|
||||
</data>
|
||||
<data name="StrWarningRebbotCounterCheckSkipped" xml:space="preserve">
|
||||
<value>WARNUNG: Hardwareneustartüberprüfung (Reboot) ausgelassen</value>
|
||||
</data>
|
||||
<data name="StrErrorMsgTooManyReboots" xml:space="preserve">
|
||||
<value>FEHLER: Hardwareneustarts über der erlaubten Grenze</value>
|
||||
<value>FEHLER: Hardwareneustarts (Reboot) über der erlaubten Grenze</value>
|
||||
</data>
|
||||
<data name="StrErrorMsgCsdBlocked" xml:space="preserve">
|
||||
<value>FEHLER: CSD ist für die Production gesperrt</value>
|
||||
|
||||
@ -681,6 +681,9 @@
|
||||
</data>
|
||||
<data name="StrWarningMsgProcess" xml:space="preserve">
|
||||
<value>WARNING: Result needs inspection! Process</value>
|
||||
</data>
|
||||
<data name="StrWarningRebbotCounterCheckSkipped" xml:space="preserve">
|
||||
<value>WARNING: Reboot counter check skipped</value>
|
||||
</data>
|
||||
<data name="StrErrorMsgTooManyReboots" xml:space="preserve">
|
||||
<value>ERROR: Hardware reboots higher than allowed threshold</value>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user