in app/metrics/src/main/java/com/googlecodesamples/cloud/jss/metrics/util/ActionUtil.java [34:49]
public static float genBatteryLevelEnd(
float batteryChargeStart, float chargingSpeed, float batteryCapacity, float duration) {
BigDecimal batteryLevelStart = BigDecimal.valueOf(batteryChargeStart);
BigDecimal avgChargeRateKw = BigDecimal.valueOf(chargingSpeed);
BigDecimal batteryCapacityKwh = BigDecimal.valueOf(batteryCapacity);
BigDecimal sessionDurationHr = BigDecimal.valueOf(duration);
BigDecimal result =
batteryLevelStart.add(
avgChargeRateKw
.multiply(sessionDurationHr)
.divide(batteryCapacityKwh, PubSubConst.SCALE, PubSubConst.ROUNDING_MODE));
float batteryLevelEnd = PubSubUtil.formatFloat(result.floatValue());
return Math.min(PubSubConst.BATTERY_LEVEL_END, batteryLevelEnd);
}