Преглед изворни кода

判断当前容量要大于最小容量才更新电量

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui пре 4 година
родитељ
комит
baeab37666
1 измењених фајлова са 5 додато и 4 уклоњено
  1. 5 4
      Application/app/sox/soc.c

+ 5 - 4
Application/app/sox/soc.c

@@ -409,13 +409,14 @@ static void soc_update_by_current_and_time(float current_now, float delta_time,
 	int update_capticy = 0;
 	double est_coulomb = _soc.coulomb_now + delta_q;//计算当前容量,充电加, 放电减
 
-	if (est_coulomb < _soc.coulomb_min){
-		est_coulomb = _soc.coulomb_min;
+	if (est_coulomb < 0){
+		est_coulomb = 0;
 	}else if (est_coulomb > _soc.coulomb_max) {
 		est_coulomb = _soc.coulomb_max;
 	}
-	est_capaticy = ((est_coulomb - _soc.coulomb_min)/(_soc.coulomb_max - _soc.coulomb_min) + 0.005f) * 100;//四舍五入
-	
+	if (est_coulomb >= _soc.coulomb_min) {
+		est_capaticy = ((est_coulomb - _soc.coulomb_min)/(_soc.coulomb_max - _soc.coulomb_min) + 0.005f) * 100;//四舍五入
+	}
 	if (chargering){
 		delta_q = delta_q * _charger_coefficient;
 		_soc.charger_coulomb += abs(delta_q);