|
|
@@ -237,11 +237,12 @@ static void _single_low_judge_current(bool set) {
|
|
|
bms_health()->b_flags &= ~(B_FLAGS_SINGLE_LOW_CURRENT | B_FLAGS_SINGLE_MID_CURRENT | B_FLAGS_SINGLE_BIG_CURRENT | B_FLAGS_SINGLE_LARGER_CURRENT);
|
|
|
return;
|
|
|
}
|
|
|
- if (measure_value()->load_current < MAX_HA*1000/2) { // 0.5C ???
|
|
|
+ int load_current = abs(measure_value()->load_current);
|
|
|
+ if (load_current < MAX_HA*1000/2) { // 0.5C ???
|
|
|
bms_health()->b_flags |= B_FLAGS_SINGLE_LOW_CURRENT;
|
|
|
- }else if (measure_value()->load_current < MAX_HA*1000) { // 1C ???
|
|
|
+ }else if (load_current < MAX_HA*1000) { // 1C ???
|
|
|
bms_health()->b_flags |= B_FLAGS_SINGLE_MID_CURRENT;
|
|
|
- }else if (measure_value()->load_current < MAX_HA * 1000 * 3/2) { // 1.5C ???
|
|
|
+ }else if (load_current < MAX_HA * 1000 * 3/2) { // 1.5C ???
|
|
|
bms_health()->b_flags |= B_FLAGS_SINGLE_BIG_CURRENT;
|
|
|
}else {
|
|
|
bms_health()->b_flags |= B_FLAGS_SINGLE_LARGER_CURRENT;
|
|
|
@@ -252,11 +253,12 @@ static void _pack_low_judge_current(bool set) {
|
|
|
bms_health()->b_flags &= ~(B_FLAGS_PACK_LOW_CURRENT | B_FLAGS_PACK_MID_CURRENT | B_FLAGS_PACK_BIG_CURRENT | B_FLAGS_PACK_LARGER_CURRENT);
|
|
|
return;
|
|
|
}
|
|
|
- if (measure_value()->load_current < MAX_HA*1000/2) {
|
|
|
+ int load_current = abs(measure_value()->load_current);
|
|
|
+ if (load_current < MAX_HA*1000/2) {
|
|
|
bms_health()->b_flags |= B_FLAGS_PACK_LOW_CURRENT;
|
|
|
- }else if (measure_value()->load_current < MAX_HA*1000) {
|
|
|
+ }else if (load_current < MAX_HA*1000) {
|
|
|
bms_health()->b_flags |= B_FLAGS_PACK_MID_CURRENT;
|
|
|
- }else if (measure_value()->load_current < MAX_HA * 1000 * 3/2){
|
|
|
+ }else if (load_current < MAX_HA * 1000 * 3/2){
|
|
|
bms_health()->b_flags |= B_FLAGS_PACK_BIG_CURRENT;
|
|
|
}else {
|
|
|
bms_health()->b_flags |= B_FLAGS_PACK_LARGER_CURRENT;
|