|
@@ -79,7 +79,7 @@ void health_log(void){
|
|
|
health_debug("hard short:%d\n", error_counts.hard_current_short);
|
|
health_debug("hard short:%d\n", error_counts.hard_current_short);
|
|
|
health_debug("work temp: %d\n", _health.is_work_temp_normal);
|
|
health_debug("work temp: %d\n", _health.is_work_temp_normal);
|
|
|
health_debug("aux_short: %d, %d\n", error_counts.aux_short, error_counts.aux_real_short);
|
|
health_debug("aux_short: %d, %d\n", error_counts.aux_short, error_counts.aux_real_short);
|
|
|
- health_debug("lower voltage: %d, %d\n", discharger_lower_cell_voltage, discharger_lower_voltage);
|
|
|
|
|
|
|
+ health_debug("lower voltage: %d, %d, %d, %d\n", discharger_lower_cell_voltage, discharger_lower_voltage, error_counts.cell_under_voltage, error_counts.pack_under_voltage);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bms_health_t *bms_health(){
|
|
bms_health_t *bms_health(){
|
|
@@ -249,6 +249,7 @@ void check_voltage_state(void) {
|
|
|
if ((bms_state_get()->cell_min_vol <= min_discharger_cell_vol[_health.is_work_temp_normal])){
|
|
if ((bms_state_get()->cell_min_vol <= min_discharger_cell_vol[_health.is_work_temp_normal])){
|
|
|
if (judge_debounce(!_health.sigle_cell_lower_voltage, &_sigle_cell_discharger_lower_vol)){
|
|
if (judge_debounce(!_health.sigle_cell_lower_voltage, &_sigle_cell_discharger_lower_vol)){
|
|
|
_health.sigle_cell_lower_voltage = 1;
|
|
_health.sigle_cell_lower_voltage = 1;
|
|
|
|
|
+ error_counts.cell_under_voltage++;
|
|
|
discharger_lower_cell_voltage = bms_state_get()->cell_min_vol;
|
|
discharger_lower_cell_voltage = bms_state_get()->cell_min_vol;
|
|
|
}
|
|
}
|
|
|
}else if ((bms_state_get()->cell_min_vol >= min_discharger_cell_recovery_vol[_health.is_work_temp_normal])){
|
|
}else if ((bms_state_get()->cell_min_vol >= min_discharger_cell_recovery_vol[_health.is_work_temp_normal])){
|
|
@@ -260,6 +261,7 @@ void check_voltage_state(void) {
|
|
|
if (bms_state_get()->pack_voltage <= min_discharger_vol[_health.is_work_temp_normal]){
|
|
if (bms_state_get()->pack_voltage <= min_discharger_vol[_health.is_work_temp_normal]){
|
|
|
if (judge_debounce(!_health.discharger_lower_voltage, &_discharger_lower_voltage)){
|
|
if (judge_debounce(!_health.discharger_lower_voltage, &_discharger_lower_voltage)){
|
|
|
_health.discharger_lower_voltage = 1;
|
|
_health.discharger_lower_voltage = 1;
|
|
|
|
|
+ error_counts.pack_under_voltage++;
|
|
|
discharger_lower_voltage = bms_state_get()->pack_voltage;
|
|
discharger_lower_voltage = bms_state_get()->pack_voltage;
|
|
|
}
|
|
}
|
|
|
}else if (bms_state_get()->pack_voltage >= min_discharger_recovery_vol[_health.is_work_temp_normal]){
|
|
}else if (bms_state_get()->pack_voltage >= min_discharger_recovery_vol[_health.is_work_temp_normal]){
|