|
@@ -914,7 +914,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
#endif
|
|
#endif
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
osDelay(50);
|
|
osDelay(50);
|
|
@@ -966,7 +966,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1002,7 +1002,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
memset((UINT8*)(&pUpdateMsgRecv) , 0, sizeof(BMS_Update_Recv_Msg_Type));
|
|
memset((UINT8*)(&pUpdateMsgRecv) , 0, sizeof(BMS_Update_Recv_Msg_Type));
|
|
ret = SP_BMS_Update_Query(pUpdateMsgSend, updateMsgSendLen, (UINT8*)(&pUpdateMsgRecv), 0, 500);
|
|
ret = SP_BMS_Update_Query(pUpdateMsgSend, updateMsgSendLen, (UINT8*)(&pUpdateMsgRecv), 0, 500);
|
|
//updateStep = UPDATE_STEP_SET_BAUD_RATE;
|
|
//updateStep = UPDATE_STEP_SET_BAUD_RATE;
|
|
- updateStep = UPDATE_STEP_SET_BAUD_RATE;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_CHECK_VERSION_AGAIN;//2021-04-09跳过波特率设置
|
|
#ifdef USING_PRINTF
|
|
#ifdef USING_PRINTF
|
|
|
|
|
|
printf("query:");
|
|
printf("query:");
|
|
@@ -1019,6 +1019,75 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
printf("\n");
|
|
printf("\n");
|
|
printf("next update step:%d\n",updateStep);
|
|
printf("next update step:%d\n",updateStep);
|
|
#endif
|
|
#endif
|
|
|
|
+ osDelay(100);
|
|
|
|
+ break;
|
|
|
|
+ case UPDATE_STEP_CHECK_VERSION_AGAIN:
|
|
|
|
+ dataLen = 0;
|
|
|
|
+ updateMsgSendLen = 7;
|
|
|
|
+ pUpdateMsgSend[0] = 0xEB; //start flag
|
|
|
|
+ pUpdateMsgSend[1] = 0x01; //add flag
|
|
|
|
+ pUpdateMsgSend[2] = 0x01; //read
|
|
|
|
+ pUpdateMsgSend[3] = 0x03; //data len
|
|
|
|
+ pUpdateMsgSend[4] = 0x90; //cmd
|
|
|
|
+ pUpdateMsgSend[5] = 0x93; //checksum
|
|
|
|
+ pUpdateMsgSend[6] = 0xF5; //end flag
|
|
|
|
+ //printf("updateMsgSendLen0 = %x\n",updateMsgSendLen);
|
|
|
|
+ memset((UINT8*)(&pUpdateMsgRecv) , 0, sizeof(BMS_Update_Recv_Msg_Type));
|
|
|
|
+ ret = SP_BMS_Update_Query(pUpdateMsgSend, updateMsgSendLen, (UINT8*)(&pUpdateMsgRecv),sizeof(BMS_Update_Recv_Msg_Type), 500);
|
|
|
|
+ //printf("updateMsgSendLen1 = %x\n",updateMsgSendLen);
|
|
|
|
+ if(ret!=0)
|
|
|
|
+ {
|
|
|
|
+ if(pUpdateMsgRecv.startFlag == 0xEB && pUpdateMsgRecv.endFlag == 0xF5)
|
|
|
|
+ {
|
|
|
|
+ if(pUpdateMsgRecv.cmd == 0x90)
|
|
|
|
+ {
|
|
|
|
+ if(pUpdateMsgRecv.data != 0xFF)
|
|
|
|
+ {
|
|
|
|
+ updateStep = UPDATE_STEP_REQUEST_UPDATE;
|
|
|
|
+ errorCount = 0;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ updateStep = UPDATE_STEP_SET_BAUD_RATE;
|
|
|
|
+ errorCount = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ errorCount++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ errorCount++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ errorCount++;
|
|
|
|
+ }
|
|
|
|
+ #ifdef USING_PRINTF
|
|
|
|
+ //printf("update step:%d\n",updateStep);
|
|
|
|
+ printf("query:");
|
|
|
|
+
|
|
|
|
+ for(j=0;j<updateMsgSendLen;j++)
|
|
|
|
+ {
|
|
|
|
+ printf("%x ",pUpdateMsgSend[j]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ printf("\nanswer:");
|
|
|
|
+ for(j=0;j<sizeof(BMS_Update_Recv_Msg_Type);j++)
|
|
|
|
+ {
|
|
|
|
+ printf("%x ",*(((UINT8*)&pUpdateMsgRecv)+j));
|
|
|
|
+ }
|
|
|
|
+ printf("\n");
|
|
|
|
+ printf("next update step:%d\n",updateStep);
|
|
|
|
+ #endif
|
|
|
|
+ if(errorCount>10)
|
|
|
|
+ {
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
|
|
+ errorCount = 0;
|
|
|
|
+ }
|
|
osDelay(50);
|
|
osDelay(50);
|
|
break;
|
|
break;
|
|
case UPDATE_STEP_SET_BAUD_RATE:
|
|
case UPDATE_STEP_SET_BAUD_RATE:
|
|
@@ -1080,7 +1149,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1150,7 +1219,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1224,7 +1293,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1292,7 +1361,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1440,7 +1509,7 @@ void SP_BMS_Update_Service() //超力源BMS升级服务
|
|
|
|
|
|
if(errorCount>10)
|
|
if(errorCount>10)
|
|
{
|
|
{
|
|
- updateStep = UPDATE_STEP_ERROR;
|
|
|
|
|
|
+ updateStep = UPDATE_STEP_RESET;
|
|
errorCount = 0;
|
|
errorCount = 0;
|
|
}
|
|
}
|
|
|
|
|