|
@@ -11,6 +11,7 @@
|
|
|
#include "numeric.h"
|
|
|
#include "hal_module_adapter.h"
|
|
|
#include "BCUDisp.h"
|
|
|
+#include "funlib.h"
|
|
|
/**
|
|
|
* @brief : 保护板保护状态解码
|
|
|
* @param {*}
|
|
@@ -818,6 +819,7 @@ BOOL uartBattInfoDecode(UINT8 *dataPtr)
|
|
|
UINT16 Batt_current;
|
|
|
UINT8 BATT_CELL_VOL_NUM = 0, BATT_TEMP_NUM = 0;
|
|
|
UINT32 Battsumvoltage = 0;
|
|
|
+ static BOOL First_Run = true;
|
|
|
BATT_CELL_VOL_NUM = (dataPtr[(0x00) * 2] << 8) | (dataPtr[(0x00) * 2 + 1]);
|
|
|
BATT_TEMP_NUM = ((dataPtr[(0x01) * 2] << 8) | (dataPtr[(0x01) * 2 + 1])) - BMS_OTHER_TEMP;
|
|
|
if ((AppDataInfo.BattCellCount != BATT_CELL_VOL_NUM || AppDataInfo.BattTempCount != BATT_TEMP_NUM) && (BATT_CELL_VOL_NUM != 0) && (BATT_TEMP_NUM != 0))
|
|
@@ -882,10 +884,20 @@ BOOL uartBattInfoDecode(UINT8 *dataPtr)
|
|
|
avrgCellVol = Battsumvoltage / BATT_CELL_VOL_NUM;
|
|
|
battWorkState = (dataPtr[(0x03 + BATT_CELL_VOL_NUM) * 2 + 1]) & 0x03; //电池状态(原始数据),0表示静置,1表示放电,2表示充电
|
|
|
TEMP_NUM = BATT_TEMP_NUM + BMS_OTHER_TEMP;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
for (i = 0; i < BATT_TEMP_NUM; i++)
|
|
|
- {
|
|
|
- battCellTemp[i] = dataPtr[(0x06 + BATT_CELL_VOL_NUM + i) * 2 + 1];
|
|
|
+ {
|
|
|
+ if(First_Run)
|
|
|
+ {
|
|
|
+ battCellTemp[i] = dataPtr[(0x06 + BATT_CELL_VOL_NUM + i) * 2 + 1];
|
|
|
+ }
|
|
|
+ battCellTemp[i] = DataFilt8(dataPtr[(0x06 + BATT_CELL_VOL_NUM + i) * 2 + 1],&battCellTemp[i],5);
|
|
|
}
|
|
|
+ First_Run = FALSE;
|
|
|
+
|
|
|
+
|
|
|
MOSTemp = dataPtr[(0x06 + BATT_CELL_VOL_NUM + BATT_TEMP_NUM) * 2 + 1];
|
|
|
packTemp = dataPtr[(0x06 + BATT_CELL_VOL_NUM + BATT_TEMP_NUM + 1) * 2 + 1];
|
|
|
chargerConnectState = (dataPtr[(0x03 + BATT_CELL_VOL_NUM) * 2 + 1] >> 2) & 0x01; //充电器连接状态,0表示未连接,1表示已连接
|