Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master' into balance

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 4 жил өмнө
parent
commit
a49ae0cf9e

+ 4 - 4
Application/app/event_record.h

@@ -20,10 +20,10 @@ typedef enum {
 	Temp_Changed,
 	Charger_Full_cap,
 	Max_current_persis,
-	Pack_Temp,
-	Charger_Full_cap2,
-	Cell_Under_Vol2,
-	Cell_Over_Vol2,
+	Pack_Temp,          //17
+	Charger_Full_cap2,  //18
+	Cell_Under_Vol2,    //19
+	Cell_Over_Vol2,     //20
 	Cell_balance,
 }event_id_t;
 

+ 7 - 6
Application/app/sox/health.c

@@ -265,7 +265,10 @@ static void _pack_low_judge_current(bool set) {
 		bms_health()->b_flags |= B_FLAGS_PACK_LARGER_CURRENT;
 	}
 }
-
+typedef union {
+	u32 data;
+	s8  ds8[4];
+}temp_u;
 static void push_cell_event(event_id_t id){
 	u16 max_v = bms_state_get()->cell_max_vol / 10;
 	u16 min_v = bms_state_get()->cell_min_vol / 10;
@@ -274,13 +277,11 @@ static void push_cell_event(event_id_t id){
 
 	push_event(id, max << 16 | min);
 
-	u32 temps = 0;
-	s8  onetemp = 0;
+	temp_u t = {0};
 	for (int i = 0; i < PACK_TEMPS_NUM; i++){		
-		onetemp = (s8)measure_value()->pack_temp[i];
-		temps |= (onetemp << i) & (0xFF<<i);
+		t.ds8[i] = (s8)measure_value()->pack_temp[i];
 	}
-	push_event(Pack_Temp, temps);
+	push_event(Pack_Temp, t.data);
 }
 
 void check_voltage_state(void) {

+ 4 - 2
Application/app/sox/soc.c

@@ -309,7 +309,6 @@ bool soc_is_force_full(void) {
 
 #define min_cap_lfp 0.5f
 static void _force_capacity_full(void){
-	_soc.capacity = 100;
 	is_force_full = true;
 	force_full_time = shark_get_seconds();
 	double curr_real_cap = start_charger_coulomb + _soc.charger_coulomb;
@@ -331,7 +330,10 @@ static void _force_capacity_full(void){
 	u32 cap_x10 = (u32)(curr_real_cap / 3600.0f * 10);
 	u32 min_x10 = (u32)(curr_min_cap / 3600.0f * 10);
 	push_event(Charger_Full_cap2, ((min_x10 & 0xFFFF) << 16) | (cap_x10 & 0xFFFF));
-	_soc.coulomb_now = _soc.coulomb_max;//充满后,当前容量设置为最大容量
+
+	//充满后,当前容量设置为最大容量
+	_soc.capacity = 100;
+	_soc.coulomb_now = _soc.coulomb_max;
 
 	force_full_ts = shark_get_seconds();
 }