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

84 lines
3.1 KiB
C#

using System;
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus
{
/// <summary>
/// Status of Cordonel calculated out of the Cordonel readouts
/// </summary>
public class GenesisStatus
{
/// <summary>
/// Remaining lifetime for Cordonel in years based on FW calculation.
/// </summary>
public Double? FwCalculatedRemainingLifeTimeYears { get; set; }
/// <summary>
/// Remaining lifetime for Cordonel in seconds based on FW calculation.
/// </summary>
public UInt64? FwCalculatedRemainingLifeTime_s { get; set; }
/// <summary>
/// Remaining lifetime for Cordonel in years based on battery drainage.
/// </summary>
public Double RemainingLifeTimeYears { get; set; }
/// <summary>
/// Exceeded lifetime of all batteries in seconds.
/// </summary>
public UInt64 ExceededLifeTime_s { get; set; }
/// <summary>
/// Battery drainage in percent.
/// </summary>
public Double DrainedBatteryLoadPercent { get; set; }
/// <summary>
/// Number of batteries attached to Cordonel.
/// </summary>
public Int32 BatteryQuantity { get; set; }
/// <summary>
/// Initial capacity of one battery in mAh.
/// </summary>
public UInt64 InitialBatteryLoad_mAh { get; set; }
/// <summary>
/// Quiescent current used for alternative calculation of threshold for
/// maximum remaining battery load given by Cordonel requirements.
/// If this values and the <see cref="EstimatedProductionBatteryLoadPercent"/>
/// is set, this has a higher priority as the normal threshold.
/// </summary>
public Double? QuiescentCurrent_uA { get; set; }
///<summary>
///Additional allowed load for production used for alternative calculation of
/// threshold for maximum remaining battery load given by Cordonel requirements.
/// If this values and the <see cref="QuiescentCurrent_uA"/>
/// is set, this has a higher priority as the normal threshold.
/// </summary>
public Double? EstimatedProductionBatteryLoadPercent { get; set; }
/// <summary>
/// Drained capacity of all batteries in uAs.
/// </summary>
public UInt64 DrainedBatteryLoad_uAs { get; set; }
/// <summary>
/// Alternative calculation of required battery load in percent based on quiescent
/// current multiplied by operational time and supplement for production.
/// </summary>
public Double? AlternativeRequiredBatteryLoadPercent { get; internal set; }
/// <summary>
/// Battery assembly time based on the POWERMON_TotalUsedSeconds and the current time in UTC.
/// </summary>
public DateTime? BatteryAssemblyDateTimeUtc { get; internal set; }
/// <summary>
/// Calculation of storage months based on assembly time and UtcNow.
/// </summary>
public Double? StorageMonths { get; internal set; }
}
}