CUST: - FwUpdateSw: - communication problems at app detection
This commit is contained in:
parent
7526894cea
commit
8cc64f9a8c
@ -124,7 +124,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reading registers after update.
|
||||
/// Looks up a localized string similar to Reading registers after maintenance.
|
||||
/// </summary>
|
||||
internal static string StrReadRegistersAfterUpdate {
|
||||
get {
|
||||
@ -133,7 +133,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reading registers before update.
|
||||
/// Looks up a localized string similar to Reading registers before maintenance.
|
||||
/// </summary>
|
||||
internal static string StrReadRegistersBeforeUpdate {
|
||||
get {
|
||||
|
||||
@ -148,10 +148,10 @@
|
||||
<value>Schreibe Register</value>
|
||||
</data>
|
||||
<data name="StrReadRegistersBeforeUpdate" xml:space="preserve">
|
||||
<value>Lese Register vor dem Firmware Update</value>
|
||||
<value>Lese Register vor der Wartung</value>
|
||||
</data>
|
||||
<data name="StrReadRegistersAfterUpdate" xml:space="preserve">
|
||||
<value>Lese Register nach dem Firmware Update</value>
|
||||
<value>Lese Register nach der Wartung</value>
|
||||
</data>
|
||||
<data name="StrRegisterRecoveryExec" xml:space="preserve">
|
||||
<value>Ausführung Konfigurationswiederherstellungssequenz....</value>
|
||||
|
||||
@ -139,10 +139,10 @@
|
||||
<value>Scan port</value>
|
||||
</data>
|
||||
<data name="StrReadRegistersAfterUpdate" xml:space="preserve">
|
||||
<value>Reading registers after update</value>
|
||||
<value>Reading registers after maintenance</value>
|
||||
</data>
|
||||
<data name="StrReadRegistersBeforeUpdate" xml:space="preserve">
|
||||
<value>Reading registers before update</value>
|
||||
<value>Reading registers before maintenance</value>
|
||||
</data>
|
||||
<data name="StrRegisterCompare" xml:space="preserve">
|
||||
<value>Compare register</value>
|
||||
|
||||
@ -359,28 +359,19 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
{
|
||||
CompareMeterAppWithFileApp(meterApp);
|
||||
}
|
||||
if (!_genesisMeter.IsLoggedOn)
|
||||
{
|
||||
_genesisMeter.ReLogin();
|
||||
//set display code to up to date if not needed to be installed or up to date
|
||||
_genesisMeter.SetProcessState(_genesisMeter.MeterAppListVersion.All(
|
||||
f => f.Status == MeterAppState.MeterAppUpToDate ||
|
||||
f.Status == MeterAppState.MeterAppNotRequired )
|
||||
? DisplayCodes.FwUpToDate
|
||||
: DisplayCodes.FwUpdateFailed, false);
|
||||
_genesisMeter.Logout();
|
||||
}
|
||||
else
|
||||
{
|
||||
//set display code to up to date if not needed to be installed or up to date
|
||||
_genesisMeter.SetProcessState(_genesisMeter.MeterAppListVersion.All(
|
||||
f => f.Status == MeterAppState.MeterAppUpToDate ||
|
||||
f.Status == MeterAppState.MeterAppNotRequired )
|
||||
? DisplayCodes.FwUpToDate
|
||||
: DisplayCodes.FwUpdateFailed, false);
|
||||
}
|
||||
|
||||
|
||||
//remind the login status to logout if not logged in here
|
||||
var wasLoggedOn = _genesisMeter.IsLoggedOn;
|
||||
|
||||
_genesisMeter.ReLogin();
|
||||
//set display code to up to date if not needed to be installed or up to date
|
||||
_genesisMeter.SetProcessState(_genesisMeter.MeterAppListVersion.All(
|
||||
f => f.Status == MeterAppState.MeterAppUpToDate ||
|
||||
f.Status == MeterAppState.MeterAppNotRequired)
|
||||
? DisplayCodes.FwUpToDate
|
||||
: DisplayCodes.FwUpdateFailed, false);
|
||||
|
||||
if (!wasLoggedOn) _genesisMeter.Logout();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -1 +1 @@
|
||||
8fbe991b217e7692af4817ad205b768685aa5a72
|
||||
bf6bb8fceb3db5a9977dadc407cf576684bf7127
|
||||
|
||||
@ -4,4 +4,10 @@
|
||||
<Assembly Path="D:\Projekte\SENSUS_tfs_workspaces\WorkBenchV2\Main\ServiceFwUpdate\packages\NLog.4.7.8\lib\net45\NLog.dll" />
|
||||
</AssemblyExplorer></s:String>
|
||||
<s:String x:Key="/Default/Environment/Hierarchy/Build/SolBuilderDuo/UseMsbuildSolutionBuilder/@EntryValue">NewVersion</s:String>
|
||||
<s:Boolean x:Key="/Default/Housekeeping/ProjectModelSynchronizer/ProjectPathsToLoadFromDisk/=_002E_002E_005CCommon_005CUtils_005CProcessExec_005CProcessExec_002Eshproj/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
<s:Boolean x:Key="/Default/Housekeeping/ProjectModelSynchronizer/ProjectPathsToLoadFromDisk/=_002E_002E_005CCommon_005CUtils_005CProcessExec_005CProcessExec_002Eshproj/@EntryIndexedValue">True</s:Boolean>
|
||||
|
||||
|
||||
|
||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=ServiceFwUpdate_002FUi_002FServiceFwUpdateSw_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/ShowOnlyErrors/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
@ -529,6 +529,15 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ERROR: Firmware update failed!.
|
||||
/// </summary>
|
||||
internal static string StrFwUpdateFailed {
|
||||
get {
|
||||
return ResourceManager.GetString("StrFwUpdateFailed", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Firmware is up to date!.
|
||||
/// </summary>
|
||||
|
||||
@ -691,4 +691,7 @@
|
||||
<data name="StrCordonelCommunicationFailed" xml:space="preserve">
|
||||
<value>ERROR: Communication problems!</value>
|
||||
</data>
|
||||
<data name="StrFwUpdateFailed" xml:space="preserve">
|
||||
<value>ERROR: Firmware update failed!</value>
|
||||
</data>
|
||||
</root>
|
||||
@ -1041,6 +1041,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// <remarks date="2021-Jun-30" author="Thomas Wiedebusch">
|
||||
/// - MeterAppState.FileAppInvalid changed from _styleDownloadOngoing to _styleNotInstalled
|
||||
/// </remarks>
|
||||
/// <remarks date="2024-Apr-23" author="Thomas Wiedebusch">
|
||||
/// - New style for communication error
|
||||
/// </remarks>
|
||||
private void UpdateInformationStyleSet()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
@ -1056,6 +1059,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
|
||||
switch (meterAppState)
|
||||
{
|
||||
case MeterAppState.MeterAppInstalledUnchecked:
|
||||
dataGridRow.DefaultCellStyle = _styleInstalled;
|
||||
break;
|
||||
case MeterAppState.MeterAppUpToDate:
|
||||
dataGridRow.DefaultCellStyle = _styleValidated;
|
||||
break;
|
||||
@ -1074,6 +1080,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
case MeterAppState.MeterAppNotInstalled:
|
||||
dataGridRow.DefaultCellStyle = _styleNotInstalled;
|
||||
break;
|
||||
case MeterAppState.MeterAppNotRequired:
|
||||
dataGridRow.DefaultCellStyle = _styleNotInstalled;
|
||||
break;
|
||||
case MeterAppState.InvalidCrc:
|
||||
dataGridRow.DefaultCellStyle = _styleInvalidMeterCrc;
|
||||
break;
|
||||
@ -1122,14 +1131,14 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// - Removed information like region and size of fw update package from name of package,
|
||||
/// - Added check for null of FwPackage info, binary content and description file.
|
||||
/// </remarks>
|
||||
/// <remarks date="2024-Apr-24" author="Thomas Wiedebusch">
|
||||
/// - Update app installation status.
|
||||
/// </remarks>
|
||||
private void LoadUpdateFiles(ProcessState successExitState, ProcessState errorExitState = ProcessState.Error)
|
||||
{
|
||||
// remind the invoker being able to generate error messages based on the last state
|
||||
_invokerProcessState = _processState;
|
||||
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
if (_meterFwUpdate == null)
|
||||
_meterFwUpdate = new MeterFwUpdate(_currentGenesis);
|
||||
_binaryPackageLoaded = false;
|
||||
@ -1179,6 +1188,11 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
|
||||
if (_meterFwUpdate.LoadFileApps(fileApps))
|
||||
{
|
||||
// Check status of installed applications
|
||||
_meterFwUpdate.AssignGenesis(_currentGenesis);
|
||||
_meterFwUpdate.CompareAllMeterAndFileApps();
|
||||
FillDataGridWithAllInfos();
|
||||
|
||||
_binaryPackageLoaded = true;
|
||||
_processState = successExitState;
|
||||
break;
|
||||
@ -1323,15 +1337,19 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
// remind the invoker being able to generate error messages based on the last state
|
||||
_invokerProcessState = _processState;
|
||||
|
||||
_meterFwUpdate?.AssignGenesis(_currentGenesis);
|
||||
_meterFwUpdate?.CompareAllMeterAndFileApps();
|
||||
|
||||
FillDataGridWithAllInfos();
|
||||
//// Check status of installed applications
|
||||
//_meterFwUpdate?.AssignGenesis(_currentGenesis);
|
||||
//_meterFwUpdate?.CompareAllMeterAndFileApps();
|
||||
//FillDataGridWithAllInfos();
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
// check if apps are marked as status unknown due to communication error
|
||||
var allAppsDetected = AllAppsDetected();
|
||||
|
||||
if (_invokerProcessState == ProcessState.CheckUpdateRequest)
|
||||
{
|
||||
if (!CheckPackageFileAndFileApps())
|
||||
@ -1342,17 +1360,16 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AllAppsDetected())
|
||||
if (!allAppsDetected)
|
||||
{
|
||||
_processState = errorExitState;
|
||||
// overwrite the invoker state to create a message
|
||||
_invokerProcessState = ProcessState.CheckCommunication;
|
||||
_processState = errorExitState;
|
||||
// overwrite the invoker state to create a message
|
||||
_invokerProcessState = ProcessState.CheckCommunication;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// check if apps are marked as status unknown due to communication error
|
||||
var allAppsDetected = AllAppsDetected();
|
||||
if (allAppsDetected)
|
||||
{
|
||||
if (!_currentGenesis.MeterAppListVersion.Any(f => f.Update) &&
|
||||
@ -1429,9 +1446,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// </remarks>
|
||||
private Boolean CoreRevisionValid()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
// check the update capability
|
||||
if (MeterFwUpdateCapability.CheckCoreRevision(_meterFwUpdate, _currentGenesis.CoreRevision))
|
||||
{
|
||||
@ -1468,9 +1482,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// </remarks>
|
||||
private Boolean MetrologyUpdateCapability()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
// check the update capability
|
||||
if (MeterFwUpdateCapability.CheckMetrology(_meterFwUpdate, _currentGenesis))
|
||||
{
|
||||
@ -1492,9 +1503,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// </remarks>
|
||||
private Boolean AllAppsDetected()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
// check the update capability
|
||||
if (_currentGenesis.MeterAppListVersion.All(f => f.Status != MeterAppState.Unknown))
|
||||
return true;
|
||||
@ -1529,9 +1537,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// </remarks>
|
||||
private Boolean RegionRadioUpdateCapability()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
var retVal = true;
|
||||
|
||||
// extract the package information
|
||||
@ -1604,9 +1609,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// </remarks>
|
||||
private Boolean MeterSizeUpdateCapability()
|
||||
{
|
||||
Thread.CurrentThread.CurrentUICulture = _cultureInfo;
|
||||
Thread.CurrentThread.CurrentCulture = _cultureInfo;
|
||||
|
||||
var retVal = true;
|
||||
|
||||
// extract the package information
|
||||
@ -2808,6 +2810,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// <remarks date="2023-Nov-29" author="Thomas Wiedebusch">
|
||||
/// - If LUT restore generates an error all processes have to be stopped as the meter is NOT functional.
|
||||
/// </remarks>
|
||||
/// <remarks date="2024-Apr-24" author="Thomas Wiedebusch">
|
||||
/// - COmmunication error on app detection.
|
||||
/// </remarks>
|
||||
private void ErrorProcesses()
|
||||
{
|
||||
SetOverallProgressDisplayOff();
|
||||
@ -2908,6 +2913,7 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
case ProcessState.CheckFwUpdateSuccess:
|
||||
msg = Resources.StrFirmwareUpdateFailed;
|
||||
ErrorProcessCommon(msg);
|
||||
InfoProcessFailed(lblCordonelUpdateCapability, Resources.StrFwUpdateFailed);
|
||||
_processState = ProcessState.ReleaseMeterToNormalOperation;
|
||||
break;
|
||||
case ProcessState.CheckCoreRevision:
|
||||
@ -3268,7 +3274,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
// Check status of installed applications
|
||||
_meterFwUpdate?.CompareAllMeterAndFileApps();
|
||||
|
||||
|
||||
_processState = _currentGenesis.IsLoggedOn ? successExitState : errorExitState;
|
||||
|
||||
// change first the process state, otherwise the timer may switch the bar on again
|
||||
@ -3682,6 +3687,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
/// <remarks date="2024-Feb-20" author="Thomas Wiedebusch">
|
||||
/// - Changed program flow.
|
||||
/// </remarks>
|
||||
/// <remarks date="2024-Apr-24" author="Thomas Wiedebusch">
|
||||
/// - Update app information on new connect.
|
||||
/// </remarks>
|
||||
private Boolean LoginAndSpecialSetupProcedure(String password)
|
||||
{
|
||||
Boolean retVal;
|
||||
@ -3727,8 +3735,6 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
// Second login if initial was executed including reading out all installed applications
|
||||
retVal = _currentGenesis.Login(password);
|
||||
|
||||
FillDataGridWithAllInfos();
|
||||
|
||||
// Set radio to customer mode (encryption active)
|
||||
if (_initialConnect && retVal )
|
||||
{
|
||||
@ -3750,6 +3756,11 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw
|
||||
// display to normal operation and stores the setup permanently
|
||||
retVal = ReleaseDisplayAndSwitchLedOff();
|
||||
|
||||
// Check status of installed applications
|
||||
_meterFwUpdate?.AssignGenesis(_currentGenesis);
|
||||
_meterFwUpdate?.CompareAllMeterAndFileApps();
|
||||
FillDataGridWithAllInfos();
|
||||
|
||||
return retVal;
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
@ -689,6 +689,9 @@
|
||||
<value>WARNUNG: Konfiguration unvollständig!</value>
|
||||
</data>
|
||||
<data name="StrCordonelCommunicationFailed" xml:space="preserve">
|
||||
<value>FEHLER: Kommunikationsprobleme!</value>
|
||||
<value>FEHLER: Kommunikationsproblem!</value>
|
||||
</data>
|
||||
<data name="StrFwUpdateFailed" xml:space="preserve">
|
||||
<value>FEHLER: Firmware Update fehlgeschlagen!</value>
|
||||
</data>
|
||||
</root>
|
||||
@ -117,6 +117,11 @@
|
||||
<DependentUpon>FrmServiceFwUpdateSw.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.de.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.de.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="FrmHistory.de.resx">
|
||||
<DependentUpon>FrmHistory.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -132,11 +137,6 @@
|
||||
<DependentUpon>FrmServiceFwUpdateSw.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.de.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.de1.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@ -145,6 +145,11 @@
|
||||
<Content Include="NLog.config">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Properties\Resources.de.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.de.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="NLog.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user