Просмотр исходного кода

解决剩余1%电量,放充电器后,立马变为0%的问题

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 5 лет назад
Родитель
Сommit
812136c4f8
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      Application/app/sox/soc.c

+ 2 - 2
Application/app/sox/soc.c

@@ -270,13 +270,13 @@ static void soc_update_by_current_and_time(float current_now, float delta_time,
 	if (chargering){
 	if (chargering){
 		delta_q = delta_q * _charger_coefficient;
 		delta_q = delta_q * _charger_coefficient;
 		_soc.charger_coulomb += abs(delta_q);
 		_soc.charger_coulomb += abs(delta_q);
-		if (est_capaticy < 100 ){ //充电,容量不能等于100,需要靠电压和充电电流来矫正到100
+		if ((est_capaticy < 100) && (est_capaticy >= _soc.capacity)){ //充电,容量不能等于100,需要靠电压和充电电流来矫正到100
 			update_capticy = 1;
 			update_capticy = 1;
 		}
 		}
 	}else {
 	}else {
 		delta_q = delta_q * _discharger_coefficient;
 		delta_q = delta_q * _discharger_coefficient;
 		_soc.dischrger_coulomb += abs(delta_q);
 		_soc.dischrger_coulomb += abs(delta_q);
-		if (est_capaticy > 0) {  //放电,容量不能等于0,需要靠欠压或者PowerDown 矫正到0
+		if ((est_capaticy > 0) && (est_capaticy <= _soc.capacity)) {  //放电,容量不能等于0,需要靠欠压或者PowerDown 矫正到0
 			update_capticy = 1;
 			update_capticy = 1;
 		}
 		}
 	}
 	}