CEC-4581 Show battery voltage in digital twin (#365)

* CEC-4581 Show battery voltage in digital twin

* Fix warning
This commit is contained in:
John Wu
2023-06-20 14:46:00 -07:00
committed by GitHub
parent 4632958a24
commit 5120c27187
3 changed files with 21 additions and 7 deletions

View File

@@ -55,6 +55,13 @@ exports[`DigitalTwinTab Render 1`] = `
: :
12000 km 12000 km
</p> </p>
<p>
<b>
Voltage
</b>
:
12.5 V
</p>
<p> <p>
<b> <b>
Max Range Max Range

View File

@@ -39,6 +39,7 @@ let vehicleState = {
battery: { battery: {
total_mileage_odometer: 12000, total_mileage_odometer: 12000,
percent: 95, percent: 95,
battery_voltage: 12.5,
}, },
max_range: { max_range: {
max_miles: 577, max_miles: 577,

View File

@@ -8,6 +8,11 @@ const UNKNOWN = "unknown";
const LOCKED = "Locked"; const LOCKED = "Locked";
const UNLOCKED = "Unlocked"; const UNLOCKED = "Unlocked";
const appendUnits = (value, units) => {
if (value || value === 0) return `${value}${units}`;
return UNKNOWN;
}
const keyValueTemplate = (key, value) => ( const keyValueTemplate = (key, value) => (
<p key={key}> <p key={key}>
<b>{key}</b>: {value} <b>{key}</b>: {value}
@@ -37,16 +42,17 @@ const DigitalTwin = (props) => {
{(battery || max_range) && ( {(battery || max_range) && (
<div className={classes.popupSection}> <div className={classes.popupSection}>
<h3>Battery</h3> <h3>Battery</h3>
{keyValueTemplate("Percentage", `${battery?.percent || 0}%`)} {keyValueTemplate("Percentage", appendUnits(battery?.percent || 0, "%"))}
{keyValueTemplate("Total Mileage", `${battery?.total_mileage_odometer} km` || UNKNOWN)} {keyValueTemplate("Total Mileage", appendUnits(battery?.total_mileage_odometer, " km"))}
{keyValueTemplate("Max Range", `${max_range?.max_miles} km` || UNKNOWN)} {keyValueTemplate("Voltage", appendUnits(battery?.battery_voltage, " V"))}
{keyValueTemplate("Max Range", appendUnits(max_range?.max_miles, " km"))}
</div> </div>
)} )}
{(vcu0x260 || charging_metrics) && ( {(vcu0x260 || charging_metrics) && (
<div className={classes.popupSection}> <div className={classes.popupSection}>
<h3>Charging</h3> <h3>Charging</h3>
{keyValueTemplate("Charge Type", vcu0x260?.charge_type || UNKNOWN)} {keyValueTemplate("Charge Type", vcu0x260?.charge_type || UNKNOWN)}
{keyValueTemplate("Remaining Time", `${charging_metrics?.remaining_charging_time} min` || UNKNOWN)} {keyValueTemplate("Remaining Time", appendUnits(charging_metrics?.remaining_charging_time, " min"))}
</div> </div>
)} )}
{doors && ( {doors && (
@@ -95,9 +101,9 @@ const DigitalTwin = (props) => {
return keyValueTemplate(value[0], "Invalid") return keyValueTemplate(value[0], "Invalid")
} }
if (value[0] === "altitude") { if (value[0] === "altitude") {
return keyValueTemplate(value[0], `${value[1]} m`); return keyValueTemplate(value[0], appendUnits(value[1], " m"));
} else { } else {
return keyValueTemplate(value[0], `${value[1]}°`); return keyValueTemplate(value[0], appendUnits(value[1], "°"));
} }
})} })}
</div> </div>
@@ -124,7 +130,7 @@ const DigitalTwin = (props) => {
)} )}
{vehicle_speed && ( {vehicle_speed && (
<div className={classes.popupSection}> <div className={classes.popupSection}>
{keyValueTemplate("Vehicle Speed", `${vehicle_speed.speed} km/h`)} {keyValueTemplate("Vehicle Speed", appendUnits(vehicle_speed?.speed, " km/h"))}
</div> </div>
)} )}
</div> </div>