Ver Fonte

don't update exit code if no error

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao há 5 anos atrás
pai
commit
2cfaeab724
7 ficheiros alterados com 27 adições e 25 exclusões
  1. 1 1
      Project/version.txt
  2. 3 3
      Source/app.c
  3. 3 0
      Source/app_end_ctr.c
  4. 14 15
      Source/app_rs485_1.c
  5. 4 4
      Source/app_rs485_1.h
  6. 1 1
      Source/app_rs485_2.c
  7. 1 1
      Source/sw_build_info.h

+ 1 - 1
Project/version.txt

@@ -1 +1 @@
-PS100XX_V10_11122038
+PS100XX_V10_11131114

+ 3 - 3
Source/app.c

@@ -367,8 +367,8 @@ static u8 shark_battery_switch_auto(u8 operate)
 		return CB_BAT_NO;
 	}
 
-	if (shark_battery_is_normal_power_on(&sub_bms_info_1)) {
-		if (shark_battery_is_normal_power_on(&sub_bms_info_2)) {
+	if (shark_battery_is_normal_power_on(&sub_bms_info_1) == SHARK_BATT_EXIT_SUCCESS) {
+		if (shark_battery_is_normal_power_on(&sub_bms_info_2) == SHARK_BATT_EXIT_SUCCESS) {
 			if (shark_battery_check_series(operate)) {
 				operate = shark_battery_switch_series();
 				if (operate == CB_BAT1_BAT2_SERIES) {
@@ -388,7 +388,7 @@ static u8 shark_battery_switch_auto(u8 operate)
 		} else {
 			return shark_battery_switch_bat1(SHARK_BATT_MASK_BAT1);
 		}
-	} else if (shark_battery_is_normal_power_on(&sub_bms_info_2)) {
+	} else if (shark_battery_is_normal_power_on(&sub_bms_info_2) == SHARK_BATT_EXIT_SUCCESS) {
 		return shark_battery_switch_bat2(SHARK_BATT_MASK_BAT2);
 	} else {
 		return CB_BAT_NO;

+ 3 - 0
Source/app_end_ctr.c

@@ -526,8 +526,11 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
 					break;
 				case 6:
 					buf[len++] = cb_operate_state;
+					buf[len++] = sub_bms_info_1.connected;
+					buf[len++] = sub_bms_info_2.connected;
 					buf[len++] = sub_bms_info_1.exit_code;
 					buf[len++] = sub_bms_info_2.exit_code;
+					sub_bms_info_1.exit_code = sub_bms_info_2.exit_code = SHARK_BATT_EXIT_SUCCESS;
 					break;
 				case 7:
 					buf[len++] = end_ctr_self_ss_new.acc12_sta << 1 | ACC2_Dect();

+ 14 - 15
Source/app_rs485_1.c

@@ -341,7 +341,7 @@ void Sub_BMS_1_Initial(void)
 	sub_bms_info_2.sub_bms_cmd.operate = OP_READ_INFO;
 }
 
-static shark_battery_exit_t shark_battery_is_normal_raw(SUB_BMS_INFO *info)
+static shark_battery_exit_t shark_battery_is_normal_raw(SUB_BMS_INFO *info, shark_battery_power_t power)
 {
 	u16 work_status;
 
@@ -388,31 +388,27 @@ static shark_battery_exit_t shark_battery_is_normal_raw(SUB_BMS_INFO *info)
 		}
 	}
 
+	if (!shark_battery_check_power(info, power)) {
+		return SHARK_BATT_EXIT_POWER;
+	}
+
 	return SHARK_BATT_EXIT_SUCCESS;
 }
 
-shark_battery_exit_t shark_battery_is_normal(SUB_BMS_INFO *info)
+shark_battery_exit_t shark_battery_is_normal(SUB_BMS_INFO *info, shark_battery_power_t power)
 {
-	info->exit_code = shark_battery_is_normal_raw(info);
-	return info->exit_code;
-}
+	shark_battery_exit_t code = shark_battery_is_normal_raw(info, power);
 
-shark_bool shark_battery_is_normal_power_on(SUB_BMS_INFO *info)
-{
-	if (shark_battery_is_normal(info) == SHARK_BATT_EXIT_SUCCESS) {
-		if (shark_battery_is_power_full(info)) {
-			return shark_true;
-		}
-
-		info->exit_code = SHARK_BATT_EXIT_POWER;
+	if (code != SHARK_BATT_EXIT_SUCCESS) {
+		info->exit_code = code;
 	}
 
-	return shark_false;
+	return code;
 }
 
 shark_battery_exit_t Is_Sub_BMS_1_Normal(void)
 {
-	return shark_battery_is_normal(&sub_bms_info_1);
+	return shark_battery_is_normal(&sub_bms_info_1, SHARK_BATT_POWER_ANY);
 }
 
 u32 shark_battery_get_voltage(SUB_BMS_INFO *info)
@@ -509,6 +505,9 @@ shark_bool shark_battery_check_power(SUB_BMS_INFO *info, shark_battery_power_t p
 	case SHARK_BATT_POWER_ALL:
 		return SHARK_BOOL((info->packet_common.bms_status & BMS_POWER_ALL) == BMS_POWER_ALL);
 
+	case SHARK_BATT_POWER_ANY:
+		return shark_true;
+
 	default:
 		return SHARK_BOOL((info->packet_common.bms_status & BMS_POWER_ALL) == 0);
 	}

+ 4 - 4
Source/app_rs485_1.h

@@ -96,6 +96,7 @@ typedef enum {
 
 typedef enum {
 	SHARK_BATT_POWER_FAULT,
+	SHARK_BATT_POWER_ANY,
 	SHARK_BATT_POWER_OFF,
 	SHARK_BATT_POWER_SMALL,
 	SHARK_BATT_POWER_FULL,
@@ -337,7 +338,7 @@ void Ca_Chu_Test_Info(void);
 
 void Check_Enable_Test_Info(void);
 
-shark_battery_exit_t shark_battery_is_normal(SUB_BMS_INFO *info);
+shark_battery_exit_t shark_battery_is_normal(SUB_BMS_INFO *info, shark_battery_power_t power);
 void shark_bms_set_vgs(shark_bms_vgs_t vgs, shark_bool enable);
 void shark_bms_set_mos(shark_bool ss, shark_bool s11, shark_bool s21);
 shark_battery_mask_t shark_battery_set_power(shark_battery_power_t power1, shark_battery_power_t power2, shark_battery_mask_t mask);
@@ -345,7 +346,6 @@ shark_battery_power_t shark_battery_get_power(SUB_BMS_INFO *info);
 shark_bool shark_battery_check_power(SUB_BMS_INFO *info, shark_battery_power_t power);
 shark_battery_mask_t shark_battery_detect(u8 times);
 shark_bool shark_battery_ping(u8 times);
-shark_bool shark_battery_is_normal_power_on(SUB_BMS_INFO *info);
 u32 shark_battery_get_voltage(SUB_BMS_INFO *info);
 u32 shark_battery_get_voltage_delta(void);
 u32 shark_battery_get_voltage_min(void);
@@ -379,9 +379,9 @@ static inline void shark_bms_set_mos_parrallel(void)
 	shark_bms_set_mos(shark_false, shark_true, shark_true);
 }
 
-static inline shark_bool shark_battery_is_power_full(SUB_BMS_INFO *info)
+static inline shark_battery_exit_t shark_battery_is_normal_power_on(SUB_BMS_INFO *info)
 {
-	return SHARK_BOOL((info->packet_common.bms_status & BMS_POWER_FULL) == BMS_POWER_FULL);
+	return shark_battery_is_normal(info, SHARK_BATT_POWER_FULL);
 }
 
 static inline u32 shark_battery_get_voltage1(void)

+ 1 - 1
Source/app_rs485_2.c

@@ -12,5 +12,5 @@ SUB_BMS_INFO sub_bms_info_2 = {
 
 uint8_t Is_Sub_BMS_2_Normal(void)
 {
-	return shark_battery_is_normal(&sub_bms_info_2);
+	return shark_battery_is_normal(&sub_bms_info_2, SHARK_BATT_POWER_ANY);
 }

+ 1 - 1
Source/sw_build_info.h

@@ -1,3 +1,3 @@
 #pragma once
 
-#define CONFIG_VERSION "PS100XX_V10_11122038"
+#define CONFIG_VERSION "PS100XX_V10_11131114"