Cordonel ReBoot with "Pseudo FW Update" PSU:
- Taking the installed FLEXNETVERSION, rebuilding it, download and reinstall it, send trigger upgrade to finalize.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Consts
|
||||
{
|
||||
/// <summary>
|
||||
/// Genesis meter reset via PSU (pseudo update) states
|
||||
/// </summary>
|
||||
public enum MeterResetPsuState
|
||||
{
|
||||
/// <summary>
|
||||
/// FW Update State Idle
|
||||
/// </summary>
|
||||
Idle,
|
||||
/// <summary>
|
||||
/// FW update single step failed
|
||||
/// </summary>
|
||||
StepFailed,
|
||||
/// <summary>
|
||||
/// Try it again
|
||||
/// </summary>
|
||||
RepeatReset,
|
||||
/// <summary>
|
||||
/// Reset failed
|
||||
/// </summary>
|
||||
ResetFailed,
|
||||
/// <summary>
|
||||
/// Reset succeeded
|
||||
/// </summary>
|
||||
ResetSucceeded,
|
||||
/// <summary>
|
||||
/// Start initial FW update
|
||||
/// </summary>
|
||||
StartInitial,
|
||||
/// <summary>
|
||||
/// Build the FLEXNETVERSION file upg18
|
||||
/// </summary>
|
||||
BuildUpgradeFile,
|
||||
/// <summary>
|
||||
/// Download upgrade file upg18
|
||||
/// </summary>
|
||||
DownloadUpgradeFile,
|
||||
/// <summary>
|
||||
/// Download upgrade file upg18
|
||||
/// </summary>
|
||||
DownloadUpgradeCtrlFile,
|
||||
/// <summary>
|
||||
/// Trigger Upgrade
|
||||
/// </summary>
|
||||
TriggerUpgrade,
|
||||
/// <summary>
|
||||
/// Delimiter for list
|
||||
/// </summary>
|
||||
ResetStateListDelimiter
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Consts
|
||||
{
|
||||
/// <summary>
|
||||
/// Concatenation of state and string
|
||||
/// </summary>
|
||||
public static class MeterResetPsuStateInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Build state information
|
||||
/// </summary>
|
||||
private static readonly MeterResetPsuStateText[] StateInfos;
|
||||
|
||||
/// <summary>
|
||||
/// Ctor
|
||||
/// </summary>
|
||||
static MeterResetPsuStateInfo()
|
||||
{
|
||||
StateInfos = new MeterResetPsuStateText[(Int32)MeterResetPsuState.ResetStateListDelimiter];
|
||||
StateInfos[0].State = MeterResetPsuState.Idle;
|
||||
StateInfos[0].Message = "";
|
||||
|
||||
StateInfos[1].State = MeterResetPsuState.StepFailed;
|
||||
StateInfos[1].Message = "Processing Step Failed";
|
||||
|
||||
StateInfos[2].State = MeterResetPsuState.RepeatReset;
|
||||
StateInfos[2].Message = "Repeat reset";
|
||||
|
||||
StateInfos[3].State = MeterResetPsuState.ResetFailed;
|
||||
StateInfos[3].Message = "Reset Failed";
|
||||
|
||||
StateInfos[4].State = MeterResetPsuState.ResetSucceeded;
|
||||
StateInfos[4].Message = "Reset succeeded";
|
||||
|
||||
StateInfos[5].State = MeterResetPsuState.StartInitial;
|
||||
StateInfos[5].Message = "Initial start";
|
||||
|
||||
StateInfos[6].State = MeterResetPsuState.BuildUpgradeFile;
|
||||
StateInfos[6].Message = "Build flexnetversion upgrade file";
|
||||
|
||||
StateInfos[7].State = MeterResetPsuState.DownloadUpgradeFile;
|
||||
StateInfos[7].Message = "Download flexnetversion upgrade file";
|
||||
|
||||
StateInfos[8].State = MeterResetPsuState.DownloadUpgradeCtrlFile;
|
||||
StateInfos[8].Message = "Download upgrade control file";
|
||||
|
||||
StateInfos[9].State = MeterResetPsuState.TriggerUpgrade;
|
||||
StateInfos[9].Message = "Trigger upgrade";
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the current information
|
||||
/// </summary>
|
||||
/// <param name="state">state to search for information text</param>
|
||||
public static String GetTextFromState(MeterResetPsuState state)
|
||||
{
|
||||
return (from stateInfo in StateInfos
|
||||
where stateInfo.State == state select stateInfo.Message).FirstOrDefault();
|
||||
}
|
||||
/// <summary>
|
||||
/// Get the state of the text
|
||||
/// </summary>
|
||||
/// <param name="text">information text to search if state is assigned</param>
|
||||
public static MeterResetPsuState GetStateFromText(String text)
|
||||
{
|
||||
return (from stateInfo in StateInfos
|
||||
where stateInfo.Message == text select stateInfo.State).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
|
||||
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Consts
|
||||
{
|
||||
/// <summary>
|
||||
/// Concatenation between lokup table update state and text
|
||||
/// </summary>
|
||||
public struct MeterResetPsuStateText
|
||||
{
|
||||
/// <summary>
|
||||
/// The state of the firmware update
|
||||
/// </summary>
|
||||
public MeterResetPsuState State;
|
||||
/// <summary>
|
||||
/// The message text of the lookup table update state
|
||||
/// </summary>
|
||||
public String Message;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user