|
|
@@ -376,12 +376,22 @@ static void soc_calibrate(uint8_t prev_charge_status){
|
|
|
if (!(_soc.flags & SOC_FLAG_CALIBRATED)){
|
|
|
if (chargering){//ÓÃocv½øÐÐÑϸñУ׼
|
|
|
if (_soc.capacity != 100){
|
|
|
- if ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_CHARGING) && (_soc.charger_coulomb >= (0.1f * 3600.0f))){
|
|
|
- _force_capacity_full();
|
|
|
- push_event(Charger_Full, 10);
|
|
|
- }else if (bms_health()->sigle_cell_over_voltage) {
|
|
|
- _force_capacity_full();
|
|
|
- push_event(Charger_Full, 1);
|
|
|
+ if (!bms_work_is_normal()) {
|
|
|
+ if ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_CHARGING)){
|
|
|
+ _force_capacity_full();
|
|
|
+ push_event(Charger_Full, 12);
|
|
|
+ }else if (bms_health()->sigle_cell_over_voltage) {
|
|
|
+ _force_capacity_full();
|
|
|
+ push_event(Charger_Full, 13);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_CHARGING) && (_soc.charger_coulomb >= (0.1f * 3600.0f))){
|
|
|
+ _force_capacity_full();
|
|
|
+ push_event(Charger_Full, 10);
|
|
|
+ }else if (bms_health()->sigle_cell_over_voltage) {
|
|
|
+ _force_capacity_full();
|
|
|
+ push_event(Charger_Full, 1);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}else if (prev_charge_status){
|