|
@@ -38,7 +38,6 @@ extern UINT32 Timer_count;
|
|
|
extern volatile BOOL Sleep_flag;
|
|
|
extern AppNVMDataType AppNVMData;
|
|
|
extern AppDataBody AppDataInfo;
|
|
|
-extern UINT8 WorkFlag;
|
|
|
extern UINT8 UDSSwitch;
|
|
|
//全局变量输出区
|
|
|
BOOL UartBattInfoRecvFlag = false;
|
|
@@ -250,14 +249,14 @@ static void UartTask(void* arg)
|
|
|
currentTimerCount = Timer_count;
|
|
|
if(BMS_Fota_update_flag)
|
|
|
{
|
|
|
- if(WorkFlag==0x00)
|
|
|
+ if(BattWorkStateDelay==0x00)
|
|
|
{
|
|
|
PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_UPDATE);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
//限制充电测试
|
|
|
- if((battSOC>=95)&&(battWorkState ==0x02)&&(((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x02)!=0x00))//try to lock lock the charge
|
|
|
+ if((battSOC>=95)&&(BattWorkStateDelay ==0x02)&&(((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x02)!=0x00))//try to lock lock the charge
|
|
|
{
|
|
|
UartWriteData.WriteCmd = 0x01;
|
|
|
UartWriteData.Data[0] = 0x00|(UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2]);
|
|
@@ -281,7 +280,7 @@ static void UartTask(void* arg)
|
|
|
UartWriteData.Data[1] = 0x00|((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x02);
|
|
|
osMessageQueuePut(UartWriteCmdHandle,&UartWriteData,0,0);
|
|
|
}
|
|
|
- else if (battWorkState ==0x00 && AppNVMData.isBattLocked==FALSE && (((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x01)!=0x01)) // try to unlock
|
|
|
+ else if (battWorkState ==0x00 && AppNVMData.isBattLocked==FALSE && (((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x01)!=0x01)&&(uartReadSuccessFlag==TRUE)) // try to unlock
|
|
|
{
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("[%d]try to unlock:%X-%X\n",__LINE__,AppNVMData.isBattLocked,(UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x03);
|
|
@@ -291,14 +290,14 @@ static void UartTask(void* arg)
|
|
|
UartWriteData.Data[1] = 0x01|((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1])&0x02);
|
|
|
osMessageQueuePut(UartWriteCmdHandle,&UartWriteData,0,0);
|
|
|
}
|
|
|
- if(AppDataInfo.RelayControl==TRUE && ((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2])&0x80)==0x00)//继电器断开
|
|
|
+ if((AppDataInfo.RelayControl==TRUE) && (((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2])&0x80)==0x00)&&(uartReadSuccessFlag==TRUE))//继电器断开
|
|
|
{
|
|
|
UartWriteData.WriteCmd = 0x03;
|
|
|
UartWriteData.Data[0] = 0x80;
|
|
|
UartWriteData.Data[1] = 0x00|(UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2+1]);
|
|
|
osMessageQueuePut(UartWriteCmdHandle,&UartWriteData,0,0);
|
|
|
}
|
|
|
- else if(AppDataInfo.RelayControl==FALSE && ((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2])&0x80)==0x80)//继电器闭合
|
|
|
+ else if((AppDataInfo.RelayControl==FALSE) && (((UartReadMsg.data[(0x1B+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+BATT_OTHER_TEMP_NUM)*2])&0x80)==0x80)&&(uartReadSuccessFlag==TRUE))//继电器闭合
|
|
|
{
|
|
|
UartWriteData.WriteCmd = 0x03;
|
|
|
UartWriteData.Data[0] = 0x00;
|