temporary implemented new battery calculations and requirements checks
This commit is contained in:
parent
66f457dc0b
commit
c0cf3e1908
@ -420,6 +420,19 @@ namespace Xylem.Common.CommonCore.Configuration
|
||||
DefaultGetCordonelRequirementInfoUrl;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get all production infos for skip process checks or limits for production like:
|
||||
/// - Battery drained percentage upper limit,
|
||||
/// - Production due date for a special register,
|
||||
/// - Required life time for assembly line,
|
||||
/// - Required life time for shipping line.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static String GetCordonelRequirementByFANrInfoServiceUrl(string ponr)
|
||||
{
|
||||
return $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/pono/{ponr}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get all applications versions installed to a specific Cordonel.
|
||||
/// </summary>
|
||||
|
||||
@ -230,6 +230,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>
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Logic.ProductionToProductMapper.Cordonel;
|
||||
using LaaPackages.Features.Cordonel.Models;
|
||||
using Logic.ProductionToProductMapper.Cordonel;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -569,10 +570,10 @@ namespace CordonelAssemblyLine.Model
|
||||
meter.SetProcessState(DisplayCodes.PickingStarted);
|
||||
var ret = RunCheck(checkAppsIdVersion, frequency, meterSize, pressurePresent, meter);
|
||||
lblS08Color = _progressWaiting;
|
||||
var sbMSG = new StringBuilder();
|
||||
|
||||
if (ret)
|
||||
{
|
||||
|
||||
|
||||
if (!meter.WriteRegister("POWERMON_BatteryQuantity", 2, true, true))
|
||||
{
|
||||
lblS08Text = "1";
|
||||
@ -582,55 +583,157 @@ namespace CordonelAssemblyLine.Model
|
||||
|
||||
meter.WriteRegister("POWERMON_StoreConfiguration", 1, true);
|
||||
|
||||
|
||||
|
||||
|
||||
var genesisStatus = new GenesisStatus();
|
||||
var requirements = new CordonelRequirements();
|
||||
|
||||
// this calculates all life time values
|
||||
if (!GenesisStatusHandler.BuildLifeTimeInformation(meter, genesisStatus, out _))
|
||||
if (GenesisStatusHandler.GetCordonelRequirementInfoFromDbByFANr(_order, requirements, out var error))
|
||||
{
|
||||
meter.WriteLog("Batterie nicht lesbar");
|
||||
lblS08Text = "Batterie nicht lesbar";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var sbMSG = new StringBuilder();
|
||||
sbMSG.AppendLine($"Pcb = {meter.PcbId}");
|
||||
genesisStatus.QuiescentCurrent_uA = requirements.QuiescentCurrent_uA;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = requirements.EstimatedProductionBatteryLoadPercent;
|
||||
|
||||
sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}");
|
||||
sbMSG.AppendLine($"POWERMON_TotalUsedCharge = {genesisStatus.DrainedBatteryLoad_uAs}");
|
||||
sbMSG.AppendLine($"POWERMON_BatteryQuantity = {genesisStatus.BatteryQuantity}");
|
||||
sbMSG.AppendLine($"POWERMON_BatteryMilliAHrRating = {genesisStatus.InitialBatteryLoad_mAh}");
|
||||
sbMSG.AppendLine("");
|
||||
sbMSG.AppendLine($"Remaining life time in years {genesisStatus.RemainingLifeTimeYears:F2}");
|
||||
sbMSG.AppendLine($"Totally drained battery load in % {genesisStatus.DrainedBatteryLoadPercent:F2}");
|
||||
|
||||
if (genesisStatus.RemainingLifeTimeYears >= 21 || genesisStatus.DrainedBatteryLoadPercent <= 1)
|
||||
if (GenesisStatusHandler.BuildLifeTimeInformation(meter, genesisStatus, out _))
|
||||
{
|
||||
lblS08Text = $"{genesisStatus.RemainingLifeTimeYears} Jahre";
|
||||
sbMSG.AppendLine($"Pcb = {meter.PcbId}");
|
||||
|
||||
sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}");
|
||||
sbMSG.AppendLine($"POWERMON_TotalUsedCharge = {genesisStatus.DrainedBatteryLoad_uAs}");
|
||||
sbMSG.AppendLine($"POWERMON_BatteryQuantity = {genesisStatus.BatteryQuantity}");
|
||||
sbMSG.AppendLine($"POWERMON_BatteryMilliAHrRating = {genesisStatus.InitialBatteryLoad_mAh}");
|
||||
sbMSG.AppendLine("");
|
||||
sbMSG.AppendLine($"Remaining life time in years {genesisStatus.RemainingLifeTimeYears:F2}");
|
||||
sbMSG.AppendLine($"Totally drained battery load in % {genesisStatus.DrainedBatteryLoadPercent:F2}");
|
||||
|
||||
//restlaufzeit monate -RequiredLifeTimeYearsAssembly
|
||||
|
||||
|
||||
var hasFehlern = false;
|
||||
|
||||
// restlaufzeit monate - RequiredLifeTimeYearsAssembly
|
||||
if (genesisStatus.RemainingLifeTimeYears < requirements.RequiredLifeTimeYearsAssembly)
|
||||
{
|
||||
lblS08Text = $"{nameof(genesisStatus.RemainingLifeTimeYears)}: " +
|
||||
$"{genesisStatus.RemainingLifeTimeYears} < " +
|
||||
$"{requirements.RequiredLifeTimeYearsAssembly}";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.RemainingLifeTimeYears)}: " +
|
||||
$"{genesisStatus.RemainingLifeTimeYears} < " +
|
||||
$"{requirements.RequiredLifeTimeYearsAssembly}");
|
||||
}
|
||||
else sbMSG.AppendLine($"Restlaufzeit i.O.");
|
||||
|
||||
|
||||
|
||||
|
||||
if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null &&
|
||||
genesisStatus.AlternativeRequiredBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly)
|
||||
{
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.AlternativeRequiredBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.AlternativeRequiredBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}");
|
||||
ret = false;
|
||||
}
|
||||
else sbMSG.AppendLine($"Alternative Batterieverbrauch Montage i.O.");
|
||||
// max bat verbrauch - MaxDrainedBatteryLoadPercentAssembly
|
||||
|
||||
if (genesisStatus.DrainedBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly)
|
||||
{
|
||||
lblS08Text = $"{nameof(genesisStatus.DrainedBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.DrainedBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.DrainedBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.DrainedBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}");
|
||||
}
|
||||
else sbMSG.AppendLine($"Maximaler Batterieverbrauch Montage i.O.");
|
||||
// lagerzeit - MaxStorageMonths
|
||||
if (genesisStatus.StorageMonths > requirements.MaxStorageMonths)
|
||||
{
|
||||
lblS08Text = $"{nameof(genesisStatus.DrainedBatteryLoadPercent)}: " +
|
||||
$"{genesisStatus.DrainedBatteryLoadPercent} > " +
|
||||
$"{requirements.MaxDrainedBatteryLoadPercentAssembly}";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
sbMSG.AppendLine($"{nameof(genesisStatus.StorageMonths)}: " +
|
||||
$"{genesisStatus.StorageMonths} > " +
|
||||
$"{requirements.MaxStorageMonths}");
|
||||
}
|
||||
|
||||
else sbMSG.AppendLine($"Maximallagerzeit i.O.");
|
||||
meter.WriteLog(sbMSG.ToString());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
{
|
||||
lblS08Text = $"{genesisStatus.RemainingLifeTimeYears} Jahre";
|
||||
meter.WriteLog("Batterie nicht lesbar");
|
||||
lblS08Text = "Batterie nicht lesbar";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
}
|
||||
if (_orderDetails.FrequencyIndicator == 0)
|
||||
{
|
||||
if ((342000000 + (genesisStatus.ExceededLifeTime_s * 77.7)) <= genesisStatus.DrainedBatteryLoad_uAs)
|
||||
{
|
||||
lblS08Text = $"UNT Limit überschritten";
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
meter.WriteLog(sbMSG.ToString());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(error)) error = "Fehler beim laden von Cordonel Freigaben";
|
||||
|
||||
|
||||
meter.WriteLog(error);
|
||||
lblS08Text = error;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lblS08Color = _progressError;
|
||||
ret = false;
|
||||
}
|
||||
|
||||
// this calculates all life time values
|
||||
}
|
||||
|
||||
if (!ret)
|
||||
sbMSG.AppendLine($"Battery lifetime limits sind Übreschritten");
|
||||
else
|
||||
sbMSG.AppendLine($"Battery lifetime limits sind OK");
|
||||
|
||||
if (_skipProcessSteps == null || !_skipProcessSteps.SkipLUT)
|
||||
{
|
||||
|
||||
|
||||
@ -101,6 +101,44 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Boolean GetCordonelRequirementInfoFromDbByFANr(String fanr, CordonelRequirements prodRequirements, out string errorMsg)
|
||||
{
|
||||
errorMsg = "";
|
||||
if (null == prodRequirements || string.IsNullOrEmpty(fanr))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var url = ServiceUrls.GetCordonelRequirementByFANrInfoServiceUrl(fanr);
|
||||
var response = LocalWebRequest.GetRequest(url, 30000, out var httpStatus);
|
||||
if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(response))
|
||||
{
|
||||
var requirements = JsonConvert.DeserializeObject<CordonelRequirements>(response);
|
||||
var type = typeof(CordonelRequirements);
|
||||
foreach (var prop in type.GetProperties())
|
||||
{
|
||||
if (prop.CanWrite)
|
||||
prop.SetValue(prodRequirements, prop.GetValue(requirements, null), null);
|
||||
}
|
||||
|
||||
// For standard requirements the order number has to be set as those are neither PcbId based
|
||||
// nor order number based
|
||||
if (prodRequirements.ProductionOrderNr == null)
|
||||
prodRequirements.ProductionOrderNr = prodRequirements.OuterProductionOrderNr;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
errorMsg = e.Message;
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the calibration results for a meter from a test-bench calibration.
|
||||
/// </summary>
|
||||
|
||||
@ -1 +1 @@
|
||||
8cb55c312de586b683d72cf58c13e2801d10e14b767777d98338d3e1473a1213
|
||||
89102b0142e574de38a9f47d370f3334e5e6c268
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit e7aa3e2723a435f0a714df661dc5d86dfd45a71c
|
||||
Subproject commit ce1dc26047374fd7a9328914a6c2bd7eb591f012
|
||||
@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using LaaPackages.Features.Cordonel.Models;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -108,8 +109,17 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
_currentGenesis = ((GenesisMeter)me);
|
||||
|
||||
var genesisStatus = new GenesisStatus();
|
||||
var requirements = new CordonelRequirements();
|
||||
|
||||
|
||||
|
||||
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
|
||||
if (_currentGenesis.Region.Equals("EMEA"))
|
||||
else if (_currentGenesis.Region.Equals("EMEA"))
|
||||
{
|
||||
genesisStatus.QuiescentCurrent_uA = 119.8;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
@ -119,8 +129,11 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
genesisStatus.QuiescentCurrent_uA = 77.7;
|
||||
genesisStatus.EstimatedProductionBatteryLoadPercent = 1.0;
|
||||
}
|
||||
if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out _))
|
||||
|
||||
if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out var message))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(message))
|
||||
MessageBox.Show(message);
|
||||
|
||||
var sbMSG = new StringBuilder();
|
||||
sbMSG.AppendLine($"Pcb = {_currentGenesis.PcbId}");
|
||||
@ -135,33 +148,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} %");
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user