|
|
@@ -10,7 +10,7 @@
|
|
|
#include "low_power.h"
|
|
|
#include "app_end_ctr.h"
|
|
|
|
|
|
-CB_VAL cb_val_last;
|
|
|
+// CB_VAL cb_val_last;
|
|
|
uint8_t cb_operate_state = CB_BAT_NO;
|
|
|
|
|
|
|
|
|
@@ -53,7 +53,7 @@ void CB_Operate_Initial(void)
|
|
|
{
|
|
|
_CB_Operate_Initial();
|
|
|
|
|
|
- memset(&cb_val_last,0x00,sizeof(cb_val_last));
|
|
|
+ // memset(&cb_val_last,0x00,sizeof(cb_val_last));
|
|
|
//Check_CB_oper_sta_delay.set = 1;
|
|
|
//Check_CB_oper_sta_delay.count = 0;
|
|
|
Battery_CB_Switch(CB_BAT_NO);
|
|
|
@@ -100,12 +100,7 @@ uint8_t Check_Battery_2_On(void)
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
-void S11_FL_On(uint8_t on)
|
|
|
-{
|
|
|
- println("S11_FL: %d", on);
|
|
|
- S11_ENABLE(on);
|
|
|
- FL_Enable(on);
|
|
|
-}
|
|
|
+
|
|
|
uint8_t S11_May_Operate(void)
|
|
|
{
|
|
|
if(cb_operate_state == CB_BAT2 || cb_operate_state == CB_BAT1_BAT2_PARRALLEL|| cb_operate_state == CB_BAT_NO)
|
|
|
@@ -113,29 +108,16 @@ uint8_t S11_May_Operate(void)
|
|
|
else
|
|
|
return 0;
|
|
|
}
|
|
|
-void Battery_CB_Operate(CB_VAL *cb_val)
|
|
|
-{
|
|
|
- if(cb_val == NULL)
|
|
|
- return;
|
|
|
-
|
|
|
- println("S11:%d, S21:%d, SS:%d", cb_val->s11_bit, cb_val->s21_bit, cb_val->ss__bit);
|
|
|
|
|
|
- S10_ENABLE(cb_val->s10_bit);
|
|
|
- S11_ENABLE(cb_val->s11_bit);
|
|
|
- S20_ENABLE(cb_val->s20_bit);
|
|
|
- S21_ENABLE(cb_val->s21_bit);
|
|
|
- SS__ENABLE(cb_val->ss__bit);
|
|
|
-}
|
|
|
-
|
|
|
-uint8_t battery_wait_voltage_down(uint32_t voltage)
|
|
|
+shark_bool battery_wait_voltage_down(u32 voltage)
|
|
|
{
|
|
|
- uint8_t success = 0;
|
|
|
- uint16_t times;
|
|
|
+ u8 success = 0;
|
|
|
+ u16 times;
|
|
|
|
|
|
for (times = 500; times > 0; times--) {
|
|
|
if (Measure_Vol() < voltage) {
|
|
|
if (++success > 20) {
|
|
|
- return 1;
|
|
|
+ return shark_true;
|
|
|
}
|
|
|
} else {
|
|
|
success = 0;
|
|
|
@@ -144,12 +126,142 @@ uint8_t battery_wait_voltage_down(uint32_t voltage)
|
|
|
delay_1ms(10);
|
|
|
}
|
|
|
|
|
|
- return 0;
|
|
|
+ return shark_false;
|
|
|
+}
|
|
|
+
|
|
|
+shark_bool battery_wait_voltage_up(u32 voltage)
|
|
|
+{
|
|
|
+ u64 time = shark_get_time() + 500;
|
|
|
+
|
|
|
+ while (Measure_Vol() < voltage) {
|
|
|
+ if (time < shark_get_time_safe()) {
|
|
|
+ return shark_false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return shark_true;
|
|
|
+}
|
|
|
+
|
|
|
+static u8 shark_battery_switch_series(void)
|
|
|
+{
|
|
|
+ Power_On_Normal(0, 2);
|
|
|
+
|
|
|
+ if (sub_bms_info_1.packet_common.m_total_vol > sub_bms_info_2.packet_common.m_total_vol) {
|
|
|
+ if (shark_battery_set_power(SHARK_BATT_POWER_FULL, SHARK_BATT_POWER_SMALL) != 3) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (shark_battery_set_power(SHARK_BATT_POWER_SMALL, SHARK_BATT_POWER_FULL) != 3) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ shark_bms_set_mos_series();
|
|
|
+ battery_wait_voltage_up(SERIES_VOLTAGE_MIN);
|
|
|
+
|
|
|
+ if (shark_battery_set_power(SHARK_BATT_POWER_FULL, SHARK_BATT_POWER_FULL) != 3) {
|
|
|
+ shark_bms_set_mos_close();
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ return CB_BAT1_BAT2_SERIES;
|
|
|
+}
|
|
|
+
|
|
|
+static u8 shark_battery_switch_bat1(u8 mask)
|
|
|
+{
|
|
|
+ if ((shark_battery_set_power(SHARK_BATT_POWER_FULL, SHARK_BATT_POWER_OFF) & mask) != mask) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ shark_bms_set_mos_bat1();
|
|
|
+
|
|
|
+ return CB_BAT1;
|
|
|
+}
|
|
|
+
|
|
|
+static u8 shark_battery_switch_bat2(u8 mask)
|
|
|
+{
|
|
|
+ if ((shark_battery_set_power(SHARK_BATT_POWER_OFF, SHARK_BATT_POWER_FULL) & mask) != mask) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ shark_bms_set_mos_bat2();
|
|
|
+
|
|
|
+ return CB_BAT2;
|
|
|
+}
|
|
|
+
|
|
|
+static u8 shark_battery_switch_bat1_or_bat2(void)
|
|
|
+{
|
|
|
+ u64 time = shark_get_time() + 500;
|
|
|
+ u32 open1 = 0;
|
|
|
+ u32 open2 = 0;
|
|
|
+
|
|
|
+ while (time > shark_get_time_safe()) {
|
|
|
+ if (BAT1_IS_OPEN()) {
|
|
|
+ open1++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (BAT2_IS_OPEN()) {
|
|
|
+ open2++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (open1 > open2) {
|
|
|
+ return shark_battery_switch_bat1(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (open1 < open2) {
|
|
|
+ return shark_battery_switch_bat2(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (sub_bms_info_1.packet_common.m_total_vol > sub_bms_info_2.packet_common.m_total_vol) {
|
|
|
+ return shark_battery_switch_bat1(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ return shark_battery_switch_bat2(3);
|
|
|
+}
|
|
|
+
|
|
|
+static u8 shark_battery_switch_auto(shark_bool series)
|
|
|
+{
|
|
|
+ shark_bms_set_mos_close();
|
|
|
+
|
|
|
+ if (!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cb_operate_state == CB_BAT_NO) {
|
|
|
+ if (shark_battery_set_power(SHARK_BATT_POWER_SMALL, SHARK_BATT_POWER_SMALL) == 0) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ delay_1ms(200);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (shark_battery_set_power(SHARK_BATT_POWER_FULL, SHARK_BATT_POWER_FULL) == 0) {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ sub_bms_info_1.state = SHARK_BATT_STATE_IDLE;
|
|
|
+ sub_bms_info_2.state = SHARK_BATT_STATE_IDLE;
|
|
|
+
|
|
|
+ if (shark_battery_is_normal_power_on(&sub_bms_info_1)) {
|
|
|
+ if (shark_battery_is_normal_power_on(&sub_bms_info_2)) {
|
|
|
+ if (series) {
|
|
|
+ return shark_battery_switch_series();
|
|
|
+ } else {
|
|
|
+ return shark_battery_switch_bat1_or_bat2();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return shark_battery_switch_bat1(1);
|
|
|
+ }
|
|
|
+ } else if (shark_battery_is_normal_power_on(&sub_bms_info_2)) {
|
|
|
+ return shark_battery_switch_bat2(2);
|
|
|
+ } else {
|
|
|
+ return CB_BAT_NO;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
{
|
|
|
- CB_VAL cb_val_temp;
|
|
|
uint16_t i = 0;
|
|
|
|
|
|
if (Is_Soak()) {
|
|
|
@@ -162,13 +274,13 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
|
|
|
switch(cb_operate)
|
|
|
{
|
|
|
+ case CB_BAT1_BAT2_AUTO:
|
|
|
+ cb_operate = shark_battery_switch_auto(shark_false);
|
|
|
+ println("switch auto: %d", cb_operate);
|
|
|
+ break;
|
|
|
+
|
|
|
case CB_BAT1:
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_close();
|
|
|
|
|
|
if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
@@ -279,22 +391,12 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
goto SWITCH_ERROR;
|
|
|
}
|
|
|
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 1;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_bat1();
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_USED;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_IDLE;
|
|
|
break;
|
|
|
case CB_BAT2:
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_close();
|
|
|
|
|
|
if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
@@ -406,22 +508,12 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
goto SWITCH_ERROR;
|
|
|
}
|
|
|
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 1;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_bat2();
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_IDLE;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_USED;
|
|
|
break;
|
|
|
- case CB_BAT1_BAT2_PARRALLEL:
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ case CB_BAT1_BAT2_PARRALLEL:
|
|
|
+ shark_bms_set_mos_close();
|
|
|
|
|
|
if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
@@ -463,25 +555,15 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
default:
|
|
|
goto SWITCH_ERROR;
|
|
|
}
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 1;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 1;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+
|
|
|
+ shark_bms_set_mos_parrallel();
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_USED;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_USED;
|
|
|
break;
|
|
|
case CB_BAT1_BAT2_SERIES:
|
|
|
|
|
|
Power_On_Normal(0,2);
|
|
|
-
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_close();
|
|
|
|
|
|
//delay_1ms(2000);
|
|
|
|
|
|
@@ -494,12 +576,8 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
goto SWITCH_ERROR;
|
|
|
case CB_BAT1:
|
|
|
delay_1ms(10);
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 1;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_series();
|
|
|
+
|
|
|
//
|
|
|
i = 0;
|
|
|
while(i++ < COM_TIMEOUT && RS485_busy_2)
|
|
|
@@ -530,12 +608,7 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
break;
|
|
|
case CB_BAT2:
|
|
|
delay_1ms(10);
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 1;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_series();
|
|
|
//
|
|
|
i = 0;
|
|
|
while(i++ < COM_TIMEOUT && RS485_busy_1)
|
|
|
@@ -582,12 +655,8 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
delay_1ms(50);
|
|
|
|
|
|
delay_1ms(10);
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 1;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_series();
|
|
|
+
|
|
|
|
|
|
if(Operate_Sub_BMS_1_CD(2) == 0)
|
|
|
goto SWITCH_ERROR;
|
|
|
@@ -625,12 +694,7 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
delay_1ms(50);
|
|
|
|
|
|
delay_1ms(10);
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 1;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_series();
|
|
|
|
|
|
if(Operate_Sub_BMS_2_CD(2) == 0)
|
|
|
goto SWITCH_ERROR;
|
|
|
@@ -659,24 +723,14 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
goto SWITCH_ERROR;
|
|
|
}
|
|
|
delay_1ms(10);
|
|
|
- cb_val_temp.s10_bit = 1;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 1;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 1;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_series();
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_USED;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_USED;
|
|
|
break;
|
|
|
case CB_BAT_NO:
|
|
|
default:
|
|
|
ACC2_Enable(0);
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
+ shark_bms_set_mos_close();
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_IDLE;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_IDLE;
|
|
|
cb_operate = CB_BAT_NO;
|
|
|
@@ -691,7 +745,7 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
}
|
|
|
|
|
|
|
|
|
- cb_val_last = cb_val_temp;
|
|
|
+ // cb_val_last = cb_val_temp;
|
|
|
|
|
|
cb_operate_state = cb_operate;
|
|
|
|
|
|
@@ -699,13 +753,7 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
|
|
|
SWITCH_ERROR:
|
|
|
println("switch err");
|
|
|
- cb_val_temp.s10_bit = 0;
|
|
|
- cb_val_temp.s11_bit = 0;
|
|
|
- cb_val_temp.s20_bit = 0;
|
|
|
- cb_val_temp.s21_bit = 0;
|
|
|
- cb_val_temp.ss__bit = 0;
|
|
|
- Battery_CB_Operate(&cb_val_temp);
|
|
|
- cb_val_last = cb_val_temp;
|
|
|
+ shark_bms_set_mos_close();
|
|
|
cb_operate_state = CB_BAT_NO;
|
|
|
return cb_operate_state;
|
|
|
|
|
|
@@ -725,6 +773,7 @@ void test_io(void)
|
|
|
|
|
|
uint8_t Select_One_BAT(void)
|
|
|
{
|
|
|
+#if 0
|
|
|
uint8_t temp_op = CB_BAT_NO;
|
|
|
|
|
|
println("select one");
|
|
|
@@ -732,19 +781,11 @@ uint8_t Select_One_BAT(void)
|
|
|
sub_bms_info_1.state = SHARK_BATT_STATE_IDLE;
|
|
|
sub_bms_info_2.state = SHARK_BATT_STATE_IDLE;
|
|
|
|
|
|
- if (!Operate_Sub_BMS_PING(500)) {
|
|
|
- return temp_op;
|
|
|
- }
|
|
|
-
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ if(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
{
|
|
|
- if(Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ if(Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
{
|
|
|
- if (sub_bms_info_1.open_times > sub_bms_info_2.open_times) {
|
|
|
- temp_op = CB_BAT1;
|
|
|
- } else if (sub_bms_info_1.open_times < sub_bms_info_2.open_times) {
|
|
|
- temp_op = CB_BAT2;
|
|
|
- } if(sub_bms_info_1.packet_common.m_total_vol >= sub_bms_info_2.packet_common.m_total_vol)
|
|
|
+ if(sub_bms_info_1.packet_common.m_total_vol >= sub_bms_info_2.packet_common.m_total_vol)
|
|
|
{
|
|
|
if(IS_CHARGE_IN())
|
|
|
{
|
|
|
@@ -772,13 +813,15 @@ uint8_t Select_One_BAT(void)
|
|
|
temp_op = CB_BAT1;
|
|
|
}
|
|
|
}
|
|
|
- else if(Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ else if(Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
{
|
|
|
temp_op = CB_BAT2;
|
|
|
}
|
|
|
|
|
|
return temp_op;
|
|
|
-
|
|
|
+#else
|
|
|
+ return CB_BAT1_BAT2_AUTO;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -786,7 +829,7 @@ uint8_t Check_CB_BAT_1(void)
|
|
|
{
|
|
|
uint8_t temp_op = CB_MAX;
|
|
|
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ if(Is_Sub_BMS_1_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))
|
|
|
{
|
|
|
@@ -822,7 +865,7 @@ uint8_t Check_CB_BAT_2(void)
|
|
|
{
|
|
|
uint8_t temp_op = CB_MAX;
|
|
|
|
|
|
- if(Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ if(Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
{
|
|
|
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))
|
|
|
{
|
|
|
@@ -875,7 +918,7 @@ uint8_t Check_CB_BAT1_BAT2_PARRALLEL(void)
|
|
|
return temp_op;
|
|
|
}
|
|
|
//
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ 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))
|
|
|
{
|
|
|
@@ -1030,7 +1073,7 @@ uint8_t Check_CB_BAT1_BAT2_SERIES(void)
|
|
|
return Select_One_BAT();
|
|
|
}
|
|
|
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ 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))
|
|
|
{
|
|
|
@@ -1136,7 +1179,7 @@ void Power_On_Normal(uint8_t enable,uint8_t from)
|
|
|
|
|
|
#else
|
|
|
|
|
|
- FL_Enable(0);
|
|
|
+ // FL_Enable(0);
|
|
|
|
|
|
ACC2_Enable(0);
|
|
|
|
|
|
@@ -1356,11 +1399,11 @@ void Check_Charge_In(void)
|
|
|
|
|
|
uint8_t Change_Mode_Sub_BMS_1_Normal(void)
|
|
|
{
|
|
|
- return Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS;
|
|
|
+ return Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS;
|
|
|
}
|
|
|
uint8_t Change_Mode_Sub_BMS_2_Normal(void)
|
|
|
{
|
|
|
- return Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS;
|
|
|
+ return Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS;
|
|
|
}
|
|
|
|
|
|
uint8_t Change_Mode_Sub_BMS_PARRALLEL(void)
|
|
|
@@ -1375,7 +1418,7 @@ uint8_t Change_Mode_Sub_BMS_PARRALLEL(void)
|
|
|
if(is_intelligent && CB_OPERATE_PRECEDENCE_PARRALLEL != PRE_PARRALLEL)
|
|
|
return 0;
|
|
|
//
|
|
|
- if(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS)
|
|
|
+ if(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
|
|
|
;
|
|
|
else
|
|
|
return 0;
|
|
|
@@ -1419,7 +1462,7 @@ uint8_t Change_Mode_Sub_BMS_SERIES(void)
|
|
|
if(IS_CHARGE_IN())
|
|
|
return 0;
|
|
|
|
|
|
- if(!(Is_Sub_BMS_1_Normal() == SHARK_BMS_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BMS_EXIT_SUCCESS))
|
|
|
+ if(!(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS))
|
|
|
return 0;
|
|
|
|
|
|
/*if(cb_operate_state == CB_BAT1)
|