Prechádzať zdrojové kódy

解决正常充满,无法校准最小容量的问题

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 rokov pred
rodič
commit
531deb9a53
1 zmenil súbory, kde vykonal 6 pridanie a 4 odobranie
  1. 6 4
      Application/app/sox/soc.c

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

@@ -323,10 +323,6 @@ static void _force_capacity_full(void){
 	if ((_soc.flags & SOC_FLAG_CALIBRATED) == 0){
 		_soc.current_real_coulomb = _soc.coulomb_max;
 		_discharger_no_full_coef = 1.0f;
-	}else {
-		if (bms_state_get()->pack_voltage >= 52500) {
-			_soc.current_real_coulomb = _soc.coulomb_max - _soc.coulomb_min;
-		}
 	}
 
 	if (_soc.current_real_coulomb < _soc.coulomb_max) {
@@ -350,6 +346,12 @@ static void _force_capacity_full(void){
 	u32 cap_x10 = (u32)(_soc.current_real_coulomb / 3600.0f * 10);
 	u32 min_x10 = (u32)(curr_min_cap / 3600.0f * 10);
 	push_event(Charger_Full_cap2, ((min_x10 & 0xFFFF) << 16) | (cap_x10 & 0xFFFF));
+	// 认为本次充电正常
+	if (bms_state_get()->pack_voltage >= 53000) {
+		_soc.current_real_coulomb = _soc.coulomb_max - _soc.coulomb_min;
+		_discharger_no_full_coef = 1.0f;
+	}
+
 	//充满后,当前容量设置为最大容量
 	_soc.capacity = 100;
 	_soc.coulomb_now = _soc.coulomb_max;