common/Hardware/WaterMeter/Genesis/GenesisCore/PowerCorrection.cs
2026-04-23 17:50:07 +02:00

164 lines
5.0 KiB
C#

using System;
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
/// <summary>
/// Power correction parameters used for overestimated power consumption on
/// Cordonel FW update from:
/// EMEA below R1.3.x
/// NA below R2.0.07
/// </summary>
public class PowerCorrection
{
#region Data Base at EOL - Production
/// <summary>
/// Unique identification of PCB
/// </summary>
public String PcbId { get; set; }
/// <summary>
/// Date time UTC at EOL - Production
/// </summary>
public DateTime? ProductionDateTimeUtc { get; set; }
/// <summary>
/// Total used seconds at EOL - Production
/// </summary>
public UInt32 ProductionTotalUsedSeconds_s { get; set; }
/// <summary>
/// Total used charge of batteries at EOL - Production
/// </summary>
public UInt64 ProductionTotalUsedCharge_uAs { get; set; }
/// <summary>
/// Radio system state at EOL - Production
/// </summary>
public Byte? ProductionRadioSystemState { get; set; }
/// <summary>
/// Pulse adapter was installed during at EOL - Production VAKO
/// </summary>
public Boolean ProductionPulseAdapterIsInstalled { get; set; }
/// <summary>
/// Pulse mode during at EOL - Production
/// </summary>
public Byte ProductionPulseMode { get; set; }
/// <summary>
/// Pulse sequence counter during at EOL - Production
/// </summary>
public Byte ProductionPulseSequenceCounter { get; set; }
/// <summary>
/// Pulse distribution at EOL - Production
/// </summary>
public Boolean ProductionPulseEvenDistribution { get; set; }
#endregion
#region Maintenance readout
/// <summary>
/// Detected FW version before maintenance
/// </summary>
public UInt32? ActualFwVersion { get; set; }
/// <summary>
/// Date time UTC at time of maintenance
/// </summary>
public DateTime? ActualDateTimeUtc { get; set; }
/// <summary>
/// Total used seconds of entire runtime
/// </summary>
public UInt32 ActualTotalUsedSeconds_s { get; set; }
/// <summary>
/// Total used charge of batteries of entire runtime
/// </summary>
public UInt64 ActualTotalUsedCharge_uAs { get; set; }
/// <summary>
/// Actual detected radio system state at maintenance
/// </summary>
public Byte? ActualRadioSystemState { get; set; }
/// <summary>
/// Detection of pulse adapter installation
/// </summary>
public Boolean ActualPulseAdapterIsInstalled { get; set; }
/// <summary>
/// Pulse mode during maintenance
/// </summary>
public Byte ActualPulseMode { get; set; }
/// <summary>
/// Pulse sequence counter during maintenance
/// </summary>
public Byte ActualPulseSequenceCounter { get; set; }
/// <summary>
/// Pulse distribution during maintenance
/// </summary>
public Boolean ActualPulseEvenDistribution { get; set; }
/// <summary>
/// Mark pulse adapter as installed on any detected or sequence counted
/// </summary>
public Boolean PulseAdapterMarkedAsInstalled { get; set; }
/// <summary>
/// Remind battery quantity used for estimation of drained load
/// </summary>
public Int32 BatteryQuantity { get; set; }
/// <summary>
/// Remind battery initial load used for estimation of drained load
/// </summary>
public UInt32 InitialBatteryLoad_mAh { get; set; }
#endregion
#region Maintenance calculation
/// <summary>
/// FW version for the update
/// </summary>
public UInt32? RequiredFwVersion { get; set; }
/// <summary>
/// Calculated pulse report length
/// </summary>
public UInt32 PulseReportLength { get; set; }
/// <summary>
/// Total used seconds after EOL and before maintenance
/// </summary>
public UInt32 PostProductionTotalUsedSeconds_s { get; set; }
/// <summary>
/// Overestimated total used charge before maintenance
/// </summary>
public UInt64 OverestimatedTotalUsedCharge_uAs { get; set; }
/// <summary>
/// Based on fixed estimation total used charge before maintenance
/// </summary>
public UInt64 FixedEstimateTotalUsedCharge_uAs { get; set; }
/// <summary>
/// Lowest threshold for total used charge calculated during maintenance
/// </summary>
public UInt64 MinimumTotalUsedCharge_uAs { get; set; }
/// <summary>
/// Corrected total used charge during maintenance
/// </summary>
public UInt64? CorrectedTotalUsedCharge_uAs { get; set; }
#endregion
}
}