|
|
@@ -43,7 +43,7 @@ const double nhb_default = 600;
|
|
|
SHENG_YU_LI_CHENG sheng_yu_li_cheng;
|
|
|
DELAY_COMMON save_param_delay;
|
|
|
|
|
|
-shark_bool shark_battery_series_disabled;
|
|
|
+shark_bool shark_battery_series_locked;
|
|
|
u8 shark_battery_series_times;
|
|
|
|
|
|
shark_bool shark_battery_switch_busy;
|
|
|
@@ -225,7 +225,7 @@ static u8 shark_battery_switch_series(void)
|
|
|
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_USED;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_USED;
|
|
|
- shark_battery_series_disabled = shark_false;
|
|
|
+ shark_battery_series_locked = shark_false;
|
|
|
|
|
|
return CB_BAT1_BAT2_SERIES;
|
|
|
}
|
|
|
@@ -320,7 +320,7 @@ static shark_bool shark_battery_series_enabled(void)
|
|
|
return shark_false;
|
|
|
}
|
|
|
|
|
|
- if (shark_battery_series_disabled) {
|
|
|
+ if (shark_battery_series_locked) {
|
|
|
return shark_false;
|
|
|
}
|
|
|
|
|
|
@@ -1200,6 +1200,27 @@ uint8_t Select_One_BAT_Han_Guo(void)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+static u8 shark_battery_get_series_error(void)
|
|
|
+{
|
|
|
+ if (Is_Sub_BMS_1_Normal() != SHARK_BATT_EXIT_SUCCESS) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Is_Sub_BMS_2_Normal() != SHARK_BATT_EXIT_SUCCESS) {
|
|
|
+ return 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!shark_battery_check_power(&sub_bms_info_1, SHARK_BATT_POWER_FULL)) {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!shark_battery_check_power(&sub_bms_info_2, SHARK_BATT_POWER_FULL)) {
|
|
|
+ return 4;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
uint8_t Check_CB_BAT1_BAT2_SERIES(void)
|
|
|
{
|
|
|
uint8_t temp_op = CB_MAX;
|
|
|
@@ -1222,31 +1243,13 @@ uint8_t Check_CB_BAT1_BAT2_SERIES(void)
|
|
|
return temp_op;
|
|
|
}
|
|
|
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
- {
|
|
|
- if((sub_bms_info_1.packet_common.bms_status & (BMS_STA_D_OPEN | BMS_STA_C_OPEN)) != (BMS_STA_D_OPEN | BMS_STA_C_OPEN))
|
|
|
- {
|
|
|
- //sub_bms_info_1.sub_bms_cmd.operate = OP_OPEN_FET;
|
|
|
- //sub_bms_info_1.sub_bms_cmd.param = 0x03;
|
|
|
- sub_bms_info_1.define_error= D_BMS_ERROR_SERISE_CD_OFF;
|
|
|
- temp_op = Select_One_BAT();
|
|
|
- sub_bms_info_1.define_error = D_BMS_ERROR_NO;
|
|
|
- return temp_op;
|
|
|
- }
|
|
|
- if((sub_bms_info_2.packet_common.bms_status & (BMS_STA_D_OPEN | BMS_STA_C_OPEN)) != (BMS_STA_D_OPEN | BMS_STA_C_OPEN))
|
|
|
- {
|
|
|
- //sub_bms_info_2.sub_bms_cmd.operate = OP_OPEN_FET;
|
|
|
- //sub_bms_info_2.sub_bms_cmd.param = 0x03;
|
|
|
- sub_bms_info_2.define_error = D_BMS_ERROR_SERISE_CD_OFF;
|
|
|
- temp_op = Select_One_BAT();
|
|
|
- sub_bms_info_2.define_error = D_BMS_ERROR_NO;
|
|
|
- return temp_op;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
+ if (shark_battery_get_series_error() != 0)
|
|
|
{
|
|
|
if (shark_bms_xl_times > SHARK_XL_FUZZ && QD_Dect()) {
|
|
|
- shark_battery_series_disabled = shark_true;
|
|
|
+ shark_battery_series_locked = shark_true;
|
|
|
+ println("series locked");
|
|
|
+ } else {
|
|
|
+ println("no xl");
|
|
|
}
|
|
|
|
|
|
#ifdef HAN_GUO_VERSION
|