|
|
@@ -258,7 +258,13 @@ void process_bms_message(can_frame_t *frame, int len){
|
|
|
break;
|
|
|
}
|
|
|
case CAN_KEY_MIN_SOC:
|
|
|
+ get_soc()->coulomb_now -= get_soc()->coulomb_min;
|
|
|
+ if (get_soc()->coulomb_now < 0) {
|
|
|
+ get_soc()->coulomb_now = 0;
|
|
|
+ }
|
|
|
get_soc()->coulomb_min = (u32)frame->data[0] * 3600.0f;
|
|
|
+ get_soc()->coulomb_now += get_soc()->coulomb_min;
|
|
|
+ get_soc()->capacity =((get_soc()->coulomb_now - get_soc()->coulomb_min)/(get_soc()->coulomb_max - get_soc()->coulomb_min) + 0.005f) * 100;
|
|
|
nv_save_all_soc();
|
|
|
protocol_send_ack(frame->head.can_addr, frame->key, 1);
|
|
|
break;
|