|
@@ -447,6 +447,28 @@ static BOOL uartBattInfoDecode(UINT8* dataPtr)
|
|
RelayControlState = (dataPtr[(0x1B+BATT_CELL_VOL_NUM+TEMP_NUM)*2])&0x80;
|
|
RelayControlState = (dataPtr[(0x1B+BATT_CELL_VOL_NUM+TEMP_NUM)*2])&0x80;
|
|
battHeatEnableState = dataPtr[(0x1C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]&0x01;
|
|
battHeatEnableState = dataPtr[(0x1C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]&0x01;
|
|
|
|
|
|
|
|
+ //SOC问题紧急修复
|
|
|
|
+ UINT8 SOC1 = 0;
|
|
|
|
+ static UINT8 SOC_counter=0;
|
|
|
|
+ SOC1 = battPackVol*0.45-270;
|
|
|
|
+ if((battSOC - SOC1>10)&&(battPackVol>500)&&(battPackVol<900))
|
|
|
|
+ {
|
|
|
|
+ SOC_counter++;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ SOC_counter = 0;
|
|
|
|
+ }
|
|
|
|
+ if(SOC_counter>=10)
|
|
|
|
+ {
|
|
|
|
+ battSOC = SOC1;
|
|
|
|
+ if(osOK==osMutexAcquire(Error_Mutex, 100))
|
|
|
|
+ {
|
|
|
|
+ UINT8 ErrorNumTemp = 238;
|
|
|
|
+ PutErrorNum((UINT16 *)ErrorNum,sizeof(ErrorNum),ErrorNumTemp);
|
|
|
|
+ }
|
|
|
|
+ osMutexRelease(Error_Mutex);
|
|
|
|
+ }
|
|
maxCellTemp = 0x00;
|
|
maxCellTemp = 0x00;
|
|
minCellTemp = 0xFF;
|
|
minCellTemp = 0xFF;
|
|
for(i=0;i<BATT_TEMP_NUM;i++)
|
|
for(i=0;i<BATT_TEMP_NUM;i++)
|