|
|
@@ -371,7 +371,6 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
{
|
|
|
uint16_t key,len;
|
|
|
uint8_t *buf = can_ctr_frame->data;
|
|
|
- uint8_t temp = 0,rtn = 0;
|
|
|
|
|
|
memcpy(&key,can_ctr_frame->data,sizeof(key));
|
|
|
|
|
|
@@ -463,97 +462,18 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
case KEY_END_CTR_BAT_UPDATE_REQ:
|
|
|
//if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
// return 1;
|
|
|
-
|
|
|
- rtn = 0;
|
|
|
- len = buf[2];
|
|
|
- if(len == UPDATE_BAT_1 || len == UPDATE_BAT_2)
|
|
|
- {
|
|
|
- if(len == UPDATE_BAT_1)
|
|
|
- {
|
|
|
- temp = Update_Sub_BMS_1_Software(UPDATE_STEP_REQ);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- temp = Update_Sub_BMS_2_Software(UPDATE_STEP_REQ);
|
|
|
- }
|
|
|
- if(temp)
|
|
|
- {
|
|
|
- update_bat.ub_step = UPDATE_STEP_REQ;
|
|
|
- update_bat.ub_bat = buf[2];
|
|
|
- update_bat.ub_total = buf[4];
|
|
|
- update_bat.ub_total = (update_bat.ub_total<<8)|buf[3];
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 3;
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 1;
|
|
|
-
|
|
|
len = 2;
|
|
|
- buf[len++] = rtn;
|
|
|
+ buf[len++] = 1;
|
|
|
break;
|
|
|
case KEY_END_CTR_BAT_UPDATE:
|
|
|
//if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
/// return 1;
|
|
|
-
|
|
|
- rtn = 0;
|
|
|
-
|
|
|
- len = buf[3];
|
|
|
- len = (len<<8)|buf[2];
|
|
|
- if(len <= update_bat.ub_total)
|
|
|
- {
|
|
|
- if(len == update_bat.ub_sq || len == update_bat.ub_sq + 1)
|
|
|
- {
|
|
|
- len = buf[5];
|
|
|
- len = (len<<8)|buf[4];
|
|
|
- if(len <= sizeof(update_bat.ub_data))
|
|
|
- {
|
|
|
- update_bat.ub_step = UPDATE_STEP_DATA;
|
|
|
- update_bat.ub_sq = buf[3];
|
|
|
- update_bat.ub_sq = (update_bat.ub_sq<<8)|buf[2];
|
|
|
- update_bat.ub_len = buf[5];
|
|
|
- update_bat.ub_len = (update_bat.ub_len<<8)|buf[4];
|
|
|
- memcpy(update_bat.ub_data,&buf[6],update_bat.ub_len);
|
|
|
-
|
|
|
- //
|
|
|
- if(update_bat.ub_bat == UPDATE_BAT_1)
|
|
|
- {
|
|
|
- temp = Update_Sub_BMS_1_Software(UPDATE_STEP_DATA);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- temp = Update_Sub_BMS_2_Software(UPDATE_STEP_DATA);
|
|
|
- }
|
|
|
-
|
|
|
- if(temp)
|
|
|
- {
|
|
|
- if(update_bat.ub_sq == update_bat.ub_total)
|
|
|
- {
|
|
|
- memset(&update_bat,0x00,sizeof(update_bat));
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 4;
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 3;
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 2;
|
|
|
- }
|
|
|
- else
|
|
|
- rtn = 1;
|
|
|
-
|
|
|
len = 2;
|
|
|
- buf[len++] = rtn;
|
|
|
+ buf[len++] = 1;
|
|
|
break;
|
|
|
case KEY_END_CTR_BAT_UPDATE_EXIT:
|
|
|
//if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
// return 1;
|
|
|
-
|
|
|
- memset(&update_bat,0x00,sizeof(update_bat));
|
|
|
-
|
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
|
break;
|
|
|
@@ -819,8 +739,6 @@ void Check_End_Ctr_Status(void)
|
|
|
void End_Ctr_Initial(void)
|
|
|
{
|
|
|
E_CTR_Initial();
|
|
|
-
|
|
|
- memset(&update_bat,0x00,sizeof(update_bat));
|
|
|
}
|
|
|
|
|
|
void End_Ctr_Self_Send_Timeout(void)
|