Merge branch 'main' of https://slm.sms-esaap.com/la_operations/laa_production
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using LaaPackages.Features.Cordonel.Models;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -108,21 +109,63 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
_currentGenesis = ((GenesisMeter)me);
|
||||
|
||||
var genesisStatus = new GenesisStatus();
|
||||
//TODO Roland: Check this implementation --- START
|
||||
if (_currentGenesis.Region.Equals("EMEA"))
|
||||
{
|
||||
genesisStatus.QuiescentCurrent_uA = 119.8;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
genesisStatus.QuiescentCurrent_uA = 77.7;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
}
|
||||
if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out _))
|
||||
{
|
||||
var requirements = new CordonelRequirements();
|
||||
var sbMSG = new StringBuilder();
|
||||
|
||||
var sbMSG = new StringBuilder();
|
||||
if (!GenesisStatusHandler.GetCordonelRequirementInfoFromDb($"{_currentGenesis.PcbId}", requirements, out var error))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(error))
|
||||
{
|
||||
sbMSG.AppendLine(error);
|
||||
}
|
||||
|
||||
var size = RegisterConverter.ByteArrayToValue<int>(
|
||||
_currentGenesis.ReadRegister(Register.Genesisflow.MeterSize));
|
||||
|
||||
if (!GenesisStatusHandler.GetCordonelRequirementInfoFromDbByMeterSize(size, requirements, out error))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(error))
|
||||
{
|
||||
sbMSG.AppendLine(error);
|
||||
}
|
||||
|
||||
requirements = new CordonelRequirements
|
||||
{
|
||||
QuiescentCurrent_uA = 119.8,
|
||||
EstimatedProductionBatteryLoadPercent = 1,
|
||||
RequiredLifeTimeYearsAssembly = 22,
|
||||
MaxDrainedBatteryLoadPercentAssembly = 4,
|
||||
MaxStorageMonths = 5
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
sbMSG.AppendLine($"Standard requirement: {requirements.StandardId}.{requirements.StandardVersion}");
|
||||
sbMSG.AppendLine($"Special requirement: {requirements.SpecialId}.{requirements.SpecialVersion}");
|
||||
sbMSG.AppendLine();
|
||||
|
||||
//if (GenesisStatusHandler.GetCordonelRequirementInfoFromDb($"{_currentGenesis.PcbId}", requirements, out var error))
|
||||
//{
|
||||
genesisStatus.QuiescentCurrent_uA = requirements.QuiescentCurrent_uA;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = requirements.EstimatedProductionBatteryLoadPercent;
|
||||
//}
|
||||
////TODO Roland: Check this implementation --- START
|
||||
//else if (_currentGenesis.Region.Equals("EMEA"))
|
||||
//{
|
||||
// genesisStatus.QuiescentCurrent_uA = 119.8;
|
||||
// genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// genesisStatus.QuiescentCurrent_uA = 77.7;
|
||||
// genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
//}
|
||||
|
||||
if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out var message))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(message))
|
||||
MessageBox.Show(message);
|
||||
|
||||
sbMSG.AppendLine($"Pcb = {_currentGenesis.PcbId}");
|
||||
|
||||
sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}");
|
||||
@@ -135,33 +178,117 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
sbMSG.AppendLine($"Totally drained battery load in %: {genesisStatus.DrainedBatteryLoadPercent:F2}");
|
||||
sbMSG.AppendLine("");
|
||||
|
||||
var hasFehlern = false;
|
||||
|
||||
|
||||
// + RemainingLifeTimeYears
|
||||
|
||||
// restlaufzeit monate - RequiredLifeTimeYearsAssembly
|
||||
if (genesisStatus.RemainingLifeTimeYears < requirements.RequiredLifeTimeYearsAssembly)
|
||||
{
|
||||
hasFehlern = true;
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.RemainingLifeTimeYears)}: " +
|
||||
$"{genesisStatus.RemainingLifeTimeYears} < " +
|
||||
$"{requirements.RequiredLifeTimeYearsAssembly}");
|
||||
}
|
||||
else sbMSG.AppendLine($"Restlaufzeit i.O.");
|
||||
|
||||
|
||||
|
||||
|
||||
// + AlternativeRequiredBatteryLoadPercent
|
||||
if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null &&
|
||||
genesisStatus.AlternativeRequiredBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly)
|
||||
{
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.AlternativeRequiredBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.AlternativeRequiredBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}");
|
||||
hasFehlern = true;
|
||||
}
|
||||
else sbMSG.AppendLine($"Alternative Batterieverbrauch Montage i.O.");
|
||||
// max bat verbrauch - MaxDrainedBatteryLoadPercentAssembly
|
||||
|
||||
// + DrainedBatteryLoadPercent
|
||||
if (genesisStatus.DrainedBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly)
|
||||
{
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.DrainedBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.DrainedBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}");
|
||||
hasFehlern = true;
|
||||
}
|
||||
else sbMSG.AppendLine($"Maximaler Batterieverbrauch Montage i.O.");
|
||||
|
||||
|
||||
// + StorageMonths
|
||||
// lagerzeit - MaxStorageMonths
|
||||
if (genesisStatus.StorageMonths > requirements.MaxStorageMonths)
|
||||
{
|
||||
hasFehlern = true;
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.StorageMonths)}: " +
|
||||
$"{genesisStatus.StorageMonths} > " +
|
||||
$"{requirements.MaxStorageMonths}");
|
||||
}
|
||||
|
||||
else sbMSG.AppendLine($"Maximallagerzeit i.O.");
|
||||
|
||||
//// strom verbrauch - QuiescentCurrent_uA
|
||||
//if (genesisStatus.QuiescentCurrent_uA > requirements.QuiescentCurrent_uA)
|
||||
//{
|
||||
// hasFehlern = true;
|
||||
// sbMSG.AppendLine($"{nameof(genesisStatus.QuiescentCurrent_uA)}: " +
|
||||
// $"{genesisStatus.QuiescentCurrent_uA} > " +
|
||||
// $"{requirements.QuiescentCurrent_uA}");
|
||||
//} // max bat verbrauch prod - EstimatedProductionBatteryLoadPercent
|
||||
//else sbMSG.AppendLine($"Stromverbrauch i.O.");
|
||||
//if (genesisStatus.EstimatedProductionBatteryLoadPercent > requirements.EstimatedProductionBatteryLoadPercent)
|
||||
//{
|
||||
// sbMSG.AppendLine($"{nameof(genesisStatus.EstimatedProductionBatteryLoadPercent)}: " +
|
||||
// $"{genesisStatus.EstimatedProductionBatteryLoadPercent} > " +
|
||||
// $"{requirements.EstimatedProductionBatteryLoadPercent}");
|
||||
// // TODO error
|
||||
// hasFehlern = true;
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//else sbMSG.AppendLine($"Maximaler Batterieverbrauch Produktion i.O.");
|
||||
|
||||
//if (_currentGenesis.Region == "NA")
|
||||
//{
|
||||
//if (genesisStatus.UNTStatus)
|
||||
// This is the limit given by the "AlternativeRequiredBatteryLoadPercent"
|
||||
if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null &&
|
||||
genesisStatus.DrainedBatteryLoadPercent < genesisStatus.AlternativeRequiredBatteryLoadPercent)
|
||||
{
|
||||
sbMSG.AppendLine($"{_currentGenesis.Region} limit OK ");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbMSG.AppendLine($"{_currentGenesis.Region} limit Failed ");
|
||||
}
|
||||
//sbMSG.AppendLine($"UNT Limit data Limit {genesisStatus.UNTLimit} Meter has {genesisStatus.DrainedBatteryLoad_uAs}");
|
||||
sbMSG.AppendLine($"Maximum drained battery load: {genesisStatus.AlternativeRequiredBatteryLoadPercent} %");
|
||||
sbMSG.AppendLine($"Meter reports drained battery load: {genesisStatus.DrainedBatteryLoadPercent} %");
|
||||
//if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null &&
|
||||
// genesisStatus.DrainedBatteryLoadPercent < requirements.MaxDrainedBatteryLoadPercentAssembly)
|
||||
//{
|
||||
// sbMSG.AppendLine($"{_currentGenesis.Region} limit OK ");
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// sbMSG.AppendLine($"{_currentGenesis.Region} limit Failed ");
|
||||
//}
|
||||
////sbMSG.AppendLine($"UNT Limit data Limit {genesisStatus.UNTLimit} Meter has {genesisStatus.DrainedBatteryLoad_uAs}");
|
||||
//sbMSG.AppendLine($"Maximum drained battery load: {genesisStatus.AlternativeRequiredBatteryLoadPercent} %");
|
||||
//sbMSG.AppendLine($"Meter reports drained battery load: {genesisStatus.DrainedBatteryLoadPercent} %");
|
||||
|
||||
var preproductionLimit = genesisStatus.AlternativeRequiredBatteryLoadPercent -
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent;
|
||||
if (genesisStatus.DrainedBatteryLoadPercent < preproductionLimit)
|
||||
{
|
||||
sbMSG.AppendLine($"{_currentGenesis.Region} preproduction limit OK ");
|
||||
}
|
||||
//var preproductionLimit = genesisStatus.AlternativeRequiredBatteryLoadPercent -
|
||||
// genesisStatus.EstimatedProductionBatteryLoadPercent;
|
||||
//if (genesisStatus.DrainedBatteryLoadPercent < preproductionLimit)
|
||||
//{
|
||||
// sbMSG.AppendLine($"{_currentGenesis.Region} preproduction limit OK ");
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// sbMSG.AppendLine($"{_currentGenesis.Region} preproduction limit Failed ");
|
||||
//}
|
||||
if (hasFehlern)
|
||||
sbMSG.AppendLine($"Battery lifetime limits sind Übreschritten");
|
||||
else
|
||||
{
|
||||
sbMSG.AppendLine($"{_currentGenesis.Region} preproduction limit Failed ");
|
||||
}
|
||||
sbMSG.AppendLine($"Battery lifetime limits sind OK");
|
||||
|
||||
sbMSG.AppendLine(
|
||||
);
|
||||
sbMSG.AppendLine($"Preproduction max. drained battery load: {genesisStatus.AlternativeRequiredBatteryLoadPercent} %");
|
||||
sbMSG.AppendLine($"Meter reports drained battery load: {genesisStatus.DrainedBatteryLoadPercent} %");
|
||||
|
||||
@@ -206,12 +333,22 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
//ExceededLifeTime_s * 77.7)
|
||||
|
||||
if (hasFehlern)
|
||||
{
|
||||
|
||||
|
||||
MessageBox.Show(sbMSG.ToString(), $"Battery for {_currentGenesis.PcbId} has remaining life " +
|
||||
$"time of {genesisStatus.RemainingLifeTimeYears:F2} years");
|
||||
$"time of {genesisStatus.RemainingLifeTimeYears:F2} years", buttons:MessageBoxButtons.OK,icon:MessageBoxIcon.Error);
|
||||
} else
|
||||
{
|
||||
MessageBox.Show(sbMSG.ToString(), $"Battery for {_currentGenesis.PcbId} has remaining life " +
|
||||
$"time of {genesisStatus.RemainingLifeTimeYears:F2} years", buttons:MessageBoxButtons.OK,icon:MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Failed to get life time information");
|
||||
MessageBox.Show("Failed to get life time information",caption:null,buttons:MessageBoxButtons.OK,icon:MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,10 +356,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString());
|
||||
MessageBox.Show(text:ex.ToString(),caption:null,buttons:MessageBoxButtons.OK,icon:MessageBoxIcon.Error);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -728,6 +728,10 @@
|
||||
<Project>{26afcf1e-1287-48b8-a506-32b1e8a0dd0e}</Project>
|
||||
<Name>WaterMeterRegisters</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\LaaPackages\LaaPackages.Features.Cordonel\LaaPackages.Features.Cordonel.csproj">
|
||||
<Project>{8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}</Project>
|
||||
<Name>LaaPackages.Features.Cordonel</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Logic.PrdoctionToProductMapper\Logic.ProductionToProductMapper.csproj">
|
||||
<Project>{D0C859D9-D55E-4E85-AC50-0FF31B1CE50D}</Project>
|
||||
<Name>Logic.ProductionToProductMapper</Name>
|
||||
|
||||
Reference in New Issue
Block a user