Skip to content
Snippets Groups Projects
Verified Commit 1233d94b authored by Christian Dreher's avatar Christian Dreher
Browse files

feat: Health

parent 1c8b6cae
No related branches found
No related tags found
1 merge request!102Battery widget
Pipeline #20811 failed
......@@ -186,46 +186,68 @@ namespace armarx
}
else
{
QString charging_text =
state == dto::BatteryState::charging ? "Charging." : "Discharging.";
QString errors_text =
lastStatus.hasError
? "<br><b><font color='red'>Battery error occured! Check the logs.</font></b>"
: "";
QString powerText =
state == dto::BatteryState::charging ? "Charging power" : "Provided power";
bool showPrognosis =
state == dto::BatteryState::charging or state == dto::BatteryState::discharging;
QString prognosis = "";
if (showPrognosis)
QString status;
switch (state)
{
QString fullOrEmpty = state == dto::BatteryState::charging ? "Full" : "Empty";
prognosis = QString("&nbsp;- %1 in: &asymp; %2 h <br>")
.arg(fullOrEmpty)
.arg(lastStatus.remainingTime_h, 0, 'f', 1);
case dto::BatteryState::charging:
status = "charging";
break;
case dto::BatteryState::discharging:
status = "discharging";
break;
case dto::BatteryState::full:
status = "full";
break;
case dto::BatteryState::notCharging:
status = "not charging";
break;
case dto::BatteryState::unavailable:
status = "unavailable";
break;
}
QString percentage_text = QString("&nbsp;- Charge: %1<br>"
"&nbsp;- Energy: %2 Wh / %3 Wh<br>"
"&nbsp;- %4: %5 W (%6 A, %7 V)<br>"
"%8"
"&nbsp;- Temperature: %9 °C")
.arg(txtPercentage)
.arg(lastStatus.energy_Wh, 0, 'f', 1)
.arg(lastStatus.fullChargeEnergy_Wh, 0, 'f', 1)
.arg(powerText)
.arg(std::abs(lastStatus.power_W), 0, 'f', 1)
.arg(std::abs(lastStatus.current_A), 0, 'f', 1)
.arg(lastStatus.voltage_V, 0, 'f', 1)
.arg(prognosis)
QString detailedReport;
{
QString charge = QString("&nbsp;- Charge: %1<br>").arg(txtPercentage);
QString energy = QString("&nbsp;- Energy: %2 Wh / %3 Wh<br>")
.arg(lastStatus.energy_Wh, 0, 'f', 1)
.arg(lastStatus.fullChargeEnergy_Wh, 0, 'f', 1);
QString power = QString("&nbsp;- %1: %2 W (%3 A, %4 V)<br>")
.arg(state == dto::BatteryState::charging ? "Charging power"
: "Provided power")
.arg(std::abs(lastStatus.power_W), 0, 'f', 1)
.arg(std::abs(lastStatus.current_A), 0, 'f', 1)
.arg(lastStatus.voltage_V, 0, 'f', 1);
bool showPrognosis =
state == dto::BatteryState::charging or state == dto::BatteryState::discharging;
QString prognosis = "";
if (showPrognosis)
{
QString fullOrEmpty = state == dto::BatteryState::charging ? "Full" : "Empty";
prognosis = QString("&nbsp;- %1 in: &asymp; %2 h <br>")
.arg(fullOrEmpty)
.arg(lastStatus.remainingTime_h, 0, 'f', 1);
}
QString temperature = QString("&nbsp;- Temperature: %6 °C<br>")
.arg(lastStatus.temperature_degC, 0, 'f', 1);
text = QString("Battery status: %1<br>%2%3")
.arg(charging_text)
.arg(percentage_text)
.arg(errors_text);
QString health = QString("&nbsp;- Health: %7%")
.arg(lastStatus.fullEnergyFromDesignEnergy_pct, 0, 'f', 1);
detailedReport = QString("%1%2%3%4%5%6")
.arg(charge, energy, power, prognosis, temperature, health);
}
QString errorsText =
lastStatus.hasError
? "<br><b><font color='red'>Battery error occured! Check the logs.</font></b>"
: "";
text = QString("Battery %1.<br>%2%3").arg(status).arg(detailedReport).arg(errorsText);
}
getWidget()->setToolTip(text);
......
......@@ -82,6 +82,7 @@ namespace armarx
.fullChargeEnergy_Wh = -1,
.energy_Wh = -1,
.energyFromFullCharge_pct = 0,
.fullEnergyFromDesignEnergy_pct = 0,
.temperature_degC = -1,
.ratedVoltage_V = -1,
.voltage_V = -1,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment