|
@@ -9,135 +9,12 @@
|
|
|
#include "AppFunc.h"
|
|
|
#include "numeric.h"
|
|
|
#include "hal_module_adapter.h"
|
|
|
-void BattWorkDelayFunc(UINT8 battWorkCurrentState)
|
|
|
-{
|
|
|
- static UINT16 workDelayCounter = 0;
|
|
|
- if(battWorkCurrentState==BATT_IDLE_SYM&&BattWorkStateDelay==BATT_DISCHARGE_SYM)//从放电转静置 10s延时
|
|
|
- {
|
|
|
- workDelayCounter++;
|
|
|
- if(workDelayCounter>=10)
|
|
|
- {
|
|
|
- workDelayCounter==0;
|
|
|
- BattWorkStateDelay = battWorkCurrentState;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battWorkCurrentState==BATT_IDLE_SYM&&BattWorkStateDelay==BATT_CHARGE_SYM)//从充电转静置1min延时
|
|
|
- {
|
|
|
- workDelayCounter++;
|
|
|
- if(workDelayCounter>=60)
|
|
|
- {
|
|
|
- workDelayCounter==0;
|
|
|
- BattWorkStateDelay = battWorkCurrentState;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battWorkCurrentState==BATT_DISCHARGE_SYM)//从 充电或者静置 转放电 3s延时
|
|
|
- {
|
|
|
- workDelayCounter++;
|
|
|
- if(workDelayCounter>=3)
|
|
|
- {
|
|
|
- workDelayCounter==0;
|
|
|
- BattWorkStateDelay = battWorkCurrentState;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battWorkCurrentState==BATT_CHARGE_SYM)//从 放电或者静置 转充电 1min延时
|
|
|
- {
|
|
|
- workDelayCounter++;
|
|
|
- if(workDelayCounter>=60)
|
|
|
- {
|
|
|
- workDelayCounter==0;
|
|
|
- BattWorkStateDelay = battWorkCurrentState;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- BattWorkStateDelay = battWorkCurrentState;
|
|
|
- workDelayCounter = 0;
|
|
|
- }
|
|
|
- return;
|
|
|
-}
|
|
|
|
|
|
-UINT8 LookUpRTtable(UINT32 R_value)
|
|
|
-{
|
|
|
- UINT8 Temp_Table1[23] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
|
|
|
- UINT8 Temp_Table2[217] = {23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,
|
|
|
- 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,
|
|
|
- 84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
|
|
|
- 115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,
|
|
|
- 142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,
|
|
|
- 169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,
|
|
|
- 196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,
|
|
|
- 223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239};
|
|
|
- UINT32 R_Table1[23] = {202269,191063,180554,170694,161438,152746,144580,136905,129687,122898,116508,
|
|
|
- 110493,104827,99488,94455,89710,85233,81008,77019,73252,69693,66329,63148};
|
|
|
- UINT16 R_Table2[217] = {
|
|
|
- 60140,57293,54599,52049,49633,47343,45174,43117,41166,39315,37558,35891,34307,32802,31373,
|
|
|
- 30014,28722,27493,26324,25211,24152,23144,22183,21268,20395,19564,18771,18015,17293,16604,
|
|
|
- 15947,15319,14720,14147,13600,13077,12577,12098,11641,11203,10784,10383,10000,9632,9280,8942,
|
|
|
- 8619,8309,8012,7727,7454,7191,6940,6698,6466,6244,6030,5825,5627,5438,5255,5080,4911,4749,4593,
|
|
|
- 4443,4299,4160,4026,3898,3773,3654,3539,3428,3321,3218,3119,3023,2931,2841,2755,2672,2592,2515,
|
|
|
- 2441,2369,2299,2232,2167,2104,2044,1985,1928,1874,1821,1769,1720,1672,1626,1581,1537,1495,1455,
|
|
|
- 1415,1377,1340,1305,1270,1236,1204,1172,1142,1112,1083,1056,1029,1002,977,952,928,905,883,861,
|
|
|
- 839,819,799,779,760,742,724,707,690,674,658,642,627,613,599,585,571,558,546,533,521,509,498,487,
|
|
|
- 476,466,455,445,436,426,417,408,399,391,382,374,366,359,351,344,337,330,323,316,310,304,298,292,
|
|
|
- 286,280,274,269,264,259,254,249,244,239,234,230,226,221,217,213,209,205,201,198,194,190,187,183,
|
|
|
- 180,177,174,171,168,165,162,159,156,153,151,148,145,143,141,138,136,133,131,129,127,125};
|
|
|
- if(R_value>R_Table2[0])
|
|
|
- {
|
|
|
- if(R_value<=R_Table1[22])//判断是否超出表尾
|
|
|
- {
|
|
|
- return Temp_Table1[22];
|
|
|
- }
|
|
|
- else if(R_value>=R_Table1[0])//判断是否超出表头
|
|
|
- {
|
|
|
- return Temp_Table1[0];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- for(int i=0;i<23-1;i++)
|
|
|
- {
|
|
|
- if ((R_value<=R_Table1[i])&&(R_value>R_Table1[i+1]))//中间判断
|
|
|
- {
|
|
|
- return Temp_Table1[i];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }//R-1
|
|
|
- else
|
|
|
- {
|
|
|
- if(R_value<=R_Table2[216])//判断是否超出表尾
|
|
|
- {
|
|
|
- return Temp_Table2[216];
|
|
|
- }
|
|
|
- else if(R_value>=R_Table2[0])//判断是否超出表头
|
|
|
- {
|
|
|
- return Temp_Table2[0];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- for(int i=0;i<217-1;i++)
|
|
|
- {
|
|
|
- if ((R_value<R_Table2[i])&&(R_value>=R_Table2[i+1]))//中间判断
|
|
|
- {
|
|
|
- return Temp_Table2[i+1];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }//R-2
|
|
|
-}
|
|
|
-UINT8 bcc_chk(UINT8* data, UINT16 length)
|
|
|
+
|
|
|
+UINT8 bcc_chk(UINT8* data, UINT8 length)
|
|
|
{
|
|
|
UINT8 bcc_chk_return = 0x00;
|
|
|
- UINT16 count = 0;
|
|
|
+ UINT8 count = 0;
|
|
|
while (count<length)
|
|
|
{
|
|
|
bcc_chk_return^=data[count];
|
|
@@ -145,68 +22,6 @@ UINT8 bcc_chk(UINT8* data, UINT16 length)
|
|
|
}
|
|
|
return bcc_chk_return;
|
|
|
}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * 加热判断函数
|
|
|
- * 输入:标定参数值
|
|
|
- * 输出:加热状态
|
|
|
- * 处理:根据标定参数值以及当前状态,判断是否进行加热,加热策略的更改在此函数
|
|
|
-***********************************************************************************************************************/
|
|
|
-BOOL BattHeaterSwitch(UINT8* heaterSwitch,UINT8 DeltaTempRange,UINT8 OpenHeaterTemp,UINT8 CloseHeaterTemp)
|
|
|
-{
|
|
|
- BOOL isNeedtoSwitch = FALSE;
|
|
|
-
|
|
|
- UINT8 currentSwitchState = 0;
|
|
|
- //get the current switch state and the cell temp
|
|
|
- currentSwitchState = battHeatEnableState&0x01;
|
|
|
-
|
|
|
- if(currentSwitchState==0) //当前状态为关闭,判断是否应该开启
|
|
|
- {
|
|
|
- if(minCellTemp<OpenHeaterTemp+40 && minCellTemp>=-29+40 && maxCellTemp<OpenHeaterTemp+DeltaTempRange+40)//温度偏移为40
|
|
|
- {
|
|
|
- *heaterSwitch = 1;
|
|
|
- isNeedtoSwitch = true;
|
|
|
- }
|
|
|
- }
|
|
|
- else //当前状态为开启,判断是否应该关闭
|
|
|
- {
|
|
|
- if(minCellTemp>=CloseHeaterTemp+40 || maxCellTemp>=CloseHeaterTemp+DeltaTempRange+40)
|
|
|
- {
|
|
|
- *heaterSwitch = 0;
|
|
|
- isNeedtoSwitch = true;
|
|
|
- }
|
|
|
- }
|
|
|
- return isNeedtoSwitch;
|
|
|
-}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * 蜂鸣器控制函数
|
|
|
- * 输入:鸣响时长和鸣响占比
|
|
|
- * 输出:LED控制
|
|
|
- * 处理:根据不同状态进行LED显示
|
|
|
-***********************************************************************************************************************/
|
|
|
-void relayControlFunc(UINT8 RingTimes,float DutyRatio)
|
|
|
-{
|
|
|
- static UINT8 BuzzerTimer = 0;
|
|
|
- UINT8 BuzzerPeriod = 10;//1000ms
|
|
|
- UINT8 timerCount=0;
|
|
|
- BuzzerTimer++;
|
|
|
- while(timerCount<RingTimes)
|
|
|
- {
|
|
|
- if(BuzzerTimer<(UINT8)(BuzzerPeriod*DutyRatio))
|
|
|
- {
|
|
|
- relayControl(TRUE);
|
|
|
- }
|
|
|
- else if(BuzzerTimer>=(UINT8)(BuzzerPeriod*DutyRatio) && BuzzerTimer<BuzzerPeriod)
|
|
|
- {
|
|
|
- relayControl(FALSE);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- relayControl(FALSE);
|
|
|
- BuzzerTimer = 0;
|
|
|
- }
|
|
|
- timerCount++;
|
|
|
- }
|
|
|
-}
|
|
|
/***********************************************************************************************************************
|
|
|
* LED控制函数
|
|
|
* 输入:运行状态
|
|
@@ -224,7 +39,7 @@ void LEDDisplay(void)
|
|
|
LightTimer++;
|
|
|
ErrorLightTimer++;
|
|
|
#ifdef USING_PRINTF1
|
|
|
- printf("[%d]-%d-%d-%d\n",__LINE__,LightTimer,ErrorLightTimer,battSOC);
|
|
|
+ printf("[%d]-%d-%d-%d\n",__LINE__,LightTimer,ErrorLightTimer,battSoc);
|
|
|
#endif
|
|
|
if(AppDataInfo.BattLock==TRUE)//电池整处于锁定状态
|
|
|
{
|
|
@@ -263,360 +78,69 @@ void LEDDisplay(void)
|
|
|
currentState = AppDataInfo.BattLock;
|
|
|
LightTimer = 0;
|
|
|
}
|
|
|
- else if(UartRecvFlag==0) //电池未收到UART信息
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(battSoc<=10)
|
|
|
{
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- FaultDisplay(LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
}
|
|
|
else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
{
|
|
|
NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
-
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- return;
|
|
|
- }
|
|
|
- else if(UartRecvFlag==1) //电池接收到UART信息,且正确运行
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSoc>10&&battSoc<=25)
|
|
|
{
|
|
|
- if(battWorkState == 0x02) //充电模式下,如果只有“SOC低故障”,那么就不显示故障灯 zhengchao20210713 add
|
|
|
- {
|
|
|
- if((((battWarningState >> 10) & 0x01) == 0x01) && ((battWarningState & 0xFFFFFBFF) == 0x00))
|
|
|
- return;
|
|
|
- }
|
|
|
- if(battWarningState != 0) //电池存在故障
|
|
|
- {
|
|
|
- if(ErrorLightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
-
|
|
|
- FaultDisplay(LED_TURN_ON);
|
|
|
-
|
|
|
- }
|
|
|
- else if(ErrorLightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && ErrorLightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
-
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
- ErrorLightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
- ErrorLightTimer = 0;
|
|
|
- }
|
|
|
-
|
|
|
- if(battWorkState == 0||battWorkState == 1) //静置或放电状态
|
|
|
- {
|
|
|
- if(battSOC<=10)
|
|
|
- {
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battSOC>10&&battSOC<=25)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- else if(battSOC>25&&battSOC<=50)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- else if(battSOC>50&&battSOC<=75)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- else if(battSOC>75&&battSOC<=100)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battWorkState == 2)
|
|
|
- {
|
|
|
- if(battSOC<=25)
|
|
|
- {
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battSOC>25&&battSOC<=50)
|
|
|
- {
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battSOC>50&&battSOC<=75)
|
|
|
- {
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else if(battSOC>75&&battSOC<=97)
|
|
|
- {
|
|
|
- if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
- }
|
|
|
- else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(battSOC>97&&battSOC<=100)
|
|
|
- {
|
|
|
- NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * Uart数据解码函数
|
|
|
- * 输入:数据指针
|
|
|
- * 输出:状态
|
|
|
- * 处理:将uart数据进行解码,按照协议进行解码
|
|
|
-***********************************************************************************************************************/
|
|
|
-BOOL uartBattInfoDecode(UINT8* dataPtr)
|
|
|
-{
|
|
|
- UINT8 i = 0,temp=0;
|
|
|
- INT8 BattCurrentNegFlag = 1;
|
|
|
- UINT8 TEMP_NUM = 0;
|
|
|
- UINT16 Batt_current;
|
|
|
- UINT8 BATT_CELL_VOL_NUM = 0,BATT_TEMP_NUM = 0;
|
|
|
- UINT32 Battsumvoltage = 0;
|
|
|
- BATT_CELL_VOL_NUM = (dataPtr[(0x00)*2] << 8) | (dataPtr[(0x00)*2 + 1]);
|
|
|
- if(BATT_CELL_VOL_NUM==0)
|
|
|
- {
|
|
|
- return FALSE;
|
|
|
- }
|
|
|
- BATT_TEMP_NUM = ((dataPtr[(0x01)*2] << 8) | (dataPtr[(0x01)*2 + 1]))-BMS_OTHER_TEMP;
|
|
|
- if(AppNVMData.BattCellCount!=BATT_CELL_VOL_NUM || AppNVMData.BattTempCount!=BATT_TEMP_NUM )
|
|
|
- {
|
|
|
- AppNVMData.appDataModify = TRUE;
|
|
|
- AppNVMData.BattCellCount = BATT_CELL_VOL_NUM;
|
|
|
- AppNVMData.BattTempCount = BATT_TEMP_NUM;
|
|
|
- }
|
|
|
- for(i=0;i<BATT_CELL_VOL_NUM;i++)
|
|
|
- {
|
|
|
- battCellU[i] = (dataPtr[(0x02+i)*2] << 8) | dataPtr[(0x02+i)*2 + 1];
|
|
|
- Battsumvoltage = Battsumvoltage + battCellU[i];
|
|
|
- }
|
|
|
- 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];
|
|
|
- }
|
|
|
- avrgCellVol = Battsumvoltage/BATT_CELL_VOL_NUM;
|
|
|
- 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];
|
|
|
-
|
|
|
- Batt_current = (dataPtr[(0x02+BATT_CELL_VOL_NUM)*2]<<8)|(dataPtr[(0x02+BATT_CELL_VOL_NUM)*2+1]);
|
|
|
- //原始数据:充电为负,放电为正
|
|
|
- if(battWorkState == 0x02) //充电过程
|
|
|
- {
|
|
|
- if(Batt_current >0x8000)// 数据为负
|
|
|
- {
|
|
|
- //求补码,结果为负
|
|
|
- Batt_current = (UINT16)((UINT16)(~(Batt_current))+1);
|
|
|
- Batt_current = Batt_current/10;
|
|
|
- BattCurrentNegFlag = -1;
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
}
|
|
|
- else
|
|
|
+ else if(battSoc>25&&battSoc<=50)
|
|
|
{
|
|
|
- //源码,结果为负
|
|
|
- Batt_current = Batt_current/10;
|
|
|
- BattCurrentNegFlag = -1;
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
}
|
|
|
- }
|
|
|
- else //放电过程
|
|
|
- {
|
|
|
- if(Batt_current >0x8000)// 数据为负
|
|
|
+ else if(battSoc>50&&battSoc<=75)
|
|
|
{
|
|
|
- //求补码,结果为正
|
|
|
- Batt_current = (UINT16)((UINT16)(~(Batt_current))+1);
|
|
|
- Batt_current = Batt_current/10;
|
|
|
- BattCurrentNegFlag = 1;
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
}
|
|
|
- else
|
|
|
+ else if(battSoc>75&&battSoc<=100)
|
|
|
{
|
|
|
- //源码,结果为正
|
|
|
- Batt_current = Batt_current/10;
|
|
|
- BattCurrentNegFlag = 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- battI = Batt_current*BattCurrentNegFlag + 0x2710;
|
|
|
- //bit0 ~ bit31 represent cell0 ~ cell31
|
|
|
- battBalanceoInfo = dataPtr[(0x06+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1] | (dataPtr[(0x06+BATT_CELL_VOL_NUM+TEMP_NUM)*2] <<8) + (dataPtr[(0x07+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]<<16) | (dataPtr[(0x07+BATT_CELL_VOL_NUM+TEMP_NUM)*2] <<24);
|
|
|
-
|
|
|
- bmsHwVersion = dataPtr[(0x08+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
|
|
|
- bmsSwVersion = dataPtr[(0x08+BATT_CELL_VOL_NUM+TEMP_NUM)*2];
|
|
|
-
|
|
|
- if(AppNVMData.BmsHwVersion!=bmsHwVersion || AppNVMData.BmsSwVersion!=bmsSwVersion )
|
|
|
- {
|
|
|
- AppNVMData.appDataModify = TRUE;
|
|
|
- AppNVMData.BmsHwVersion = bmsHwVersion;
|
|
|
- AppNVMData.BmsSwVersion = bmsSwVersion;
|
|
|
- }
|
|
|
- #ifdef USING_PRINTF1
|
|
|
- printf("[%d]-%x\n",__LINE__,(dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]));
|
|
|
- printf("[%d]-%x\n",__LINE__,(dataPtr[(0x1B+BATT_CELL_VOL_NUM+TEMP_NUM)*2]));
|
|
|
- #endif
|
|
|
- temp = ((dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1])>>1)&0x03;
|
|
|
- battMOSSwitchState = ((temp&0x01)<<1)|((temp&0x02)>>1);
|
|
|
- if(AppDataInfo.BattLock==TRUE)
|
|
|
- {
|
|
|
- battMOSSwitchState = battMOSSwitchState |(0x01<<2);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- battMOSSwitchState = battMOSSwitchState |(0x00<<2);
|
|
|
- }
|
|
|
- battWarningState = (dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0]<<16) | (dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0] << 8) |(dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]);
|
|
|
- battProtectState = (dataPtr[(0x03+BATT_CELL_VOL_NUM)*2+0]<<24) | (dataPtr[(0x04+BATT_CELL_VOL_NUM)*2+0] << 16) |(dataPtr[(0x04+BATT_CELL_VOL_NUM)*2+1]<<8) | (dataPtr[(0x05+BATT_CELL_VOL_NUM)*2+1]);
|
|
|
- battSOC = dataPtr[(0x0B+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
|
|
|
- battSOH = dataPtr[(0x0C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
|
|
|
- Battdesigncap = (dataPtr[(0x0E+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<24|(dataPtr[(0x0E+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1])<<16|(dataPtr[(0x0F+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<8|(dataPtr[(0x0F+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]);
|
|
|
- battPackVol =((dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<8|(dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]))/10; //uint 100mV
|
|
|
- maxCellVol = (dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
|
|
|
- minCellVol = (dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
|
|
|
- battHeatEnableState = dataPtr[(0x1C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]&0x01;
|
|
|
-
|
|
|
- maxCellTemp = 0x00;
|
|
|
- minCellTemp = 0xFF;
|
|
|
- for(i=0;i<BATT_TEMP_NUM;i++)
|
|
|
- {
|
|
|
- maxCellTemp = max(maxCellTemp,battCellTemp[i]);
|
|
|
- minCellTemp = min(minCellTemp,battCellTemp[i]);
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
}
|
|
|
- nbSwVersion = APPSWVERSION;
|
|
|
- nbHwVersion = HWVERSION;
|
|
|
- BmsErrorDecode(battWarningState);
|
|
|
- return true;
|
|
|
}
|
|
|
+
|
|
|
/***********************************************************************************************************************
|
|
|
* BMS故障解码函数
|
|
|
* 输入:BMS故障编码
|
|
@@ -716,7 +240,7 @@ static UINT8 BmsErrorDecode(UINT32 battWarningState)
|
|
|
{
|
|
|
ErrorNumTemp = 27;
|
|
|
PutErrorNum((UINT16 *)ErrorNum,sizeof(ErrorNum),ErrorNumTemp);
|
|
|
- //str += "ERROR:存在battSOC低告警故障!!\n";
|
|
|
+ //str += "ERROR:存在battSoc低告警故障!!\n";
|
|
|
}
|
|
|
|
|
|
ret = ((battWarningState >> 11) & 0x01) == 1 ;
|
|
@@ -1164,52 +688,7 @@ static void setDefaultAppDataInfo(void)
|
|
|
memset(&AppDataInfo.sohv_Q_packCapArrE, 300, 10);
|
|
|
return;
|
|
|
}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * 认证加密函数
|
|
|
- * 输入:明文
|
|
|
- * 输出:密文
|
|
|
- * 处理:将明文加密为译文
|
|
|
-***********************************************************************************************************************/
|
|
|
-UINT16 encryptionAlgorithm (UINT16 plainText)
|
|
|
-{
|
|
|
- UINT16 cipherText = 1;
|
|
|
- UINT16 privateKeyE = 37507;
|
|
|
- UINT16 privateKeyN = 10961;
|
|
|
- plainText = plainText % privateKeyN;
|
|
|
- while(privateKeyE >0)
|
|
|
- {
|
|
|
- if(privateKeyE % 2 ==1)
|
|
|
- {
|
|
|
- cipherText = ( cipherText * plainText) % privateKeyN;
|
|
|
- }
|
|
|
- privateKeyE = privateKeyE/2;
|
|
|
- plainText = (plainText * plainText) % privateKeyN;
|
|
|
- }
|
|
|
- return cipherText;
|
|
|
-}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * 认证解密函数
|
|
|
- * 输入:密文
|
|
|
- * 输出:明文
|
|
|
- * 处理:将明文解密为译文
|
|
|
-***********************************************************************************************************************/
|
|
|
-// UINT8 decryptionAlgorithm (UINT16 cipherText)
|
|
|
-// {
|
|
|
-// UINT16 plainText = 1;
|
|
|
-// UINT16 publicKeyD = 43;
|
|
|
-// UINT16 publicKeyN = 10961;
|
|
|
-// cipherText = cipherText % publicKeyN;
|
|
|
-// while(publicKeyD >0)
|
|
|
-// {
|
|
|
-// if(publicKeyD % 2 ==1)
|
|
|
-// {
|
|
|
-// plainText = plainText * cipherText % publicKeyN;
|
|
|
-// }
|
|
|
-// publicKeyD = publicKeyD/2;
|
|
|
-// cipherText = (cipherText * cipherText) % publicKeyN;
|
|
|
-// }
|
|
|
-// return (UINT8)plainText;
|
|
|
-// }
|
|
|
+
|
|
|
/***********************************************************************************************************************
|
|
|
* Fota升级处理函数
|
|
|
* 输入:网络接收的数据,网络链接ID
|
|
@@ -1447,11 +926,11 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
|
|
|
tcpipConnectionSend(connectId,Fota_Answer,43,0,0,0);
|
|
|
if(Fota_S.Fota_All_Data_Len==Fota_S.Fota_Current_Addres)
|
|
|
{
|
|
|
- BMS_Fota_update_flag = TRUE;
|
|
|
+ //BMS_Fota_update_flag = TRUE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- BMS_Fota_update_flag = FALSE;
|
|
|
+ //BMS_Fota_update_flag = FALSE;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -1490,910 +969,3326 @@ static UINT8 Fota_crc_chk(UINT8* data,UINT8 length)
|
|
|
}
|
|
|
return reg_crc;
|
|
|
}
|
|
|
-/***********************************************************************************************************************
|
|
|
- * 1000ms 周期姓发送报文
|
|
|
- * 输入:--
|
|
|
- * 输出:--
|
|
|
- * 处理:根据调用周期及计时器,每100ms发送2帧报文,报文周期为1000ms
|
|
|
-***********************************************************************************************************************/
|
|
|
-void CanMsgTx1000ms()
|
|
|
-{
|
|
|
- static UINT32 timerRecord = 0;
|
|
|
- UINT8 count = 0;
|
|
|
- CAN_Msg_Type canMsg;
|
|
|
- UINT16 COMOutTable[28]={
|
|
|
- 0x6A0,0x6A1,0x6A2,0x6A3,0x6A4,0x6A5,0x6A6,
|
|
|
- 0x6B0,0x6BA,
|
|
|
- 0x6C0,0x6C1,0x6C2,0x6C3,0x6C4,
|
|
|
- 0x7C0,0x7C1,0x7C2,0x7C3,0x7C4,0x7C5,0x7C6,0x7C7,0x7C8,0x7C9,0x7CA,0x7CB,0x7CC,0x7CD
|
|
|
- };
|
|
|
-
|
|
|
- if(TimeCounter - timerRecord > 0)
|
|
|
- {
|
|
|
- timerRecord = TimeCounter;
|
|
|
- count = TimeCounter%10;
|
|
|
- switch (count)
|
|
|
- {
|
|
|
- case 0: //send cell batt info 0x6A0、0x6A1
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 1: //send cell batt info 0x6A2、0x6A3
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
- break;
|
|
|
-
|
|
|
- case 2: //send cell batt info 0x6A4、 0x6A5
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
- break;
|
|
|
-
|
|
|
- case 3: //send cell batt info 0x6A6、0x6B0
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 4: //send batt temp info 0x6BA、0x6C0
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
- break;
|
|
|
-
|
|
|
- case 5: //send batt other info 0x6C1、0x6C2
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
- break;
|
|
|
|
|
|
- case 6: //send batt other info 0x6C3、0x6C4
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2];
|
|
|
- CANEncodeFunction( COMOutTable[count*2], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
-
|
|
|
- canMsg.DLC = 8;
|
|
|
- canMsg.Id = COMOutTable[count*2+1];
|
|
|
- CANEncodeFunction( COMOutTable[count*2+1], canMsg.Data);
|
|
|
- HAL_Can_Transmit(canMsg);
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
- * 周期性报文组包
|
|
|
+ * 周期性报文拆包
|
|
|
* 输入:报文ID、can报文数据(指针)
|
|
|
* 输出:--
|
|
|
- * 处理:根据不同的ID,进行组包,并放入指针中
|
|
|
+ * 处理:根据不同的ID,将数据进行拆包,并放置到相应的变量中
|
|
|
***********************************************************************************************************************/
|
|
|
-
|
|
|
-void CANEncodeFunction(UINT32 ID,UINT8* msgData)
|
|
|
+void DecodeFunction(UINT32 ID,UINT8* rawData)
|
|
|
{
|
|
|
- memset(msgData, 0xFF, 8);
|
|
|
+ static int msgCounter = 0;
|
|
|
+ msgCounter++;
|
|
|
+ printf("id = %x\tmsgCounter = %d\n",ID,msgCounter);
|
|
|
+ //printf("can extern id: %x\n",ID);
|
|
|
+ printf("can data:");
|
|
|
+ for(int i=0;i<8;i++)
|
|
|
+ {
|
|
|
+ printf("%x ",*(UINT8*)(rawData +i));
|
|
|
+ }
|
|
|
+ printf("\n");
|
|
|
+
|
|
|
switch (ID)
|
|
|
{
|
|
|
- case 0x6A0:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[0]>>8) & 0xFF) | (((battCellU[0]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[1]>>8) & 0xFF) | (((battCellU[1]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[2]>>8) & 0xFF) | (((battCellU[2]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[3]>>8) & 0xFF) | (((battCellU[3]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A1:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[4]>>8) & 0xFF) | (((battCellU[4]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[5]>>8) & 0xFF) | (((battCellU[5]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[6]>>8) & 0xFF) | (((battCellU[6]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[7]>>8) & 0xFF) | (((battCellU[7]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A2:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[8]>>8) & 0xFF) | (((battCellU[8]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[9]>>8) & 0xFF) | (((battCellU[9]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[10]>>8) & 0xFF) | (((battCellU[10]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[11]>>8) & 0xFF) | (((battCellU[11]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A3:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[12]>>8) & 0xFF) | (((battCellU[12]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[13]>>8) & 0xFF) | (((battCellU[13]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[14]>>8) & 0xFF) | (((battCellU[14]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[15]>>8) & 0xFF) | (((battCellU[15]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A4:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[16]>>8) & 0xFF) | (((battCellU[16]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[17]>>8) & 0xFF) | (((battCellU[17]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[18]>>8) & 0xFF) | (((battCellU[18]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[19]>>8) & 0xFF) | (((battCellU[19]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A5:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[20]>>8) & 0xFF) | (((battCellU[20]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[21]>>8) & 0xFF) | (((battCellU[21]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[22]>>8) & 0xFF) | (((battCellU[22]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[23]>>8) & 0xFF) | (((battCellU[23]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6A6:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[24]>>8) & 0xFF) | (((battCellU[24]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[25]>>8) & 0xFF) | (((battCellU[25]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[26]>>8) & 0xFF) | (((battCellU[26]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[27]>>8) & 0xFF) | (((battCellU[27]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x6B0:
|
|
|
- *(UINT8*)(msgData +0) =battCellTemp[0]&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =battCellTemp[1]&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =battCellTemp[2]&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =battCellTemp[3]&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =battCellTemp[4]&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =battCellTemp[5]&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =battCellTemp[6]&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =battCellTemp[7]&0xFF;
|
|
|
- break;
|
|
|
- case 0x6BA:
|
|
|
- *(UINT8*)(msgData +0) =MOSTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =packTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =fastChargeTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =normalChargeTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =heatTemp1&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =heatTemp2&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =nbReservedTemp1&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =nbReservedTemp2&0xFF;
|
|
|
- break;
|
|
|
- case 0x6C0:
|
|
|
- *(UINT16*)(msgData +0) = ((minCellVol>>8) & 0xFF) | (((minCellVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((maxCellVol>>8) & 0xFF) | (((maxCellVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battPackVol>>8) & 0xFF) | (((battPackVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +6) =maxCellTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =minCellTemp&0xFF;
|
|
|
- break;
|
|
|
- case 0x6C1:
|
|
|
- *(UINT8*)(msgData +0) =battSOC&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =battSOH&0xFF;
|
|
|
- *(UINT16*)(msgData +2) = ((battI>>8) & 0xFF) | (((battI&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +4) =battWorkState&0xFF;
|
|
|
- *(UINT32*)(msgData +5) = ((battWarningState>>16) & 0xFF)|((battWarningState)&0xFF00)|(((battWarningState&0xFF)<<16)&0xFF0000);
|
|
|
- break;
|
|
|
- case 0x6C2:
|
|
|
- *(UINT32*)(msgData +0) = ((nbSwVersion>>24) & 0xFF)|((nbSwVersion>>8)&0xFF00)|((nbSwVersion<<8)&0xFF0000)|(((nbSwVersion&0xFF)<<24)&0xFF000000);
|
|
|
- *(UINT16*)(msgData +4) = ((nbHwVersion>>8) & 0xFF) | (((nbHwVersion&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +6) =bmsSwVersion&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =bmsHwVersion&0xFF;
|
|
|
- break;
|
|
|
- case 0x6C3:
|
|
|
- *(UINT32*)(msgData +0) = ((battBalanceoInfo>>24) & 0xFF)|((battBalanceoInfo>>8)&0xFF00)|((battBalanceoInfo<<8)&0xFF0000)|(((battBalanceoInfo&0xFF)<<24)&0xFF000000);
|
|
|
- *(UINT8*)(msgData +4) =battMOSSwitchState&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =battHeatEnableState&0xFF;
|
|
|
- break;
|
|
|
- case 0x6C4:
|
|
|
- reservedSignal1 = battProtectState&0xFF;
|
|
|
- reservedSignal2 = (battProtectState>>8)&0xFF;
|
|
|
- reservedSignal3 = (battProtectState>>16)&0xFF;
|
|
|
- reservedSignal4 = (battProtectState>>24)&0xFF;
|
|
|
- *(UINT8*)(msgData +0) =reservedSignal1&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =reservedSignal2&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =reservedSignal3&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =reservedSignal4&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =reservedSignal5&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =reservedSignal6&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =reservedSignal7&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =reservedSignal8&0xFF;
|
|
|
- break;
|
|
|
- case 0x7C0:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[0]>>8) & 0xFF) | (((battCellU[0]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[1]>>8) & 0xFF) | (((battCellU[1]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[2]>>8) & 0xFF) | (((battCellU[2]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[3]>>8) & 0xFF) | (((battCellU[3]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C1:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[4]>>8) & 0xFF) | (((battCellU[4]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[5]>>8) & 0xFF) | (((battCellU[5]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[6]>>8) & 0xFF) | (((battCellU[6]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[7]>>8) & 0xFF) | (((battCellU[7]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C2:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[8]>>8) & 0xFF) | (((battCellU[8]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[9]>>8) & 0xFF) | (((battCellU[9]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[10]>>8) & 0xFF) | (((battCellU[10]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[11]>>8) & 0xFF) | (((battCellU[11]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C3:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[12]>>8) & 0xFF) | (((battCellU[12]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[13]>>8) & 0xFF) | (((battCellU[13]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[14]>>8) & 0xFF) | (((battCellU[14]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[15]>>8) & 0xFF) | (((battCellU[15]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C4:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[16]>>8) & 0xFF) | (((battCellU[16]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[17]>>8) & 0xFF) | (((battCellU[17]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[18]>>8) & 0xFF) | (((battCellU[18]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[19]>>8) & 0xFF) | (((battCellU[19]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C5:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[20]>>8) & 0xFF) | (((battCellU[20]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[21]>>8) & 0xFF) | (((battCellU[21]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[22]>>8) & 0xFF) | (((battCellU[22]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[23]>>8) & 0xFF) | (((battCellU[23]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C6:
|
|
|
- *(UINT16*)(msgData +0) = ((battCellU[24]>>8) & 0xFF) | (((battCellU[24]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((battCellU[25]>>8) & 0xFF) | (((battCellU[25]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battCellU[26]>>8) & 0xFF) | (((battCellU[26]&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +6) = ((battCellU[27]>>8) & 0xFF) | (((battCellU[27]&0xFF)<<8)&0xFF00);
|
|
|
- break;
|
|
|
- case 0x7C7:
|
|
|
- *(UINT8*)(msgData +0) =battCellTemp[0]&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =battCellTemp[1]&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =battCellTemp[2]&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =battCellTemp[3]&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =battCellTemp[4]&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =battCellTemp[5]&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =battCellTemp[6]&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =battCellTemp[7]&0xFF;
|
|
|
- break;
|
|
|
- case 0x7C8:
|
|
|
- *(UINT8*)(msgData +0) =MOSTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =packTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =fastChargeTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =normalChargeTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =heatTemp1&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =heatTemp2&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =nbReservedTemp1&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =nbReservedTemp2&0xFF;
|
|
|
- break;
|
|
|
- case 0x7C9:
|
|
|
- *(UINT16*)(msgData +0) = ((minCellVol>>8) & 0xFF) | (((minCellVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +2) = ((maxCellVol>>8) & 0xFF) | (((maxCellVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT16*)(msgData +4) = ((battPackVol>>8) & 0xFF) | (((battPackVol&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +6) =maxCellTemp&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =minCellTemp&0xFF;
|
|
|
- break;
|
|
|
- case 0x7CA:
|
|
|
- *(UINT8*)(msgData +0) =battSOC&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =battSOH&0xFF;
|
|
|
- *(UINT16*)(msgData +2) = ((battI>>8) & 0xFF) | (((battI&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +4) =battWorkState&0xFF;
|
|
|
- *(UINT32*)(msgData +5) = ((battWarningState>>16) & 0xFF)|((battWarningState)&0xFF00)|(((battWarningState&0xFF)<<16)&0xFF0000);
|
|
|
- break;
|
|
|
- case 0x7CB:
|
|
|
- *(UINT32*)(msgData +0) = ((nbSwVersion>>24) & 0xFF)|((nbSwVersion>>8)&0xFF00)|((nbSwVersion<<8)&0xFF0000)|(((nbSwVersion&0xFF)<<24)&0xFF000000);
|
|
|
- *(UINT16*)(msgData +4) = ((nbHwVersion>>8) & 0xFF) | (((nbHwVersion&0xFF)<<8)&0xFF00);
|
|
|
- *(UINT8*)(msgData +6) =bmsSwVersion&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =bmsHwVersion&0xFF;
|
|
|
- break;
|
|
|
- case 0x7CC:
|
|
|
- *(UINT32*)(msgData +0) = ((battBalanceoInfo>>24) & 0xFF)|((battBalanceoInfo>>8)&0xFF00)|((battBalanceoInfo<<8)&0xFF0000)|(((battBalanceoInfo&0xFF)<<24)&0xFF000000);
|
|
|
- *(UINT8*)(msgData +4) =battMOSSwitchState&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =battHeatEnableState&0xFF;
|
|
|
- break;
|
|
|
- case 0x7CD:
|
|
|
- *(UINT8*)(msgData +0) =reservedSignal1&0xFF;
|
|
|
- *(UINT8*)(msgData +1) =reservedSignal2&0xFF;
|
|
|
- *(UINT8*)(msgData +2) =reservedSignal3&0xFF;
|
|
|
- *(UINT8*)(msgData +3) =reservedSignal4&0xFF;
|
|
|
- *(UINT8*)(msgData +4) =reservedSignal5&0xFF;
|
|
|
- *(UINT8*)(msgData +5) =reservedSignal6&0xFF;
|
|
|
- *(UINT8*)(msgData +6) =reservedSignal7&0xFF;
|
|
|
- *(UINT8*)(msgData +7) =reservedSignal8&0xFF;
|
|
|
- break;
|
|
|
- case 0x7B0:
|
|
|
- *(UINT8*)(msgData +0) = (AppNVMData.battSN[0])&0xFF;
|
|
|
- *(UINT8*)(msgData +1) = (AppNVMData.battSN[1])&0xFF;
|
|
|
- *(UINT8*)(msgData +2) = (AppNVMData.battSN[2])&0xFF;
|
|
|
- *(UINT8*)(msgData +3) = (AppNVMData.battSN[3])&0xFF;
|
|
|
- *(UINT8*)(msgData +4) = (AppNVMData.battSN[4])&0xFF;
|
|
|
- *(UINT8*)(msgData +5) = (AppNVMData.battSN[5])&0xFF;
|
|
|
- *(UINT8*)(msgData +6) = (AppNVMData.battSN[6])&0xFF;
|
|
|
- *(UINT8*)(msgData +7) = (AppNVMData.battSN[7])&0xFF;
|
|
|
- break;
|
|
|
- case 0x7B1:
|
|
|
- *(UINT8*)(msgData +0) = (AppNVMData.battSN[8])&0xFF;
|
|
|
- *(UINT8*)(msgData +1) = (AppNVMData.battSN[9])&0xFF;
|
|
|
- *(UINT8*)(msgData +2) = (AppNVMData.battSN[10])&0xFF;
|
|
|
- *(UINT8*)(msgData +3) = (AppNVMData.battSN[11])&0xFF;
|
|
|
- *(UINT8*)(msgData +4) = (AppNVMData.battSN[12])&0xFF;
|
|
|
- *(UINT8*)(msgData +5) = (AppNVMData.battSN[13])&0xFF;
|
|
|
- *(UINT8*)(msgData +6) = (AppNVMData.battSN[14])&0xFF;
|
|
|
- *(UINT8*)(msgData +7) = (AppNVMData.battSN[15])&0xFF;
|
|
|
- break;
|
|
|
- case 0x7B2:
|
|
|
- *(UINT8*)(msgData +0) = (AppNVMData.battSN[16])&0xFF;
|
|
|
-
|
|
|
+ /*
|
|
|
+ case 0x18FF06F3:
|
|
|
+ bmsStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x0F);
|
|
|
+ bmsErrClass = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0xF);
|
|
|
+ chrgConctStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ highVolPwrDwnReq = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ chrgStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x7);
|
|
|
+ bmsErrNum = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ bmsLife = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
break;
|
|
|
-
|
|
|
- default:
|
|
|
+ case 0x18FF07F3:
|
|
|
+ maxChrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ maxDischrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-/***********************************************************************************************************************
|
|
|
- * UDS函数
|
|
|
- * 输入:报文内容(含ID)
|
|
|
- * 输出:--
|
|
|
- * 处理:根据报文内容,进行包括读取版本号、读写SN、查询状态,用于完成下线检测和通过CAN接收升级包等操作
|
|
|
-***********************************************************************************************************************/
|
|
|
-void UDS_Service(CAN_Msg_Type* CanRxMsg)
|
|
|
-{
|
|
|
- UINT8 i,j= 0;
|
|
|
- INT8 ret,errorCount = 0;
|
|
|
- BOOL boolRet = false;
|
|
|
- static UINT8 snFlag = 0;
|
|
|
- static UINT32 sliceCounterFlag = 0;
|
|
|
- UINT32 tempSliceCounter=0;
|
|
|
- static UINT8 counter=0;
|
|
|
- CAN_Msg_Type UDSAnswer ={0};
|
|
|
- UINT32 posCode,negCode;
|
|
|
- UINT32 updateDifferDataByteLen = 0;
|
|
|
- UINT8 updateDataBuffer[100];
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- static UINT32 updateDifferDataSliceCounter = 0;
|
|
|
- static UINT8 UDSSwitch = 0;
|
|
|
- static UINT8 UDSDialogMode = 01;
|
|
|
- static UINT8 UDSBattSN[BATT_SN_LEN];
|
|
|
-
|
|
|
- for(i=0; i<2; i++)
|
|
|
- {
|
|
|
- UDSAnswer.DLC = 8;
|
|
|
- memset(UDSAnswer.Data, 0, UDSAnswer.DLC);
|
|
|
- UDSService[i] = CanRxMsg[i].Data[0];
|
|
|
- UDSSubService[i] = CanRxMsg[i].Data[1];
|
|
|
- UDSSubServiceActionCode[i] = CanRxMsg[i].Data[2];
|
|
|
- if(CanRxMsg[i].Id == 0x7A0)
|
|
|
- {
|
|
|
- switch (UDSService[i])
|
|
|
+ case 0x18FF30F3:
|
|
|
+ battSoc = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ packTotalVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ packTotalCurr = (UINT16)(((*(UINT16*)(rawData +3)))&0xFFFF);
|
|
|
+ insulationR = (UINT16)(((*(UINT16*)(rawData +5)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF51F3:
|
|
|
+ maxCellVol = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ minCellVol = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ maxCellTemp = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ minCellTemp = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ avgCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF52F3:
|
|
|
+ maxVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ maxVolCellCode = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ minVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ minVoCelllCode = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF53F3:
|
|
|
+ maxTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ maxTempCellCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ minTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ minTempCellCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF54F3:
|
|
|
+ numOfChrgableSubsys = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ lengthOfChrgableSysCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ chrgableSysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ chrgableSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ numOfCells = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ numOfCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ numOfBattErr = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x1801FBF3:
|
|
|
+ battCellU[0] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[1] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[2] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[3] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1802FBF3:
|
|
|
+ battCellU[4] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[5] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[6] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[7] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1803FBF3:
|
|
|
+ battCellU[8] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[9] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[10] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[11] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1804FBF3:
|
|
|
+ battCellU[12] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[13] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[14] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[15] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1805FBF3:
|
|
|
+ battCellU[16] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[17] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[18] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[19] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1806FBF3:
|
|
|
+ battCellU[20] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[21] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[22] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[23] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1807FBF3:
|
|
|
+ battCellU[24] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[25] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[26] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[27] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1808FBF3:
|
|
|
+ battCellU[28] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[29] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[30] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[31] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1809FBF3:
|
|
|
+ battCellU[32] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[33] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[34] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[35] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180AFBF3:
|
|
|
+ battCellU[36] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[37] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[38] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[39] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180BFBF3:
|
|
|
+ battCellU[40] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[41] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[42] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[43] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180CFBF3:
|
|
|
+ battCellU[44] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[45] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[46] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[47] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180DFBF3:
|
|
|
+ battCellU[48] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[49] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[50] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[51] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180EFBF3:
|
|
|
+ battCellU[52] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[53] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[54] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[55] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180FFBF3:
|
|
|
+ battCellU[56] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[57] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[58] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[59] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1810FBF3:
|
|
|
+ battCellU[60] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[61] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[62] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[63] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1811FBF3:
|
|
|
+ battCellU[64] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[65] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[66] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[67] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1812FBF3:
|
|
|
+ battCellU[68] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[69] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[70] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[71] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1813FBF3:
|
|
|
+ battCellU[72] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[73] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[74] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[75] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1814FBF3:
|
|
|
+ battCellU[76] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[77] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[78] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[79] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1815FBF3:
|
|
|
+ battCellU[80] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[81] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[82] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[83] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1816FBF3:
|
|
|
+ battCellU[84] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[85] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[86] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[87] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1817FBF3:
|
|
|
+ battCellU[88] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[89] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[90] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[91] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1818FBF3:
|
|
|
+ battCellU[92] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[93] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[94] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[95] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1819FBF3:
|
|
|
+ battCellU[96] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[97] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[98] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[99] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181AFBF3:
|
|
|
+ battCellU[100] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[101] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[102] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[103] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181BFBF3:
|
|
|
+ battCellU[104] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[105] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[106] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[107] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181CFBF3:
|
|
|
+ battCellU[108] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[109] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[110] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[111] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181DFBF3:
|
|
|
+ battCellU[112] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[113] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[114] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[115] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181EFBF3:
|
|
|
+ battCellU[116] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[117] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[118] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[119] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181FFBF3:
|
|
|
+ battCellU[120] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[121] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[122] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[123] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1820FBF3:
|
|
|
+ battCellU[124] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[125] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[126] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[127] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1821FBF3:
|
|
|
+ battCellU[128] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[129] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[130] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[131] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1822FBF3:
|
|
|
+ battCellU[132] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[133] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[134] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[135] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1823FBF3:
|
|
|
+ battCellU[136] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[137] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[138] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[139] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1824FBF3:
|
|
|
+ battCellU[140] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[141] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[142] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[143] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1825FBF3:
|
|
|
+ battCellU[144] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[145] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[146] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[147] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1826FBF3:
|
|
|
+ battCellU[148] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[149] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[150] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[151] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1827FBF3:
|
|
|
+ battCellU[152] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[153] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[154] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[155] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1828FBF3:
|
|
|
+ battCellU[156] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[157] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[158] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[159] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1829FBF3:
|
|
|
+ battCellU[160] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[161] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[162] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[163] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182AFBF3:
|
|
|
+ battCellU[164] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[165] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[166] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[167] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182BFBF3:
|
|
|
+ battCellU[168] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[169] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[170] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[171] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182CFBF3:
|
|
|
+ battCellU[172] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[173] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[174] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[175] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182DFBF3:
|
|
|
+ battCellU[176] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[177] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[178] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[179] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182EFBF3:
|
|
|
+ battCellU[180] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[181] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[182] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[183] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182FFBF3:
|
|
|
+ battCellU[184] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[185] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[186] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[187] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1830FBF3:
|
|
|
+ battCellU[188] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[189] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[190] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[191] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1831FBF3:
|
|
|
+ battCellU[192] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[193] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[194] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[195] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1832FBF3:
|
|
|
+ battCellU[196] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[197] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[198] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[199] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1833FBF3:
|
|
|
+ battCellU[200] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[201] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[202] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[203] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1834FBF3:
|
|
|
+ battCellU[204] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[205] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[206] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[207] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1835FBF3:
|
|
|
+ battCellU[208] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[209] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[210] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[211] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1836FBF3:
|
|
|
+ battCellU[212] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[213] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[214] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[215] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1837FBF3:
|
|
|
+ battCellU[216] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[217] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[218] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[219] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1838FBF3:
|
|
|
+ battCellU[220] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[221] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[222] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[223] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1839FBF3:
|
|
|
+ battCellU[224] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[225] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[226] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[227] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183AFBF3:
|
|
|
+ battCellU[228] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[229] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[230] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[231] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183BFBF3:
|
|
|
+ battCellU[232] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[233] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[234] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[235] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183CFBF3:
|
|
|
+ battCellU[236] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[237] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[238] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[239] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183DFBF3:
|
|
|
+ battCellU[240] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[241] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[242] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[243] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183EFBF3:
|
|
|
+ battCellU[244] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[245] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[246] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[247] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183FFBF3:
|
|
|
+ battCellU[248] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[249] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[250] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[251] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1840FBF3:
|
|
|
+ battCellU[252] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[253] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[254] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[255] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1841FBF3:
|
|
|
+ battCellU[256] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[257] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[258] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[259] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1842FBF3:
|
|
|
+ battCellU[260] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[261] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[262] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[263] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1843FBF3:
|
|
|
+ battCellU[264] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[265] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[266] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[267] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1844FBF3:
|
|
|
+ battCellU[268] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[269] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[270] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[271] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1845FBF3:
|
|
|
+ battCellU[272] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[273] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[274] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[275] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1846FBF3:
|
|
|
+ battCellU[276] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[277] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[278] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[279] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1847FBF3:
|
|
|
+ battCellU[280] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[281] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[282] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[283] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1848FBF3:
|
|
|
+ battCellU[284] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[285] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[286] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[287] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1849FBF3:
|
|
|
+ battCellU[288] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[289] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[290] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[291] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184AFBF3:
|
|
|
+ battCellU[292] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[293] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[294] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[295] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184BFBF3:
|
|
|
+ battCellU[296] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[297] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[298] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[299] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184CFBF3:
|
|
|
+ battCellU[300] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[301] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[302] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[303] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184DFBF3:
|
|
|
+ battCellU[304] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[305] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[306] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[307] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184EFBF3:
|
|
|
+ battCellU[308] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[309] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[310] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[311] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184FFBF3:
|
|
|
+ battCellU[312] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[313] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[314] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[315] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1850FBF3:
|
|
|
+ battCellU[316] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[317] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[318] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[319] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1851FBF3:
|
|
|
+ battCellU[320] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[321] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[322] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[323] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1852FBF3:
|
|
|
+ battCellU[324] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[325] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[326] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[327] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1853FBF3:
|
|
|
+ battCellU[328] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[329] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[330] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[331] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1854FBF3:
|
|
|
+ battCellU[332] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[333] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[334] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[335] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1855FBF3:
|
|
|
+ battCellU[336] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[337] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[338] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[339] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1856FBF3:
|
|
|
+ battCellU[340] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[341] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[342] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[343] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1857FBF3:
|
|
|
+ battCellU[344] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[345] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[346] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[347] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1858FBF3:
|
|
|
+ battCellU[348] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[349] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[350] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[351] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1859FBF3:
|
|
|
+ battCellU[352] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[353] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[354] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[355] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185AFBF3:
|
|
|
+ battCellU[356] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[357] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[358] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[359] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185BFBF3:
|
|
|
+ battCellU[360] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[361] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[362] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[363] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185CFBF3:
|
|
|
+ battCellU[364] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[365] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[366] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[367] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185DFBF3:
|
|
|
+ battCellU[368] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[369] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[370] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[371] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185EFBF3:
|
|
|
+ battCellU[372] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[373] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[374] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[375] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185FFBF3:
|
|
|
+ battCellU[376] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[377] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[378] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[379] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1860FBF3:
|
|
|
+ battCellU[380] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[381] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[382] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[383] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18A0FBF3:
|
|
|
+ battCellTemp[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A1FBF3:
|
|
|
+ battCellTemp[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A2FBF3:
|
|
|
+ battCellTemp[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ battCellTemp[24] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[25] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[26] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[27] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[28] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[29] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[30] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[31] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A3FBF3:
|
|
|
+ battCellTemp[32] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[33] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[34] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[35] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[36] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[37] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[38] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[39] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A4FBF3:
|
|
|
+ battCellTemp[40] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[41] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[42] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[43] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[44] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[45] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[46] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[47] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A5FBF3:
|
|
|
+ battCellTemp[48] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[49] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[50] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[51] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[52] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[53] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[54] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[55] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A6FBF3:
|
|
|
+ battCellTemp[56] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[57] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[58] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[59] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[60] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[61] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[62] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[63] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF08F3:
|
|
|
+ mainPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ preRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ mainNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ thrRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>6)&0x3);
|
|
|
+ ptc1RlyStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ airCondRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ dcChrg1PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x3);
|
|
|
+ dcChrg1NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x3);
|
|
|
+ dcChrg2PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2)))&0x3);
|
|
|
+ dcChrg2NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>2)&0x3);
|
|
|
+ heatPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>4)&0x3);
|
|
|
+ heatNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>6)&0x3);
|
|
|
+ coolRlyStatus = (UINT8)(((*(UINT8*)(rawData +3)))&0x3);
|
|
|
+ ptc2RlyStatus = (UINT8)(((*(UINT8*)(rawData +3))>>2)&0x3);
|
|
|
+ mainPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ preRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ mainNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ thrRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ ptc1RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ airCondRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ dcChrg1PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>4)&0x3);
|
|
|
+ dcChrg1NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>6)&0x3);
|
|
|
+ dcChrg2PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ dcChrg2NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ heatPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>4)&0x3);
|
|
|
+ heatNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>6)&0x3);
|
|
|
+ coolRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7)))&0x3);
|
|
|
+ ptc2RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF60F3:
|
|
|
+ accChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accDischrgAh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF61F3:
|
|
|
+ accChrgkWh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accDischrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF62F3:
|
|
|
+ battSOH = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF63F3:
|
|
|
+ SN[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF64F3:
|
|
|
+ SN[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF65F3:
|
|
|
+ SN[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF66F3:
|
|
|
+ accRecvryChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accRecvryChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF67F3:
|
|
|
+ accStationChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accStationChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF68F3:
|
|
|
+ accGunChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accGunChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF69F3:
|
|
|
+ sglChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ sglChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF10D0:
|
|
|
+ bmsHVOn = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF20EF:
|
|
|
+ vcuDCVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF13A3:
|
|
|
+ acRelayStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ ptcRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ mainRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>3)&0x3);
|
|
|
+ preRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ ptc2RelayStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ acRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ ptcRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ mainRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ preRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ hvLockErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ ptc2RelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF1154:
|
|
|
+ ebcStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ ebcAskHVOn = (UINT8)(((*(UINT8*)(rawData +1)))&0x1);
|
|
|
+ ebcAskHVOff = (UINT8)(((*(UINT8*)(rawData +1))>>1)&0x1);
|
|
|
+ retainLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>3)&0x1);
|
|
|
+ dischargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>5)&0x1);
|
|
|
+ chargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x1);
|
|
|
+ errorClass = (UINT8)(((*(UINT16*)(rawData +2))>>2)&0xFF);
|
|
|
+ errorCode1 = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ errorCode2 = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ chargeFlag = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ exchangeBattAirPressure = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ lifeSignal = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF09D0:
|
|
|
+ vehicleStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ currentGearPosition = (UINT8)(((*(UINT8*)(rawData +1)))&0x1F);
|
|
|
+ break;
|
|
|
+ case 0x18FEF1D0:
|
|
|
+ parkingBreakStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ breakingStatus = (UINT8)(((*(UINT8*)(rawData +3))>>4)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF55D0:
|
|
|
+ if(*rawData >= 0x1 && *rawData <= 3)
|
|
|
{
|
|
|
- case 0x10:
|
|
|
- if(UDSSubService[i] == 0x01)
|
|
|
- {
|
|
|
- if((UDSDialogMode == 0x01 || UDSDialogMode==0x02)||UDSSwitch == 0)
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x04,i,0x00);
|
|
|
- UDSSwitch = 0;
|
|
|
- UDSDialogMode = 1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x02)
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x04,i,0x00);
|
|
|
- UDSSwitch = 1;
|
|
|
- UDSDialogMode = 2;
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x03)
|
|
|
- {
|
|
|
- if(UDSSwitch == 1)
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x04,i,0x00);
|
|
|
- UDSSwitch = 1;
|
|
|
- UDSDialogMode = 3;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x11) //make NB software reset
|
|
|
- {
|
|
|
- if(UDSDialogMode == 2)
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x04,i,0x00);
|
|
|
- osDelay(100);
|
|
|
- SaveAppConfig();
|
|
|
- appSetCFUN(0);
|
|
|
- osDelay(1000);
|
|
|
- EC_SystemReset();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x22:
|
|
|
- if(UDSDialogMode == 2)
|
|
|
- {
|
|
|
- if(UDSSubService[i] == 0x01) //check the sw of NB
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x08,i,APPSWVERSION);
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x02) //check the hw of NB
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x06,i,HWVERSION);
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x03) //check the SN number
|
|
|
- {
|
|
|
- switch(UDSSubServiceActionCode[i])
|
|
|
- {
|
|
|
- case 00:
|
|
|
- UDSAnswer.Id = 0x7B0;
|
|
|
-
|
|
|
- CANEncodeFunction(UDSAnswer.Id, UDSAnswer.Data);
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 01:
|
|
|
- UDSAnswer.Id = 0x7B1;
|
|
|
- CANEncodeFunction(UDSAnswer.Id, UDSAnswer.Data);
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 02:
|
|
|
- UDSAnswer.Id = 0x7B2;
|
|
|
- CANEncodeFunction(UDSAnswer.Id, UDSAnswer.Data);
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
-
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x04) //check the batt message
|
|
|
- {
|
|
|
- UDSAnswer.Id = 0x7C0+UDSSubServiceActionCode[i];
|
|
|
- CANEncodeFunction(UDSAnswer.Id, UDSAnswer.Data);
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x05) //check the enviroment temp of NB
|
|
|
- {
|
|
|
- UINT32 temp = ((fastChargeTemp<<24)&0xFF000000) | ((normalChargeTemp<<16)&0xFF0000) | ((heatTemp1<<8)&0xFF00) | (heatTemp2&0xFF);
|
|
|
- UDSPositiveAnswer(0x08,i,temp); //ntcvalue
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x06) //check the tcp link of NB
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x06,i,TcpSendLen); //TcpconnectStatus
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x07) //check the GPS link of NB
|
|
|
- {
|
|
|
- posCode = GpsFlag;
|
|
|
- UDSPositiveAnswer(0x05,i,posCode); //gps satellite num(uint8), should be modified
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE);
|
|
|
- }
|
|
|
- }
|
|
|
- else //the service is not surpported in current dialog mode
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x2E: //write service
|
|
|
- if(UDSDialogMode == 2)
|
|
|
- {
|
|
|
- if(UDSSubService[i] == 0x03) // write the battSN
|
|
|
- {
|
|
|
- if(UDSSubServiceActionCode[i] == 0x00 && snFlag == 0x00)
|
|
|
- {
|
|
|
- for(j=0; j<5; j++)
|
|
|
- {
|
|
|
- UDSBattSN[j+5*0] = CanRxMsg[i].Data[j+3];
|
|
|
- }
|
|
|
- snFlag = snFlag|0x01;
|
|
|
- }
|
|
|
- else if(UDSSubServiceActionCode[i] == 0x01 && snFlag == 0x01)
|
|
|
- {
|
|
|
- for(j=0; j<5; j++)
|
|
|
- {
|
|
|
- UDSBattSN[j+5*1] = CanRxMsg[i].Data[j+3];
|
|
|
- }
|
|
|
- snFlag = snFlag|0x02;
|
|
|
- }
|
|
|
- else if(UDSSubServiceActionCode[i] == 0x02 && snFlag == 0x03)
|
|
|
- {
|
|
|
- for(j=0; j<5; j++)
|
|
|
- {
|
|
|
- UDSBattSN[j+5*2] = CanRxMsg[i].Data[j+3];
|
|
|
- }
|
|
|
- snFlag = snFlag|0x04;
|
|
|
- }
|
|
|
- else if(UDSSubServiceActionCode[i] == 0x03 && snFlag == 0x07)
|
|
|
- {
|
|
|
- for(j=0; j<2; j++)
|
|
|
- {
|
|
|
- UDSBattSN[j+5*3] = CanRxMsg[i].Data[j+3];
|
|
|
- }
|
|
|
- snFlag = snFlag|0x08;
|
|
|
- }
|
|
|
-
|
|
|
- if(snFlag == 0x0F)
|
|
|
- {
|
|
|
- snFlag = 0;
|
|
|
- UDSPositiveAnswer(0x04,i,00);
|
|
|
- MEMCPY(AppNVMData.battSN, UDSBattSN, BATT_SN_LEN);
|
|
|
- AppNVMData.EOLState = 1; //SN号写入完成,表明已经进行过下线配置
|
|
|
- SaveAppConfig();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSAnswer.Id = 0x7A8;
|
|
|
- UDSAnswer.Data[0] = 0x05;
|
|
|
- UDSAnswer.Data[1] = 0x3E;
|
|
|
- UDSAnswer.Data[2] = UDSService[i];
|
|
|
- UDSAnswer.Data[3] = UDSSubService[i];
|
|
|
- UDSAnswer.Data[4] = snFlag;
|
|
|
-
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
- }
|
|
|
- }
|
|
|
- else if(UDSSubService[i] == 0x0F) //write the update config:updateDifferDataByteLen
|
|
|
- {
|
|
|
- updateDifferDataByteLen = (CanRxMsg[i].Data[2]<<16)|(CanRxMsg[i].Data[3]<<8)|CanRxMsg[i].Data[4];
|
|
|
- UDSPositiveAnswer(0x04,i,00);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE);
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x31: //clear the flash service
|
|
|
- if(UDSDialogMode == 3)
|
|
|
- {
|
|
|
- if(UDSSubService[i] == 0x0F) //clear the fota flash
|
|
|
- {
|
|
|
- if(UDSSubServiceActionCode[i] == 0x01)
|
|
|
- {
|
|
|
- //Clear the Flash
|
|
|
- boolRet = UDSClearFotaDownloadRegion();
|
|
|
- //if ok
|
|
|
- UDSPositiveAnswer(0x05,i,(UINT32)boolRet);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x06,i,UDSSubServiceActionCode[i]<<8|0xFF); //重点测试
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE); //the subservice is not surpported
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF); //the survie is not surpported in current dialog mode
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x34: //prepare for some one process
|
|
|
- if(UDSDialogMode == 3)
|
|
|
- {
|
|
|
- if(UDSSubService[i] == 0x0F) //ask for download update data
|
|
|
- {
|
|
|
- boolRet = UDSAskforDownLoadData();
|
|
|
- //if ok
|
|
|
- UDSPositiveAnswer(0x05,i,(UINT32)boolRet);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x36: //download the update data
|
|
|
- if(UDSDialogMode == 3)
|
|
|
- {
|
|
|
- if(downloadReady == TRUE)
|
|
|
- {
|
|
|
- counter++; //记录报文数量
|
|
|
- tempSliceCounter = (CanRxMsg[i].Data[1]<<16)|(CanRxMsg[i].Data[2]<<8)|(CanRxMsg[i].Data[3]);
|
|
|
- /*
|
|
|
- #ifdef USING_PRINTF
|
|
|
- printf("tempSliceCounter = %x\n",tempSliceCounter);
|
|
|
- #endif
|
|
|
- */
|
|
|
- if(tempSliceCounter < (updateDifferDataPackageCounter+1)*25 && tempSliceCounter>=updateDifferDataPackageCounter*25)
|
|
|
- {
|
|
|
- updateDifferDataSliceCounter = tempSliceCounter % 25;
|
|
|
- for(j=0;j<4;j++)
|
|
|
- {
|
|
|
- updateDataBuffer[updateDifferDataSliceCounter*4+j] = CanRxMsg[i].Data[4+j];
|
|
|
- }
|
|
|
-
|
|
|
- if(updateDifferDataSliceCounter>0)
|
|
|
- {
|
|
|
- sliceCounterFlag = sliceCounterFlag |(0x01<<updateDifferDataSliceCounter);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sliceCounterFlag = sliceCounterFlag |0x01;
|
|
|
- }
|
|
|
- /*
|
|
|
- #ifdef USING_PRINTF
|
|
|
- printf("sliceCounterFlag = %x counter=%d\n",sliceCounterFlag,counter);
|
|
|
- #endif
|
|
|
- */
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- counter--;
|
|
|
- }
|
|
|
-
|
|
|
- if(counter == 25)
|
|
|
- {
|
|
|
- counter = 0;
|
|
|
- if(sliceCounterFlag == 0x1FFFFFF) //received all the 25 message of current package
|
|
|
- {
|
|
|
- //write the buffer(100 byte) to flash
|
|
|
- ret = (uint8_t)BSP_QSPI_Write_Safe(updateDataBuffer,FLASH_FOTA_REGION_START+(updateDifferDataPackageCounter)*100,100);
|
|
|
- errorCount = 0;
|
|
|
- while(ret != QSPI_OK && errorCount<3) //try to write most 3 times
|
|
|
- {
|
|
|
- errorCount++;
|
|
|
- BSP_QSPI_Erase_Safe(FLASH_FOTA_REGION_START+(updateDifferDataPackageCounter)*100,100);
|
|
|
- ret = (uint8_t)BSP_QSPI_Write_Safe(updateDataBuffer,FLASH_FOTA_REGION_START+(updateDifferDataPackageCounter)*100,100);
|
|
|
- }
|
|
|
- if(ret == QSPI_OK) // write successed
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x08,i,tempSliceCounter);
|
|
|
-
|
|
|
- memset(updateDataBuffer,0, 100);
|
|
|
- sliceCounterFlag = 0x0;
|
|
|
- updateDifferDataPackageCounter++;
|
|
|
- }
|
|
|
- else //write fail
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x08,i,0xFFFFFFFF); //failed to write this package to flash
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //received 25 messages, but lose one or more messages
|
|
|
- //in this case, updater will try to send the package again(most 4 times)
|
|
|
- UDSNegtiveAnswer(0x08,i,sliceCounterFlag);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEF); //the download process is not ready
|
|
|
- counter = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF); //the service is not surpported in current dialog mode
|
|
|
- }
|
|
|
- break;
|
|
|
- case 0x37: //exit some one process
|
|
|
- if(UDSDialogMode == 3)
|
|
|
+ for(UINT8 i = 0; i < 7; i++)
|
|
|
+ {
|
|
|
+ if(i+((*rawData)-1)*7 <17)
|
|
|
{
|
|
|
- if(UDSSubService[i] == 0x0F) // exit the download
|
|
|
- {
|
|
|
- UDSPositiveAnswer(0x04,i,0x00);
|
|
|
-
|
|
|
- downloadReady = FALSE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UDSNegtiveAnswer(0x05,i,0xEE);
|
|
|
- }
|
|
|
+ VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
|
|
|
}
|
|
|
- else
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0x18FEAE17:
|
|
|
+ frontBreakingPressure = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ backBreakingPressure = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ frontBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ backBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FEC117:
|
|
|
+ ODB = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF15A0:
|
|
|
+ dcdcErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ dcdcWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF16A1:
|
|
|
+ mainElectricityErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ pumpWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF17A2:
|
|
|
+ elecAirCompressorErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ elecAirCompressorWrokStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ */
|
|
|
+ case 0x18FF06F3:
|
|
|
+ bmsStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0xF);
|
|
|
+ printf("bmsStatus=%d\n",bmsStatus);
|
|
|
+ bmsErrClass = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0xF);
|
|
|
+ printf("bmsErrClass=%d\n",bmsErrClass);
|
|
|
+ chrgConctStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ printf("chrgConctStatus=%d\n",chrgConctStatus);
|
|
|
+ highVolPwrDwnReq = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ printf("highVolPwrDwnReq=%d\n",highVolPwrDwnReq);
|
|
|
+ chrgStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x7);
|
|
|
+ printf("chrgStatus=%d\n",chrgStatus);
|
|
|
+ bmsErrNum = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("bmsErrNum=%d\n",bmsErrNum);
|
|
|
+ bmsLife = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("bmsLife=%d\n",bmsLife);
|
|
|
+ break;
|
|
|
+ case 0x18FF07F3:
|
|
|
+ maxChrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("maxChrgCurrAllowed=%d\n",maxChrgCurrAllowed);
|
|
|
+ maxDischrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("maxDischrgCurrAllowed=%d\n",maxDischrgCurrAllowed);
|
|
|
+ break;
|
|
|
+ case 0x18FF30F3:
|
|
|
+ battSoc = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battSoc=%d\n",battSoc);
|
|
|
+ packTotalVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ printf("packTotalVol=%d\n",packTotalVol);
|
|
|
+ packTotalCurr = (UINT16)(((*(UINT16*)(rawData +3)))&0xFFFF);
|
|
|
+ printf("packTotalCurr=%d\n",packTotalCurr);
|
|
|
+ insulationR = (UINT16)(((*(UINT16*)(rawData +5)))&0xFFFF);
|
|
|
+ printf("insulationR=%d\n",insulationR);
|
|
|
+ break;
|
|
|
+ case 0x18FF51F3:
|
|
|
+ maxCellVol = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("maxCellVol=%d\n",maxCellVol);
|
|
|
+ minCellVol = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("minCellVol=%d\n",minCellVol);
|
|
|
+ maxCellTemp = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("maxCellTemp=%d\n",maxCellTemp);
|
|
|
+ minCellTemp = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("minCellTemp=%d\n",minCellTemp);
|
|
|
+ avgCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("avgCellTemp=%d\n",avgCellTemp);
|
|
|
+ break;
|
|
|
+ case 0x18FF52F3:
|
|
|
+ maxVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("maxVolSubsysCode=%d\n",maxVolSubsysCode);
|
|
|
+ maxVolCellCode = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ printf("maxVolCellCode=%d\n",maxVolCellCode);
|
|
|
+ minVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("minVolSubsysCode=%d\n",minVolSubsysCode);
|
|
|
+ minVoCelllCode = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("minVoCelllCode=%d\n",minVoCelllCode);
|
|
|
+ break;
|
|
|
+ case 0x18FF53F3:
|
|
|
+ maxTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("maxTempSubsysCode=%d\n",maxTempSubsysCode);
|
|
|
+ maxTempCellCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("maxTempCellCode=%d\n",maxTempCellCode);
|
|
|
+ minTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("minTempSubsysCode=%d\n",minTempSubsysCode);
|
|
|
+ minTempCellCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("minTempCellCode=%d\n",minTempCellCode);
|
|
|
+ break;
|
|
|
+ case 0x18FF54F3:
|
|
|
+ numOfChrgableSubsys = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("numOfChrgableSubsys=%d\n",numOfChrgableSubsys);
|
|
|
+ lengthOfChrgableSysCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("lengthOfChrgableSysCode=%d\n",lengthOfChrgableSysCode);
|
|
|
+ chrgableSysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("chrgableSysCode=%d\n",chrgableSysCode);
|
|
|
+ chrgableSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("chrgableSubsysCode=%d\n",chrgableSubsysCode);
|
|
|
+ numOfCells = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("numOfCells=%d\n",numOfCells);
|
|
|
+ numOfCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("numOfCellTemp=%d\n",numOfCellTemp);
|
|
|
+ numOfBattErr = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("numOfBattErr=%d\n",numOfBattErr);
|
|
|
+ break;
|
|
|
+ case 0x1801FBF3:
|
|
|
+ battCellU[0] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[0]=%d\n",battCellU[0]);
|
|
|
+ battCellU[1] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[1]=%d\n",battCellU[1]);
|
|
|
+ battCellU[2] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[2]=%d\n",battCellU[2]);
|
|
|
+ battCellU[3] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[3]=%d\n",battCellU[3]);
|
|
|
+ break;
|
|
|
+ case 0x1802FBF3:
|
|
|
+ battCellU[4] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[4]=%d\n",battCellU[4]);
|
|
|
+ battCellU[5] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[5]=%d\n",battCellU[5]);
|
|
|
+ battCellU[6] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[6]=%d\n",battCellU[6]);
|
|
|
+ battCellU[7] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[7]=%d\n",battCellU[7]);
|
|
|
+ break;
|
|
|
+ case 0x1803FBF3:
|
|
|
+ battCellU[8] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[8]=%d\n",battCellU[8]);
|
|
|
+ battCellU[9] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[9]=%d\n",battCellU[9]);
|
|
|
+ battCellU[10] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[10]=%d\n",battCellU[10]);
|
|
|
+ battCellU[11] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[11]=%d\n",battCellU[11]);
|
|
|
+ break;
|
|
|
+ case 0x1804FBF3:
|
|
|
+ battCellU[12] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[12]=%d\n",battCellU[12]);
|
|
|
+ battCellU[13] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[13]=%d\n",battCellU[13]);
|
|
|
+ battCellU[14] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[14]=%d\n",battCellU[14]);
|
|
|
+ battCellU[15] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[15]=%d\n",battCellU[15]);
|
|
|
+ break;
|
|
|
+ case 0x1805FBF3:
|
|
|
+ battCellU[16] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[16]=%d\n",battCellU[16]);
|
|
|
+ battCellU[17] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[17]=%d\n",battCellU[17]);
|
|
|
+ battCellU[18] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[18]=%d\n",battCellU[18]);
|
|
|
+ battCellU[19] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[19]=%d\n",battCellU[19]);
|
|
|
+ break;
|
|
|
+ case 0x1806FBF3:
|
|
|
+ battCellU[20] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[20]=%d\n",battCellU[20]);
|
|
|
+ battCellU[21] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[21]=%d\n",battCellU[21]);
|
|
|
+ battCellU[22] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[22]=%d\n",battCellU[22]);
|
|
|
+ battCellU[23] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[23]=%d\n",battCellU[23]);
|
|
|
+ break;
|
|
|
+ case 0x1807FBF3:
|
|
|
+ battCellU[24] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[24]=%d\n",battCellU[24]);
|
|
|
+ battCellU[25] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[25]=%d\n",battCellU[25]);
|
|
|
+ battCellU[26] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[26]=%d\n",battCellU[26]);
|
|
|
+ battCellU[27] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[27]=%d\n",battCellU[27]);
|
|
|
+ break;
|
|
|
+ case 0x1808FBF3:
|
|
|
+ battCellU[28] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[28]=%d\n",battCellU[28]);
|
|
|
+ battCellU[29] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[29]=%d\n",battCellU[29]);
|
|
|
+ battCellU[30] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[30]=%d\n",battCellU[30]);
|
|
|
+ battCellU[31] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[31]=%d\n",battCellU[31]);
|
|
|
+ break;
|
|
|
+ case 0x1809FBF3:
|
|
|
+ battCellU[32] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[32]=%d\n",battCellU[32]);
|
|
|
+ battCellU[33] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[33]=%d\n",battCellU[33]);
|
|
|
+ battCellU[34] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[34]=%d\n",battCellU[34]);
|
|
|
+ battCellU[35] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[35]=%d\n",battCellU[35]);
|
|
|
+ break;
|
|
|
+ case 0x180AFBF3:
|
|
|
+ battCellU[36] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[36]=%d\n",battCellU[36]);
|
|
|
+ battCellU[37] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[37]=%d\n",battCellU[37]);
|
|
|
+ battCellU[38] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[38]=%d\n",battCellU[38]);
|
|
|
+ battCellU[39] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[39]=%d\n",battCellU[39]);
|
|
|
+ break;
|
|
|
+ case 0x180BFBF3:
|
|
|
+ battCellU[40] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[40]=%d\n",battCellU[40]);
|
|
|
+ battCellU[41] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[41]=%d\n",battCellU[41]);
|
|
|
+ battCellU[42] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[42]=%d\n",battCellU[42]);
|
|
|
+ battCellU[43] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[43]=%d\n",battCellU[43]);
|
|
|
+ break;
|
|
|
+ case 0x180CFBF3:
|
|
|
+ battCellU[44] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[44]=%d\n",battCellU[44]);
|
|
|
+ battCellU[45] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[45]=%d\n",battCellU[45]);
|
|
|
+ battCellU[46] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[46]=%d\n",battCellU[46]);
|
|
|
+ battCellU[47] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[47]=%d\n",battCellU[47]);
|
|
|
+ break;
|
|
|
+ case 0x180DFBF3:
|
|
|
+ battCellU[48] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[48]=%d\n",battCellU[48]);
|
|
|
+ battCellU[49] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[49]=%d\n",battCellU[49]);
|
|
|
+ battCellU[50] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[50]=%d\n",battCellU[50]);
|
|
|
+ battCellU[51] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[51]=%d\n",battCellU[51]);
|
|
|
+ break;
|
|
|
+ case 0x180EFBF3:
|
|
|
+ battCellU[52] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[52]=%d\n",battCellU[52]);
|
|
|
+ battCellU[53] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[53]=%d\n",battCellU[53]);
|
|
|
+ battCellU[54] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[54]=%d\n",battCellU[54]);
|
|
|
+ battCellU[55] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[55]=%d\n",battCellU[55]);
|
|
|
+ break;
|
|
|
+ case 0x180FFBF3:
|
|
|
+ battCellU[56] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[56]=%d\n",battCellU[56]);
|
|
|
+ battCellU[57] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[57]=%d\n",battCellU[57]);
|
|
|
+ battCellU[58] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[58]=%d\n",battCellU[58]);
|
|
|
+ battCellU[59] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[59]=%d\n",battCellU[59]);
|
|
|
+ break;
|
|
|
+ case 0x1810FBF3:
|
|
|
+ battCellU[60] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[60]=%d\n",battCellU[60]);
|
|
|
+ battCellU[61] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[61]=%d\n",battCellU[61]);
|
|
|
+ battCellU[62] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[62]=%d\n",battCellU[62]);
|
|
|
+ battCellU[63] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[63]=%d\n",battCellU[63]);
|
|
|
+ break;
|
|
|
+ case 0x1811FBF3:
|
|
|
+ battCellU[64] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[64]=%d\n",battCellU[64]);
|
|
|
+ battCellU[65] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[65]=%d\n",battCellU[65]);
|
|
|
+ battCellU[66] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[66]=%d\n",battCellU[66]);
|
|
|
+ battCellU[67] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[67]=%d\n",battCellU[67]);
|
|
|
+ break;
|
|
|
+ case 0x1812FBF3:
|
|
|
+ battCellU[68] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[68]=%d\n",battCellU[68]);
|
|
|
+ battCellU[69] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[69]=%d\n",battCellU[69]);
|
|
|
+ battCellU[70] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[70]=%d\n",battCellU[70]);
|
|
|
+ battCellU[71] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[71]=%d\n",battCellU[71]);
|
|
|
+ break;
|
|
|
+ case 0x1813FBF3:
|
|
|
+ battCellU[72] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[72]=%d\n",battCellU[72]);
|
|
|
+ battCellU[73] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[73]=%d\n",battCellU[73]);
|
|
|
+ battCellU[74] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[74]=%d\n",battCellU[74]);
|
|
|
+ battCellU[75] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[75]=%d\n",battCellU[75]);
|
|
|
+ break;
|
|
|
+ case 0x1814FBF3:
|
|
|
+ battCellU[76] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[76]=%d\n",battCellU[76]);
|
|
|
+ battCellU[77] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[77]=%d\n",battCellU[77]);
|
|
|
+ battCellU[78] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[78]=%d\n",battCellU[78]);
|
|
|
+ battCellU[79] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[79]=%d\n",battCellU[79]);
|
|
|
+ break;
|
|
|
+ case 0x1815FBF3:
|
|
|
+ battCellU[80] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[80]=%d\n",battCellU[80]);
|
|
|
+ battCellU[81] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[81]=%d\n",battCellU[81]);
|
|
|
+ battCellU[82] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[82]=%d\n",battCellU[82]);
|
|
|
+ battCellU[83] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[83]=%d\n",battCellU[83]);
|
|
|
+ break;
|
|
|
+ case 0x1816FBF3:
|
|
|
+ battCellU[84] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[84]=%d\n",battCellU[84]);
|
|
|
+ battCellU[85] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[85]=%d\n",battCellU[85]);
|
|
|
+ battCellU[86] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[86]=%d\n",battCellU[86]);
|
|
|
+ battCellU[87] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[87]=%d\n",battCellU[87]);
|
|
|
+ break;
|
|
|
+ case 0x1817FBF3:
|
|
|
+ battCellU[88] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[88]=%d\n",battCellU[88]);
|
|
|
+ battCellU[89] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[89]=%d\n",battCellU[89]);
|
|
|
+ battCellU[90] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[90]=%d\n",battCellU[90]);
|
|
|
+ battCellU[91] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[91]=%d\n",battCellU[91]);
|
|
|
+ break;
|
|
|
+ case 0x1818FBF3:
|
|
|
+ battCellU[92] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[92]=%d\n",battCellU[92]);
|
|
|
+ battCellU[93] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[93]=%d\n",battCellU[93]);
|
|
|
+ battCellU[94] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[94]=%d\n",battCellU[94]);
|
|
|
+ battCellU[95] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[95]=%d\n",battCellU[95]);
|
|
|
+ break;
|
|
|
+ case 0x1819FBF3:
|
|
|
+ battCellU[96] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[96]=%d\n",battCellU[96]);
|
|
|
+ battCellU[97] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[97]=%d\n",battCellU[97]);
|
|
|
+ battCellU[98] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[98]=%d\n",battCellU[98]);
|
|
|
+ battCellU[99] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[99]=%d\n",battCellU[99]);
|
|
|
+ break;
|
|
|
+ case 0x181AFBF3:
|
|
|
+ battCellU[100] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[100]=%d\n",battCellU[100]);
|
|
|
+ battCellU[101] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[101]=%d\n",battCellU[101]);
|
|
|
+ battCellU[102] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[102]=%d\n",battCellU[102]);
|
|
|
+ battCellU[103] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[103]=%d\n",battCellU[103]);
|
|
|
+ break;
|
|
|
+ case 0x181BFBF3:
|
|
|
+ battCellU[104] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[104]=%d\n",battCellU[104]);
|
|
|
+ battCellU[105] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[105]=%d\n",battCellU[105]);
|
|
|
+ battCellU[106] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[106]=%d\n",battCellU[106]);
|
|
|
+ battCellU[107] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[107]=%d\n",battCellU[107]);
|
|
|
+ break;
|
|
|
+ case 0x181CFBF3:
|
|
|
+ battCellU[108] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[108]=%d\n",battCellU[108]);
|
|
|
+ battCellU[109] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[109]=%d\n",battCellU[109]);
|
|
|
+ battCellU[110] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[110]=%d\n",battCellU[110]);
|
|
|
+ battCellU[111] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[111]=%d\n",battCellU[111]);
|
|
|
+ break;
|
|
|
+ case 0x181DFBF3:
|
|
|
+ battCellU[112] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[112]=%d\n",battCellU[112]);
|
|
|
+ battCellU[113] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[113]=%d\n",battCellU[113]);
|
|
|
+ battCellU[114] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[114]=%d\n",battCellU[114]);
|
|
|
+ battCellU[115] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[115]=%d\n",battCellU[115]);
|
|
|
+ break;
|
|
|
+ case 0x181EFBF3:
|
|
|
+ battCellU[116] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[116]=%d\n",battCellU[116]);
|
|
|
+ battCellU[117] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[117]=%d\n",battCellU[117]);
|
|
|
+ battCellU[118] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[118]=%d\n",battCellU[118]);
|
|
|
+ battCellU[119] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[119]=%d\n",battCellU[119]);
|
|
|
+ break;
|
|
|
+ case 0x181FFBF3:
|
|
|
+ battCellU[120] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[120]=%d\n",battCellU[120]);
|
|
|
+ battCellU[121] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[121]=%d\n",battCellU[121]);
|
|
|
+ battCellU[122] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[122]=%d\n",battCellU[122]);
|
|
|
+ battCellU[123] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[123]=%d\n",battCellU[123]);
|
|
|
+ break;
|
|
|
+ case 0x1820FBF3:
|
|
|
+ battCellU[124] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[124]=%d\n",battCellU[124]);
|
|
|
+ battCellU[125] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[125]=%d\n",battCellU[125]);
|
|
|
+ battCellU[126] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[126]=%d\n",battCellU[126]);
|
|
|
+ battCellU[127] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[127]=%d\n",battCellU[127]);
|
|
|
+ break;
|
|
|
+ case 0x1821FBF3:
|
|
|
+ battCellU[128] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[128]=%d\n",battCellU[128]);
|
|
|
+ battCellU[129] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[129]=%d\n",battCellU[129]);
|
|
|
+ battCellU[130] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[130]=%d\n",battCellU[130]);
|
|
|
+ battCellU[131] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[131]=%d\n",battCellU[131]);
|
|
|
+ break;
|
|
|
+ case 0x1822FBF3:
|
|
|
+ battCellU[132] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[132]=%d\n",battCellU[132]);
|
|
|
+ battCellU[133] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[133]=%d\n",battCellU[133]);
|
|
|
+ battCellU[134] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[134]=%d\n",battCellU[134]);
|
|
|
+ battCellU[135] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[135]=%d\n",battCellU[135]);
|
|
|
+ break;
|
|
|
+ case 0x1823FBF3:
|
|
|
+ battCellU[136] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[136]=%d\n",battCellU[136]);
|
|
|
+ battCellU[137] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[137]=%d\n",battCellU[137]);
|
|
|
+ battCellU[138] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[138]=%d\n",battCellU[138]);
|
|
|
+ battCellU[139] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[139]=%d\n",battCellU[139]);
|
|
|
+ break;
|
|
|
+ case 0x1824FBF3:
|
|
|
+ battCellU[140] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[140]=%d\n",battCellU[140]);
|
|
|
+ battCellU[141] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[141]=%d\n",battCellU[141]);
|
|
|
+ battCellU[142] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[142]=%d\n",battCellU[142]);
|
|
|
+ battCellU[143] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[143]=%d\n",battCellU[143]);
|
|
|
+ break;
|
|
|
+ case 0x1825FBF3:
|
|
|
+ battCellU[144] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[144]=%d\n",battCellU[144]);
|
|
|
+ battCellU[145] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[145]=%d\n",battCellU[145]);
|
|
|
+ battCellU[146] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[146]=%d\n",battCellU[146]);
|
|
|
+ battCellU[147] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[147]=%d\n",battCellU[147]);
|
|
|
+ break;
|
|
|
+ case 0x1826FBF3:
|
|
|
+ battCellU[148] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[148]=%d\n",battCellU[148]);
|
|
|
+ battCellU[149] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[149]=%d\n",battCellU[149]);
|
|
|
+ battCellU[150] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[150]=%d\n",battCellU[150]);
|
|
|
+ battCellU[151] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[151]=%d\n",battCellU[151]);
|
|
|
+ break;
|
|
|
+ case 0x1827FBF3:
|
|
|
+ battCellU[152] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[152]=%d\n",battCellU[152]);
|
|
|
+ battCellU[153] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[153]=%d\n",battCellU[153]);
|
|
|
+ battCellU[154] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[154]=%d\n",battCellU[154]);
|
|
|
+ battCellU[155] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[155]=%d\n",battCellU[155]);
|
|
|
+ break;
|
|
|
+ case 0x1828FBF3:
|
|
|
+ battCellU[156] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[156]=%d\n",battCellU[156]);
|
|
|
+ battCellU[157] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[157]=%d\n",battCellU[157]);
|
|
|
+ battCellU[158] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[158]=%d\n",battCellU[158]);
|
|
|
+ battCellU[159] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[159]=%d\n",battCellU[159]);
|
|
|
+ break;
|
|
|
+ case 0x1829FBF3:
|
|
|
+ battCellU[160] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[160]=%d\n",battCellU[160]);
|
|
|
+ battCellU[161] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[161]=%d\n",battCellU[161]);
|
|
|
+ battCellU[162] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[162]=%d\n",battCellU[162]);
|
|
|
+ battCellU[163] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[163]=%d\n",battCellU[163]);
|
|
|
+ break;
|
|
|
+ case 0x182AFBF3:
|
|
|
+ battCellU[164] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[164]=%d\n",battCellU[164]);
|
|
|
+ battCellU[165] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[165]=%d\n",battCellU[165]);
|
|
|
+ battCellU[166] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[166]=%d\n",battCellU[166]);
|
|
|
+ battCellU[167] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[167]=%d\n",battCellU[167]);
|
|
|
+ break;
|
|
|
+ case 0x182BFBF3:
|
|
|
+ battCellU[168] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[168]=%d\n",battCellU[168]);
|
|
|
+ battCellU[169] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[169]=%d\n",battCellU[169]);
|
|
|
+ battCellU[170] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[170]=%d\n",battCellU[170]);
|
|
|
+ battCellU[171] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[171]=%d\n",battCellU[171]);
|
|
|
+ break;
|
|
|
+ case 0x182CFBF3:
|
|
|
+ battCellU[172] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[172]=%d\n",battCellU[172]);
|
|
|
+ battCellU[173] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[173]=%d\n",battCellU[173]);
|
|
|
+ battCellU[174] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[174]=%d\n",battCellU[174]);
|
|
|
+ battCellU[175] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[175]=%d\n",battCellU[175]);
|
|
|
+ break;
|
|
|
+ case 0x182DFBF3:
|
|
|
+ battCellU[176] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[176]=%d\n",battCellU[176]);
|
|
|
+ battCellU[177] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[177]=%d\n",battCellU[177]);
|
|
|
+ battCellU[178] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[178]=%d\n",battCellU[178]);
|
|
|
+ battCellU[179] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[179]=%d\n",battCellU[179]);
|
|
|
+ break;
|
|
|
+ case 0x182EFBF3:
|
|
|
+ battCellU[180] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[180]=%d\n",battCellU[180]);
|
|
|
+ battCellU[181] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[181]=%d\n",battCellU[181]);
|
|
|
+ battCellU[182] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[182]=%d\n",battCellU[182]);
|
|
|
+ battCellU[183] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[183]=%d\n",battCellU[183]);
|
|
|
+ break;
|
|
|
+ case 0x182FFBF3:
|
|
|
+ battCellU[184] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[184]=%d\n",battCellU[184]);
|
|
|
+ battCellU[185] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[185]=%d\n",battCellU[185]);
|
|
|
+ battCellU[186] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[186]=%d\n",battCellU[186]);
|
|
|
+ battCellU[187] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[187]=%d\n",battCellU[187]);
|
|
|
+ break;
|
|
|
+ case 0x1830FBF3:
|
|
|
+ battCellU[188] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[188]=%d\n",battCellU[188]);
|
|
|
+ battCellU[189] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[189]=%d\n",battCellU[189]);
|
|
|
+ battCellU[190] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[190]=%d\n",battCellU[190]);
|
|
|
+ battCellU[191] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[191]=%d\n",battCellU[191]);
|
|
|
+ break;
|
|
|
+ case 0x1831FBF3:
|
|
|
+ battCellU[192] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[192]=%d\n",battCellU[192]);
|
|
|
+ battCellU[193] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[193]=%d\n",battCellU[193]);
|
|
|
+ battCellU[194] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[194]=%d\n",battCellU[194]);
|
|
|
+ battCellU[195] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[195]=%d\n",battCellU[195]);
|
|
|
+ break;
|
|
|
+ case 0x1832FBF3:
|
|
|
+ battCellU[196] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[196]=%d\n",battCellU[196]);
|
|
|
+ battCellU[197] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[197]=%d\n",battCellU[197]);
|
|
|
+ battCellU[198] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[198]=%d\n",battCellU[198]);
|
|
|
+ battCellU[199] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[199]=%d\n",battCellU[199]);
|
|
|
+ break;
|
|
|
+ case 0x1833FBF3:
|
|
|
+ battCellU[200] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[200]=%d\n",battCellU[200]);
|
|
|
+ battCellU[201] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[201]=%d\n",battCellU[201]);
|
|
|
+ battCellU[202] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[202]=%d\n",battCellU[202]);
|
|
|
+ battCellU[203] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[203]=%d\n",battCellU[203]);
|
|
|
+ break;
|
|
|
+ case 0x1834FBF3:
|
|
|
+ battCellU[204] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[204]=%d\n",battCellU[204]);
|
|
|
+ battCellU[205] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[205]=%d\n",battCellU[205]);
|
|
|
+ battCellU[206] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[206]=%d\n",battCellU[206]);
|
|
|
+ battCellU[207] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[207]=%d\n",battCellU[207]);
|
|
|
+ break;
|
|
|
+ case 0x1835FBF3:
|
|
|
+ battCellU[208] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[208]=%d\n",battCellU[208]);
|
|
|
+ battCellU[209] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[209]=%d\n",battCellU[209]);
|
|
|
+ battCellU[210] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[210]=%d\n",battCellU[210]);
|
|
|
+ battCellU[211] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[211]=%d\n",battCellU[211]);
|
|
|
+ break;
|
|
|
+ case 0x1836FBF3:
|
|
|
+ battCellU[212] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[212]=%d\n",battCellU[212]);
|
|
|
+ battCellU[213] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[213]=%d\n",battCellU[213]);
|
|
|
+ battCellU[214] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[214]=%d\n",battCellU[214]);
|
|
|
+ battCellU[215] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[215]=%d\n",battCellU[215]);
|
|
|
+ break;
|
|
|
+ case 0x1837FBF3:
|
|
|
+ battCellU[216] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[216]=%d\n",battCellU[216]);
|
|
|
+ battCellU[217] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[217]=%d\n",battCellU[217]);
|
|
|
+ battCellU[218] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[218]=%d\n",battCellU[218]);
|
|
|
+ battCellU[219] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[219]=%d\n",battCellU[219]);
|
|
|
+ break;
|
|
|
+ case 0x1838FBF3:
|
|
|
+ battCellU[220] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[220]=%d\n",battCellU[220]);
|
|
|
+ battCellU[221] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[221]=%d\n",battCellU[221]);
|
|
|
+ battCellU[222] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[222]=%d\n",battCellU[222]);
|
|
|
+ battCellU[223] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[223]=%d\n",battCellU[223]);
|
|
|
+ break;
|
|
|
+ case 0x1839FBF3:
|
|
|
+ battCellU[224] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[224]=%d\n",battCellU[224]);
|
|
|
+ battCellU[225] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[225]=%d\n",battCellU[225]);
|
|
|
+ battCellU[226] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[226]=%d\n",battCellU[226]);
|
|
|
+ battCellU[227] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[227]=%d\n",battCellU[227]);
|
|
|
+ break;
|
|
|
+ case 0x183AFBF3:
|
|
|
+ battCellU[228] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[228]=%d\n",battCellU[228]);
|
|
|
+ battCellU[229] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[229]=%d\n",battCellU[229]);
|
|
|
+ battCellU[230] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[230]=%d\n",battCellU[230]);
|
|
|
+ battCellU[231] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[231]=%d\n",battCellU[231]);
|
|
|
+ break;
|
|
|
+ case 0x183BFBF3:
|
|
|
+ battCellU[232] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[232]=%d\n",battCellU[232]);
|
|
|
+ battCellU[233] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[233]=%d\n",battCellU[233]);
|
|
|
+ battCellU[234] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[234]=%d\n",battCellU[234]);
|
|
|
+ battCellU[235] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[235]=%d\n",battCellU[235]);
|
|
|
+ break;
|
|
|
+ case 0x183CFBF3:
|
|
|
+ battCellU[236] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[236]=%d\n",battCellU[236]);
|
|
|
+ battCellU[237] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[237]=%d\n",battCellU[237]);
|
|
|
+ battCellU[238] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[238]=%d\n",battCellU[238]);
|
|
|
+ battCellU[239] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[239]=%d\n",battCellU[239]);
|
|
|
+ break;
|
|
|
+ case 0x183DFBF3:
|
|
|
+ battCellU[240] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[240]=%d\n",battCellU[240]);
|
|
|
+ battCellU[241] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[241]=%d\n",battCellU[241]);
|
|
|
+ battCellU[242] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[242]=%d\n",battCellU[242]);
|
|
|
+ battCellU[243] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[243]=%d\n",battCellU[243]);
|
|
|
+ break;
|
|
|
+ case 0x183EFBF3:
|
|
|
+ battCellU[244] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[244]=%d\n",battCellU[244]);
|
|
|
+ battCellU[245] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[245]=%d\n",battCellU[245]);
|
|
|
+ battCellU[246] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[246]=%d\n",battCellU[246]);
|
|
|
+ battCellU[247] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[247]=%d\n",battCellU[247]);
|
|
|
+ break;
|
|
|
+ case 0x183FFBF3:
|
|
|
+ battCellU[248] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[248]=%d\n",battCellU[248]);
|
|
|
+ battCellU[249] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[249]=%d\n",battCellU[249]);
|
|
|
+ battCellU[250] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[250]=%d\n",battCellU[250]);
|
|
|
+ battCellU[251] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[251]=%d\n",battCellU[251]);
|
|
|
+ break;
|
|
|
+ case 0x1840FBF3:
|
|
|
+ battCellU[252] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[252]=%d\n",battCellU[252]);
|
|
|
+ battCellU[253] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[253]=%d\n",battCellU[253]);
|
|
|
+ battCellU[254] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[254]=%d\n",battCellU[254]);
|
|
|
+ battCellU[255] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[255]=%d\n",battCellU[255]);
|
|
|
+ break;
|
|
|
+ case 0x1841FBF3:
|
|
|
+ battCellU[256] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[256]=%d\n",battCellU[256]);
|
|
|
+ battCellU[257] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[257]=%d\n",battCellU[257]);
|
|
|
+ battCellU[258] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[258]=%d\n",battCellU[258]);
|
|
|
+ battCellU[259] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[259]=%d\n",battCellU[259]);
|
|
|
+ break;
|
|
|
+ case 0x1842FBF3:
|
|
|
+ battCellU[260] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[260]=%d\n",battCellU[260]);
|
|
|
+ battCellU[261] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[261]=%d\n",battCellU[261]);
|
|
|
+ battCellU[262] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[262]=%d\n",battCellU[262]);
|
|
|
+ battCellU[263] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[263]=%d\n",battCellU[263]);
|
|
|
+ break;
|
|
|
+ case 0x1843FBF3:
|
|
|
+ battCellU[264] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[264]=%d\n",battCellU[264]);
|
|
|
+ battCellU[265] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[265]=%d\n",battCellU[265]);
|
|
|
+ battCellU[266] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[266]=%d\n",battCellU[266]);
|
|
|
+ battCellU[267] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[267]=%d\n",battCellU[267]);
|
|
|
+ break;
|
|
|
+ case 0x1844FBF3:
|
|
|
+ battCellU[268] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[268]=%d\n",battCellU[268]);
|
|
|
+ battCellU[269] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[269]=%d\n",battCellU[269]);
|
|
|
+ battCellU[270] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[270]=%d\n",battCellU[270]);
|
|
|
+ battCellU[271] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[271]=%d\n",battCellU[271]);
|
|
|
+ break;
|
|
|
+ case 0x1845FBF3:
|
|
|
+ battCellU[272] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[272]=%d\n",battCellU[272]);
|
|
|
+ battCellU[273] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[273]=%d\n",battCellU[273]);
|
|
|
+ battCellU[274] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[274]=%d\n",battCellU[274]);
|
|
|
+ battCellU[275] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[275]=%d\n",battCellU[275]);
|
|
|
+ break;
|
|
|
+ case 0x1846FBF3:
|
|
|
+ battCellU[276] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[276]=%d\n",battCellU[276]);
|
|
|
+ battCellU[277] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[277]=%d\n",battCellU[277]);
|
|
|
+ battCellU[278] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[278]=%d\n",battCellU[278]);
|
|
|
+ battCellU[279] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[279]=%d\n",battCellU[279]);
|
|
|
+ break;
|
|
|
+ case 0x1847FBF3:
|
|
|
+ battCellU[280] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[280]=%d\n",battCellU[280]);
|
|
|
+ battCellU[281] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[281]=%d\n",battCellU[281]);
|
|
|
+ battCellU[282] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[282]=%d\n",battCellU[282]);
|
|
|
+ battCellU[283] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[283]=%d\n",battCellU[283]);
|
|
|
+ break;
|
|
|
+ case 0x1848FBF3:
|
|
|
+ battCellU[284] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[284]=%d\n",battCellU[284]);
|
|
|
+ battCellU[285] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[285]=%d\n",battCellU[285]);
|
|
|
+ battCellU[286] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[286]=%d\n",battCellU[286]);
|
|
|
+ battCellU[287] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[287]=%d\n",battCellU[287]);
|
|
|
+ break;
|
|
|
+ case 0x1849FBF3:
|
|
|
+ battCellU[288] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[288]=%d\n",battCellU[288]);
|
|
|
+ battCellU[289] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[289]=%d\n",battCellU[289]);
|
|
|
+ battCellU[290] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[290]=%d\n",battCellU[290]);
|
|
|
+ battCellU[291] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[291]=%d\n",battCellU[291]);
|
|
|
+ break;
|
|
|
+ case 0x184AFBF3:
|
|
|
+ battCellU[292] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[292]=%d\n",battCellU[292]);
|
|
|
+ battCellU[293] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[293]=%d\n",battCellU[293]);
|
|
|
+ battCellU[294] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[294]=%d\n",battCellU[294]);
|
|
|
+ battCellU[295] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[295]=%d\n",battCellU[295]);
|
|
|
+ break;
|
|
|
+ case 0x184BFBF3:
|
|
|
+ battCellU[296] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[296]=%d\n",battCellU[296]);
|
|
|
+ battCellU[297] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[297]=%d\n",battCellU[297]);
|
|
|
+ battCellU[298] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[298]=%d\n",battCellU[298]);
|
|
|
+ battCellU[299] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[299]=%d\n",battCellU[299]);
|
|
|
+ break;
|
|
|
+ case 0x184CFBF3:
|
|
|
+ battCellU[300] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[300]=%d\n",battCellU[300]);
|
|
|
+ battCellU[301] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[301]=%d\n",battCellU[301]);
|
|
|
+ battCellU[302] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[302]=%d\n",battCellU[302]);
|
|
|
+ battCellU[303] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[303]=%d\n",battCellU[303]);
|
|
|
+ break;
|
|
|
+ case 0x184DFBF3:
|
|
|
+ battCellU[304] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[304]=%d\n",battCellU[304]);
|
|
|
+ battCellU[305] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[305]=%d\n",battCellU[305]);
|
|
|
+ battCellU[306] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[306]=%d\n",battCellU[306]);
|
|
|
+ battCellU[307] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[307]=%d\n",battCellU[307]);
|
|
|
+ break;
|
|
|
+ case 0x184EFBF3:
|
|
|
+ battCellU[308] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[308]=%d\n",battCellU[308]);
|
|
|
+ battCellU[309] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[309]=%d\n",battCellU[309]);
|
|
|
+ battCellU[310] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[310]=%d\n",battCellU[310]);
|
|
|
+ battCellU[311] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[311]=%d\n",battCellU[311]);
|
|
|
+ break;
|
|
|
+ case 0x184FFBF3:
|
|
|
+ battCellU[312] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[312]=%d\n",battCellU[312]);
|
|
|
+ battCellU[313] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[313]=%d\n",battCellU[313]);
|
|
|
+ battCellU[314] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[314]=%d\n",battCellU[314]);
|
|
|
+ battCellU[315] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[315]=%d\n",battCellU[315]);
|
|
|
+ break;
|
|
|
+ case 0x1850FBF3:
|
|
|
+ battCellU[316] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[316]=%d\n",battCellU[316]);
|
|
|
+ battCellU[317] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[317]=%d\n",battCellU[317]);
|
|
|
+ battCellU[318] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[318]=%d\n",battCellU[318]);
|
|
|
+ battCellU[319] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[319]=%d\n",battCellU[319]);
|
|
|
+ break;
|
|
|
+ case 0x1851FBF3:
|
|
|
+ battCellU[320] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[320]=%d\n",battCellU[320]);
|
|
|
+ battCellU[321] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[321]=%d\n",battCellU[321]);
|
|
|
+ battCellU[322] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[322]=%d\n",battCellU[322]);
|
|
|
+ battCellU[323] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[323]=%d\n",battCellU[323]);
|
|
|
+ break;
|
|
|
+ case 0x1852FBF3:
|
|
|
+ battCellU[324] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[324]=%d\n",battCellU[324]);
|
|
|
+ battCellU[325] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[325]=%d\n",battCellU[325]);
|
|
|
+ battCellU[326] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[326]=%d\n",battCellU[326]);
|
|
|
+ battCellU[327] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[327]=%d\n",battCellU[327]);
|
|
|
+ break;
|
|
|
+ case 0x1853FBF3:
|
|
|
+ battCellU[328] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[328]=%d\n",battCellU[328]);
|
|
|
+ battCellU[329] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[329]=%d\n",battCellU[329]);
|
|
|
+ battCellU[330] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[330]=%d\n",battCellU[330]);
|
|
|
+ battCellU[331] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[331]=%d\n",battCellU[331]);
|
|
|
+ break;
|
|
|
+ case 0x1854FBF3:
|
|
|
+ battCellU[332] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[332]=%d\n",battCellU[332]);
|
|
|
+ battCellU[333] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[333]=%d\n",battCellU[333]);
|
|
|
+ battCellU[334] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[334]=%d\n",battCellU[334]);
|
|
|
+ battCellU[335] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[335]=%d\n",battCellU[335]);
|
|
|
+ break;
|
|
|
+ case 0x1855FBF3:
|
|
|
+ battCellU[336] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[336]=%d\n",battCellU[336]);
|
|
|
+ battCellU[337] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[337]=%d\n",battCellU[337]);
|
|
|
+ battCellU[338] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[338]=%d\n",battCellU[338]);
|
|
|
+ battCellU[339] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[339]=%d\n",battCellU[339]);
|
|
|
+ break;
|
|
|
+ case 0x1856FBF3:
|
|
|
+ battCellU[340] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[340]=%d\n",battCellU[340]);
|
|
|
+ battCellU[341] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[341]=%d\n",battCellU[341]);
|
|
|
+ battCellU[342] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[342]=%d\n",battCellU[342]);
|
|
|
+ battCellU[343] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[343]=%d\n",battCellU[343]);
|
|
|
+ break;
|
|
|
+ case 0x1857FBF3:
|
|
|
+ battCellU[344] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[344]=%d\n",battCellU[344]);
|
|
|
+ battCellU[345] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[345]=%d\n",battCellU[345]);
|
|
|
+ battCellU[346] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[346]=%d\n",battCellU[346]);
|
|
|
+ battCellU[347] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[347]=%d\n",battCellU[347]);
|
|
|
+ break;
|
|
|
+ case 0x1858FBF3:
|
|
|
+ battCellU[348] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[348]=%d\n",battCellU[348]);
|
|
|
+ battCellU[349] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[349]=%d\n",battCellU[349]);
|
|
|
+ battCellU[350] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[350]=%d\n",battCellU[350]);
|
|
|
+ battCellU[351] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[351]=%d\n",battCellU[351]);
|
|
|
+ break;
|
|
|
+ case 0x1859FBF3:
|
|
|
+ battCellU[352] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[352]=%d\n",battCellU[352]);
|
|
|
+ battCellU[353] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[353]=%d\n",battCellU[353]);
|
|
|
+ battCellU[354] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[354]=%d\n",battCellU[354]);
|
|
|
+ battCellU[355] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[355]=%d\n",battCellU[355]);
|
|
|
+ break;
|
|
|
+ case 0x185AFBF3:
|
|
|
+ battCellU[356] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[356]=%d\n",battCellU[356]);
|
|
|
+ battCellU[357] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[357]=%d\n",battCellU[357]);
|
|
|
+ battCellU[358] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[358]=%d\n",battCellU[358]);
|
|
|
+ battCellU[359] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[359]=%d\n",battCellU[359]);
|
|
|
+ break;
|
|
|
+ case 0x185BFBF3:
|
|
|
+ battCellU[360] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[360]=%d\n",battCellU[360]);
|
|
|
+ battCellU[361] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[361]=%d\n",battCellU[361]);
|
|
|
+ battCellU[362] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[362]=%d\n",battCellU[362]);
|
|
|
+ battCellU[363] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[363]=%d\n",battCellU[363]);
|
|
|
+ break;
|
|
|
+ case 0x185CFBF3:
|
|
|
+ battCellU[364] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[364]=%d\n",battCellU[364]);
|
|
|
+ battCellU[365] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[365]=%d\n",battCellU[365]);
|
|
|
+ battCellU[366] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[366]=%d\n",battCellU[366]);
|
|
|
+ battCellU[367] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[367]=%d\n",battCellU[367]);
|
|
|
+ break;
|
|
|
+ case 0x185DFBF3:
|
|
|
+ battCellU[368] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[368]=%d\n",battCellU[368]);
|
|
|
+ battCellU[369] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[369]=%d\n",battCellU[369]);
|
|
|
+ battCellU[370] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[370]=%d\n",battCellU[370]);
|
|
|
+ battCellU[371] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[371]=%d\n",battCellU[371]);
|
|
|
+ break;
|
|
|
+ case 0x185EFBF3:
|
|
|
+ battCellU[372] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[372]=%d\n",battCellU[372]);
|
|
|
+ battCellU[373] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[373]=%d\n",battCellU[373]);
|
|
|
+ battCellU[374] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[374]=%d\n",battCellU[374]);
|
|
|
+ battCellU[375] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[375]=%d\n",battCellU[375]);
|
|
|
+ break;
|
|
|
+ case 0x185FFBF3:
|
|
|
+ battCellU[376] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[376]=%d\n",battCellU[376]);
|
|
|
+ battCellU[377] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[377]=%d\n",battCellU[377]);
|
|
|
+ battCellU[378] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[378]=%d\n",battCellU[378]);
|
|
|
+ battCellU[379] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[379]=%d\n",battCellU[379]);
|
|
|
+ break;
|
|
|
+ case 0x1860FBF3:
|
|
|
+ battCellU[380] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ printf("battCellU[380]=%d\n",battCellU[380]);
|
|
|
+ battCellU[381] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ printf("battCellU[381]=%d\n",battCellU[381]);
|
|
|
+ battCellU[382] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ printf("battCellU[382]=%d\n",battCellU[382]);
|
|
|
+ battCellU[383] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ printf("battCellU[383]=%d\n",battCellU[383]);
|
|
|
+ break;
|
|
|
+ case 0x18A0FBF3:
|
|
|
+ battCellTemp[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[0]=%d\n",battCellTemp[0]);
|
|
|
+ battCellTemp[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[1]=%d\n",battCellTemp[1]);
|
|
|
+ battCellTemp[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[2]=%d\n",battCellTemp[2]);
|
|
|
+ battCellTemp[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[3]=%d\n",battCellTemp[3]);
|
|
|
+ battCellTemp[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[4]=%d\n",battCellTemp[4]);
|
|
|
+ battCellTemp[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[5]=%d\n",battCellTemp[5]);
|
|
|
+ battCellTemp[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[6]=%d\n",battCellTemp[6]);
|
|
|
+ battCellTemp[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[7]=%d\n",battCellTemp[7]);
|
|
|
+ break;
|
|
|
+ case 0x18A1FBF3:
|
|
|
+ battCellTemp[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[8]=%d\n",battCellTemp[8]);
|
|
|
+ battCellTemp[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[9]=%d\n",battCellTemp[9]);
|
|
|
+ battCellTemp[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[10]=%d\n",battCellTemp[10]);
|
|
|
+ battCellTemp[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[11]=%d\n",battCellTemp[11]);
|
|
|
+ battCellTemp[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[12]=%d\n",battCellTemp[12]);
|
|
|
+ battCellTemp[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[13]=%d\n",battCellTemp[13]);
|
|
|
+ battCellTemp[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[14]=%d\n",battCellTemp[14]);
|
|
|
+ battCellTemp[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[15]=%d\n",battCellTemp[15]);
|
|
|
+ break;
|
|
|
+ case 0x18A2FBF3:
|
|
|
+ battCellTemp[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[16]=%d\n",battCellTemp[16]);
|
|
|
+ battCellTemp[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[17]=%d\n",battCellTemp[17]);
|
|
|
+ battCellTemp[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[18]=%d\n",battCellTemp[18]);
|
|
|
+ battCellTemp[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[19]=%d\n",battCellTemp[19]);
|
|
|
+ battCellTemp[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[20]=%d\n",battCellTemp[20]);
|
|
|
+ battCellTemp[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[21]=%d\n",battCellTemp[21]);
|
|
|
+ battCellTemp[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[22]=%d\n",battCellTemp[22]);
|
|
|
+ battCellTemp[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[23]=%d\n",battCellTemp[23]);
|
|
|
+ battCellTemp[24] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[24]=%d\n",battCellTemp[24]);
|
|
|
+ battCellTemp[25] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[25]=%d\n",battCellTemp[25]);
|
|
|
+ battCellTemp[26] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[26]=%d\n",battCellTemp[26]);
|
|
|
+ battCellTemp[27] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[27]=%d\n",battCellTemp[27]);
|
|
|
+ battCellTemp[28] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[28]=%d\n",battCellTemp[28]);
|
|
|
+ battCellTemp[29] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[29]=%d\n",battCellTemp[29]);
|
|
|
+ battCellTemp[30] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[30]=%d\n",battCellTemp[30]);
|
|
|
+ battCellTemp[31] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[31]=%d\n",battCellTemp[31]);
|
|
|
+ break;
|
|
|
+ case 0x18A3FBF3:
|
|
|
+ battCellTemp[32] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[32]=%d\n",battCellTemp[32]);
|
|
|
+ battCellTemp[33] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[33]=%d\n",battCellTemp[33]);
|
|
|
+ battCellTemp[34] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[34]=%d\n",battCellTemp[34]);
|
|
|
+ battCellTemp[35] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[35]=%d\n",battCellTemp[35]);
|
|
|
+ battCellTemp[36] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[36]=%d\n",battCellTemp[36]);
|
|
|
+ battCellTemp[37] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[37]=%d\n",battCellTemp[37]);
|
|
|
+ battCellTemp[38] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[38]=%d\n",battCellTemp[38]);
|
|
|
+ battCellTemp[39] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[39]=%d\n",battCellTemp[39]);
|
|
|
+ break;
|
|
|
+ case 0x18A4FBF3:
|
|
|
+ battCellTemp[40] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[40]=%d\n",battCellTemp[40]);
|
|
|
+ battCellTemp[41] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[41]=%d\n",battCellTemp[41]);
|
|
|
+ battCellTemp[42] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[42]=%d\n",battCellTemp[42]);
|
|
|
+ battCellTemp[43] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[43]=%d\n",battCellTemp[43]);
|
|
|
+ battCellTemp[44] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[44]=%d\n",battCellTemp[44]);
|
|
|
+ battCellTemp[45] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[45]=%d\n",battCellTemp[45]);
|
|
|
+ battCellTemp[46] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[46]=%d\n",battCellTemp[46]);
|
|
|
+ battCellTemp[47] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[47]=%d\n",battCellTemp[47]);
|
|
|
+ break;
|
|
|
+ case 0x18A5FBF3:
|
|
|
+ battCellTemp[48] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[48]=%d\n",battCellTemp[48]);
|
|
|
+ battCellTemp[49] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[49]=%d\n",battCellTemp[49]);
|
|
|
+ battCellTemp[50] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[50]=%d\n",battCellTemp[50]);
|
|
|
+ battCellTemp[51] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[51]=%d\n",battCellTemp[51]);
|
|
|
+ battCellTemp[52] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[52]=%d\n",battCellTemp[52]);
|
|
|
+ battCellTemp[53] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[53]=%d\n",battCellTemp[53]);
|
|
|
+ battCellTemp[54] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[54]=%d\n",battCellTemp[54]);
|
|
|
+ battCellTemp[55] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[55]=%d\n",battCellTemp[55]);
|
|
|
+ break;
|
|
|
+ case 0x18A6FBF3:
|
|
|
+ battCellTemp[56] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battCellTemp[56]=%d\n",battCellTemp[56]);
|
|
|
+ battCellTemp[57] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("battCellTemp[57]=%d\n",battCellTemp[57]);
|
|
|
+ battCellTemp[58] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("battCellTemp[58]=%d\n",battCellTemp[58]);
|
|
|
+ battCellTemp[59] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("battCellTemp[59]=%d\n",battCellTemp[59]);
|
|
|
+ battCellTemp[60] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("battCellTemp[60]=%d\n",battCellTemp[60]);
|
|
|
+ battCellTemp[61] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("battCellTemp[61]=%d\n",battCellTemp[61]);
|
|
|
+ battCellTemp[62] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("battCellTemp[62]=%d\n",battCellTemp[62]);
|
|
|
+ battCellTemp[63] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("battCellTemp[63]=%d\n",battCellTemp[63]);
|
|
|
+ break;
|
|
|
+ case 0x18FF08F3:
|
|
|
+ mainPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ printf("mainPosRlyStatus=%d\n",mainPosRlyStatus);
|
|
|
+ preRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ printf("preRlyStatus=%d\n",preRlyStatus);
|
|
|
+ mainNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ printf("mainNegRlyStatus=%d\n",mainNegRlyStatus);
|
|
|
+ thrRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>6)&0x3);
|
|
|
+ printf("thrRlyStatus=%d\n",thrRlyStatus);
|
|
|
+ ptc1RlyStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ printf("ptc1RlyStatus=%d\n",ptc1RlyStatus);
|
|
|
+ airCondRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ printf("airCondRlyStatus=%d\n",airCondRlyStatus);
|
|
|
+ dcChrg1PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x3);
|
|
|
+ printf("dcChrg1PosRlyStatus=%d\n",dcChrg1PosRlyStatus);
|
|
|
+ dcChrg1NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x3);
|
|
|
+ printf("dcChrg1NegRlyStatus=%d\n",dcChrg1NegRlyStatus);
|
|
|
+ dcChrg2PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2)))&0x3);
|
|
|
+ printf("dcChrg2PosRlyStatus=%d\n",dcChrg2PosRlyStatus);
|
|
|
+ dcChrg2NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>2)&0x3);
|
|
|
+ printf("dcChrg2NegRlyStatus=%d\n",dcChrg2NegRlyStatus);
|
|
|
+ heatPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>4)&0x3);
|
|
|
+ printf("heatPosRlyStatus=%d\n",heatPosRlyStatus);
|
|
|
+ heatNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>6)&0x3);
|
|
|
+ printf("heatNegRlyStatus=%d\n",heatNegRlyStatus);
|
|
|
+ coolRlyStatus = (UINT8)(((*(UINT8*)(rawData +3)))&0x3);
|
|
|
+ printf("coolRlyStatus=%d\n",coolRlyStatus);
|
|
|
+ ptc2RlyStatus = (UINT8)(((*(UINT8*)(rawData +3))>>2)&0x3);
|
|
|
+ printf("ptc2RlyStatus=%d\n",ptc2RlyStatus);
|
|
|
+ mainPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ printf("mainPosRlyErrStatus=%d\n",mainPosRlyErrStatus);
|
|
|
+ preRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ printf("preRlyErrStatus=%d\n",preRlyErrStatus);
|
|
|
+ mainNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ printf("mainNegRlyErrStatus=%d\n",mainNegRlyErrStatus);
|
|
|
+ thrRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ printf("thrRlyErrStatus=%d\n",thrRlyErrStatus);
|
|
|
+ ptc1RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ printf("ptc1RlyErrStatus=%d\n",ptc1RlyErrStatus);
|
|
|
+ airCondRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ printf("airCondRlyErrStatus=%d\n",airCondRlyErrStatus);
|
|
|
+ dcChrg1PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>4)&0x3);
|
|
|
+ printf("dcChrg1PosRlyErrStatus=%d\n",dcChrg1PosRlyErrStatus);
|
|
|
+ dcChrg1NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>6)&0x3);
|
|
|
+ printf("dcChrg1NegRlyErrStatus=%d\n",dcChrg1NegRlyErrStatus);
|
|
|
+ dcChrg2PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ printf("dcChrg2PosRlyErrStatus=%d\n",dcChrg2PosRlyErrStatus);
|
|
|
+ dcChrg2NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ printf("dcChrg2NegRlyErrStatus=%d\n",dcChrg2NegRlyErrStatus);
|
|
|
+ heatPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>4)&0x3);
|
|
|
+ printf("heatPosRlyErrStatus=%d\n",heatPosRlyErrStatus);
|
|
|
+ heatNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>6)&0x3);
|
|
|
+ printf("heatNegRlyErrStatus=%d\n",heatNegRlyErrStatus);
|
|
|
+ coolRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7)))&0x3);
|
|
|
+ printf("coolRlyErrStatus=%d\n",coolRlyErrStatus);
|
|
|
+ ptc2RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7))>>2)&0x3);
|
|
|
+ printf("ptc2RlyErrStatus=%d\n",ptc2RlyErrStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FF60F3:
|
|
|
+ accChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("accChrgAh=%d\n",accChrgAh);
|
|
|
+ accDischrgAh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("accDischrgAh=%d\n",accDischrgAh);
|
|
|
+ break;
|
|
|
+ case 0x18FF61F3:
|
|
|
+ accChrgkWh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("accChrgkWh=%d\n",accChrgkWh);
|
|
|
+ accDischrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("accDischrgkWh=%d\n",accDischrgkWh);
|
|
|
+ break;
|
|
|
+ case 0x18FF62F3:
|
|
|
+ battSOH = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("battSOH=%d\n",battSOH);
|
|
|
+ break;
|
|
|
+ case 0x18FF63F3:
|
|
|
+ SN[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("SN[0]=%d\n",SN[0]);
|
|
|
+ SN[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("SN[1]=%d\n",SN[1]);
|
|
|
+ SN[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("SN[2]=%d\n",SN[2]);
|
|
|
+ SN[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("SN[3]=%d\n",SN[3]);
|
|
|
+ SN[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("SN[4]=%d\n",SN[4]);
|
|
|
+ SN[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("SN[5]=%d\n",SN[5]);
|
|
|
+ SN[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("SN[6]=%d\n",SN[6]);
|
|
|
+ SN[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("SN[7]=%d\n",SN[7]);
|
|
|
+ break;
|
|
|
+ case 0x18FF64F3:
|
|
|
+ SN[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("SN[8]=%d\n",SN[8]);
|
|
|
+ SN[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("SN[9]=%d\n",SN[9]);
|
|
|
+ SN[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("SN[10]=%d\n",SN[10]);
|
|
|
+ SN[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("SN[11]=%d\n",SN[11]);
|
|
|
+ SN[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("SN[12]=%d\n",SN[12]);
|
|
|
+ SN[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("SN[13]=%d\n",SN[13]);
|
|
|
+ SN[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("SN[14]=%d\n",SN[14]);
|
|
|
+ SN[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("SN[15]=%d\n",SN[15]);
|
|
|
+ break;
|
|
|
+ case 0x18FF65F3:
|
|
|
+ SN[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("SN[16]=%d\n",SN[16]);
|
|
|
+ SN[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ printf("SN[17]=%d\n",SN[17]);
|
|
|
+ SN[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("SN[18]=%d\n",SN[18]);
|
|
|
+ SN[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("SN[19]=%d\n",SN[19]);
|
|
|
+ SN[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("SN[20]=%d\n",SN[20]);
|
|
|
+ SN[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("SN[21]=%d\n",SN[21]);
|
|
|
+ SN[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("SN[22]=%d\n",SN[22]);
|
|
|
+ SN[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("SN[23]=%d\n",SN[23]);
|
|
|
+ break;
|
|
|
+ case 0x18FF66F3:
|
|
|
+ accRecvryChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("accRecvryChrgAh=%d\n",accRecvryChrgAh);
|
|
|
+ accRecvryChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("accRecvryChrgkWh=%d\n",accRecvryChrgkWh);
|
|
|
+ break;
|
|
|
+ case 0x18FF67F3:
|
|
|
+ accStationChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("accStationChrgAh=%d\n",accStationChrgAh);
|
|
|
+ accStationChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("accStationChrgkWh=%d\n",accStationChrgkWh);
|
|
|
+ break;
|
|
|
+ case 0x18FF68F3:
|
|
|
+ accGunChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("accGunChrgAh=%d\n",accGunChrgAh);
|
|
|
+ accGunChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("accGunChrgkWh=%d\n",accGunChrgkWh);
|
|
|
+ break;
|
|
|
+ case 0x18FF69F3:
|
|
|
+ sglChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("sglChrgAh=%d\n",sglChrgAh);
|
|
|
+ sglChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ printf("sglChrgkWh=%d\n",sglChrgkWh);
|
|
|
+ break;
|
|
|
+ case 0x18FF10D0:
|
|
|
+ bmsHVOn = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ printf("bmsHVOn=%d\n",bmsHVOn);
|
|
|
+ break;
|
|
|
+ case 0x18FF20EF:
|
|
|
+ vcuDCVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ printf("vcuDCVol=%d\n",vcuDCVol);
|
|
|
+ break;
|
|
|
+ case 0x18FF13A3:
|
|
|
+ acRelayStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ printf("acRelayStatus=%d\n",acRelayStatus);
|
|
|
+ ptcRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ printf("ptcRelayStatus=%d\n",ptcRelayStatus);
|
|
|
+ mainRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>3)&0x3);
|
|
|
+ printf("mainRelayStatus=%d\n",mainRelayStatus);
|
|
|
+ preRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ printf("preRelayStatus=%d\n",preRelayStatus);
|
|
|
+ ptc2RelayStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ printf("ptc2RelayStatus=%d\n",ptc2RelayStatus);
|
|
|
+ acRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ printf("acRelayErrorStatus=%d\n",acRelayErrorStatus);
|
|
|
+ ptcRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ printf("ptcRelayErrorStatus=%d\n",ptcRelayErrorStatus);
|
|
|
+ mainRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ printf("mainRelayErrorStatus=%d\n",mainRelayErrorStatus);
|
|
|
+ preRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ printf("preRelayErrorStatus=%d\n",preRelayErrorStatus);
|
|
|
+ hvLockErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ printf("hvLockErrorStatus=%d\n",hvLockErrorStatus);
|
|
|
+ ptc2RelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ printf("ptc2RelayErrorStatus=%d\n",ptc2RelayErrorStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FF1154:
|
|
|
+ ebcStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ printf("ebcStatus=%d\n",ebcStatus);
|
|
|
+ ebcAskHVOn = (UINT8)(((*(UINT8*)(rawData +1)))&0x1);
|
|
|
+ printf("ebcAskHVOn=%d\n",ebcAskHVOn);
|
|
|
+ ebcAskHVOff = (UINT8)(((*(UINT8*)(rawData +1))>>1)&0x1);
|
|
|
+ printf("ebcAskHVOff=%d\n",ebcAskHVOff);
|
|
|
+ retainLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>3)&0x1);
|
|
|
+ printf("retainLockSignal=%d\n",retainLockSignal);
|
|
|
+ dischargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>5)&0x1);
|
|
|
+ printf("dischargeLockSignal=%d\n",dischargeLockSignal);
|
|
|
+ chargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x1);
|
|
|
+ printf("chargeLockSignal=%d\n",chargeLockSignal);
|
|
|
+ errorClass = (UINT8)(((*(UINT16*)(rawData +2))>>2)&0xFF);
|
|
|
+ printf("errorClass=%d\n",errorClass);
|
|
|
+ errorCode1 = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("errorCode1=%d\n",errorCode1);
|
|
|
+ errorCode2 = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ printf("errorCode2=%d\n",errorCode2);
|
|
|
+ chargeFlag = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ printf("chargeFlag=%d\n",chargeFlag);
|
|
|
+ exchangeBattAirPressure = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ printf("exchangeBattAirPressure=%d\n",exchangeBattAirPressure);
|
|
|
+ lifeSignal = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ printf("lifeSignal=%d\n",lifeSignal);
|
|
|
+ break;
|
|
|
+ case 0x18FF09D0:
|
|
|
+ vehicleStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ printf("vehicleStatus=%d\n",vehicleStatus);
|
|
|
+ currentGearPosition = (UINT8)(((*(UINT8*)(rawData +1)))&0x1F);
|
|
|
+ printf("currentGearPosition=%d\n",currentGearPosition);
|
|
|
+ break;
|
|
|
+ case 0x18FEF1D0:
|
|
|
+ parkingBreakStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ printf("parkingBreakStatus=%d\n",parkingBreakStatus);
|
|
|
+ breakingStatus = (UINT8)(((*(UINT8*)(rawData +3))>>4)&0x3);
|
|
|
+ printf("breakingStatus=%d\n",breakingStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FF55D0:
|
|
|
+ if(*rawData >= 0x1 && *rawData <= 3)
|
|
|
+ {
|
|
|
+ for(UINT8 i = 0; i < 7; i++)
|
|
|
+ {
|
|
|
+ if(i+((*rawData)-1)*7 <17)
|
|
|
{
|
|
|
- UDSNegtiveAnswer(0x05,i,0xFF);
|
|
|
+ VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
|
|
|
+ printf("VIN[%d]=%d\n",i+((*rawData)-1)*7,VIN[i+((*rawData)-1)*7]);
|
|
|
}
|
|
|
- break;
|
|
|
- default:
|
|
|
- UDSNegtiveAnswer(0x04,i,0xFF); //the service is not surpported
|
|
|
- break;
|
|
|
-
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- for(i=0; i<2; i++)
|
|
|
- {
|
|
|
- UDSService[i] = 0;
|
|
|
- UDSSubService[i] = 0;
|
|
|
+ break;
|
|
|
+ case 0x18FEAE17:
|
|
|
+ frontBreakingPressure = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ printf("frontBreakingPressure=%d\n",frontBreakingPressure);
|
|
|
+ backBreakingPressure = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ printf("backBreakingPressure=%d\n",backBreakingPressure);
|
|
|
+ frontBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ printf("frontBreakingPressureErrorStatus=%d\n",frontBreakingPressureErrorStatus);
|
|
|
+ backBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ printf("backBreakingPressureErrorStatus=%d\n",backBreakingPressureErrorStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FEC117:
|
|
|
+ ODB = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ printf("ODB=%d\n",ODB);
|
|
|
+ break;
|
|
|
+ case 0x18FF15A0:
|
|
|
+ dcdcErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ printf("dcdcErrorClass=%d\n",dcdcErrorClass);
|
|
|
+ dcdcWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ printf("dcdcWorkStatus=%d\n",dcdcWorkStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FF16A1:
|
|
|
+ mainElectricityErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ printf("mainElectricityErrorClass=%d\n",mainElectricityErrorClass);
|
|
|
+ pumpWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ printf("pumpWorkStatus=%d\n",pumpWorkStatus);
|
|
|
+ break;
|
|
|
+ case 0x18FF17A2:
|
|
|
+ elecAirCompressorErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ printf("elecAirCompressorErrorStatus=%d\n",elecAirCompressorErrorStatus);
|
|
|
+ elecAirCompressorWrokStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ printf("elecAirCompressorWrokStatus=%d\n",elecAirCompressorWrokStatus);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
- * UDS肯定响应
|
|
|
- * 输入:应答数据长度、应答的报文指数、响应代码
|
|
|
- * 输出:响应报文发送成功/失败
|
|
|
- * 处理:发送肯定响应报文
|
|
|
+ * 周期性报文诊断
|
|
|
+ * 输入:报文ID
|
|
|
+ * 输出:--
|
|
|
+ * 处理:周期性诊断CAN报文是否丢失
|
|
|
***********************************************************************************************************************/
|
|
|
-UINT8 UDSPositiveAnswer(UINT8 answerLen,UINT8 messageIndex,UINT32 posCode)
|
|
|
+void canRxDaignose(void)
|
|
|
{
|
|
|
- CAN_Msg_Type UDSAnswer;
|
|
|
- UINT8 ret;
|
|
|
- UDSAnswer.Id = 0x7A8;
|
|
|
- UDSAnswer.DLC = 8;
|
|
|
- UDSAnswer.Data[0] = answerLen;
|
|
|
- UDSAnswer.Data[1] = 0x78;
|
|
|
- UDSAnswer.Data[2] = UDSService[messageIndex];
|
|
|
- UDSAnswer.Data[3] = UDSSubService[messageIndex];
|
|
|
- if(answerLen == 4)
|
|
|
+
|
|
|
+ if(TimeCounter%1 == 0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = 0x00;
|
|
|
- UDSAnswer.Data[5] = 0x00;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
- }
|
|
|
- else if(answerLen==5)
|
|
|
- { UDSAnswer.Data[4] = posCode;
|
|
|
- UDSAnswer.Data[5] = 0x00;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+ canRxErrorCounter[0]++;
|
|
|
+ canRxErrorCounter[1]++;
|
|
|
+ canRxErrorCounter[110]++;
|
|
|
+ canRxErrorCounter[121]++;
|
|
|
+ canRxErrorCounter[122]++;
|
|
|
}
|
|
|
- else if(answerLen==6)
|
|
|
+ if(TimeCounter%2 == 0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = posCode>>8;
|
|
|
- UDSAnswer.Data[5] = posCode;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+
|
|
|
}
|
|
|
- else if(answerLen==7)
|
|
|
+ if(TimeCounter%5 == 0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = posCode>>16;
|
|
|
- UDSAnswer.Data[5] = posCode>>8;
|
|
|
- UDSAnswer.Data[6] = posCode;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+
|
|
|
}
|
|
|
- else if(answerLen==8)
|
|
|
+ if(TimeCounter%10 ==0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = posCode>>24;
|
|
|
- UDSAnswer.Data[5] = posCode>>16;
|
|
|
- UDSAnswer.Data[6] = posCode>>8;
|
|
|
- UDSAnswer.Data[7] = posCode;
|
|
|
- }
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
- return ret;
|
|
|
-}
|
|
|
|
|
|
-
|
|
|
-/***********************************************************************************************************************
|
|
|
- * UDS否定响应
|
|
|
- * 输入:应答数据长度、应答的报文指数、响应代码
|
|
|
- * 输出:响应报文发送成功/失败
|
|
|
- * 处理:发送否定响应报文
|
|
|
-***********************************************************************************************************************/
|
|
|
-UINT8 UDSNegtiveAnswer(UINT8 answerLen,UINT8 messageIndex, UINT32 negCode)
|
|
|
-{
|
|
|
- CAN_Msg_Type UDSAnswer;
|
|
|
- UINT8 ret;
|
|
|
- UDSAnswer.Id = 0x7A8;
|
|
|
- UDSAnswer.DLC = 8;
|
|
|
- UDSAnswer.Data[0] = answerLen;
|
|
|
- UDSAnswer.Data[1] = 0x7F;
|
|
|
- UDSAnswer.Data[2] = UDSService[messageIndex];
|
|
|
- UDSAnswer.Data[3] = UDSSubService[messageIndex];
|
|
|
- if(answerLen==4)
|
|
|
- {
|
|
|
- UDSAnswer.Data[3] = negCode;
|
|
|
- UDSAnswer.Data[4] = 0x00;
|
|
|
- UDSAnswer.Data[5] = 0x00;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
}
|
|
|
- if(answerLen==5)
|
|
|
- { UDSAnswer.Data[4] = negCode;
|
|
|
- UDSAnswer.Data[5] = 0x00;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+ if(TimeCounter %20 ==0)
|
|
|
+ {
|
|
|
+
|
|
|
}
|
|
|
- else if(answerLen==6)
|
|
|
+ if(TimeCounter%30 == 0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = negCode>>8;
|
|
|
- UDSAnswer.Data[5] = negCode;
|
|
|
- UDSAnswer.Data[6] = 0x00;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+
|
|
|
}
|
|
|
- else if(answerLen==7)
|
|
|
+ if(TimeCounter%50 ==0)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = negCode>>16;
|
|
|
- UDSAnswer.Data[5] = negCode>>8;
|
|
|
- UDSAnswer.Data[6] = negCode;
|
|
|
- UDSAnswer.Data[7] = 0x00;
|
|
|
+
|
|
|
}
|
|
|
- else if(answerLen==8)
|
|
|
+
|
|
|
+ for(int i=0;i<133;i++)
|
|
|
{
|
|
|
- UDSAnswer.Data[4] = negCode>>24;
|
|
|
- UDSAnswer.Data[5] = negCode>>16;
|
|
|
- UDSAnswer.Data[6] = negCode>>8;
|
|
|
- UDSAnswer.Data[7] = negCode;
|
|
|
+ if(canRxFlag[i] == 1)
|
|
|
+ {
|
|
|
+ canRxErrorCounter[i] = 0;
|
|
|
+ canRxFlag[i] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(canRxErrorCounter[i]<3)
|
|
|
+ {
|
|
|
+ canRxShortError[i] = 0;
|
|
|
+ canRxLongError[i] = 0;
|
|
|
+ }
|
|
|
+ else if(canRxErrorCounter[i]>=3 && canRxErrorCounter[i]<13)
|
|
|
+ {
|
|
|
+ canRxShortError[i] = 1;
|
|
|
+ canRxLongError[i] = 0;
|
|
|
+ }
|
|
|
+ else if(canRxErrorCounter[i]>=13)
|
|
|
+ {
|
|
|
+ canRxShortError[i] = 0;
|
|
|
+ canRxLongError[i] = 1;
|
|
|
+ canRxMsgSetInvalidValue(COMInTable[i]);
|
|
|
+ }
|
|
|
+ else if(canRxErrorCounter[i] == 0xFF)
|
|
|
+ {
|
|
|
+ canRxErrorCounter[i] = 0xFE;
|
|
|
+ }
|
|
|
}
|
|
|
- ret = HAL_Can_Transmit(UDSAnswer);
|
|
|
- return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
- * 在接收升级包前,做一些准备性工作
|
|
|
- * 输入:--
|
|
|
- * 输出:--
|
|
|
- * 处理:清空计数,并准备接收数据包
|
|
|
+ * 报文序号查找
|
|
|
+ * 输入:报文ID
|
|
|
+ * 输出:报文ID在COMInTable中的序号
|
|
|
+ * 处理:--
|
|
|
***********************************************************************************************************************/
|
|
|
-BOOL UDSAskforDownLoadData()
|
|
|
+UINT8 canCOMInTableIndexFind(UINT32 canID)
|
|
|
{
|
|
|
- updateDifferDataPackageCounter = 0;
|
|
|
- downloadReady = true;
|
|
|
- return TRUE;
|
|
|
+ UINT8 index = 0xFF;
|
|
|
+ for(int i=0;i<sizeof(COMInTable)/4;i++)
|
|
|
+ {
|
|
|
+ if(canID == COMInTable[i])
|
|
|
+ {
|
|
|
+ index = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return index;
|
|
|
}
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
- * 清除数据接收的flash区域
|
|
|
- * 输入:--
|
|
|
+ * 报文长时丢帧,数据置为无效值
|
|
|
+ * 输入:报文ID
|
|
|
* 输出:--
|
|
|
- * 处理:清除数据接收的flash区域
|
|
|
+ * 处理:报文长时丢帧后,对应的ID的信号值为无效值
|
|
|
***********************************************************************************************************************/
|
|
|
-BOOL UDSClearFotaDownloadRegion()
|
|
|
+void canRxMsgSetInvalidValue(UINT32 ID)
|
|
|
{
|
|
|
- UINT8 ret = FALSE;
|
|
|
- ret = BSP_QSPI_Erase_Safe(FLASH_FOTA_REGION_START, 0x46000); //512k-32k -200k = 280k -> 0x46000
|
|
|
-
|
|
|
- if(ret == QSPI_OK)
|
|
|
- {
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return FALSE;
|
|
|
+ UINT8 rawData[8] = {0xFF};
|
|
|
+ switch (ID)
|
|
|
+ {
|
|
|
+ case 0x18FF06F3:
|
|
|
+ bmsStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x0F);
|
|
|
+ bmsErrClass = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0xF);
|
|
|
+ chrgConctStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ highVolPwrDwnReq = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ chrgStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x7);
|
|
|
+ bmsErrNum = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ bmsLife = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF07F3:
|
|
|
+ maxChrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ maxDischrgCurrAllowed = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF30F3:
|
|
|
+ battSoc = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ packTotalVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ packTotalCurr = (UINT16)(((*(UINT16*)(rawData +3)))&0xFFFF);
|
|
|
+ insulationR = (UINT16)(((*(UINT16*)(rawData +5)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF51F3:
|
|
|
+ maxCellVol = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ minCellVol = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ maxCellTemp = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ minCellTemp = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ avgCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF52F3:
|
|
|
+ maxVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ maxVolCellCode = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ minVolSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ minVoCelllCode = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF53F3:
|
|
|
+ maxTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ maxTempCellCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ minTempSubsysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ minTempCellCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF54F3:
|
|
|
+ numOfChrgableSubsys = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ lengthOfChrgableSysCode = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ chrgableSysCode = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ chrgableSubsysCode = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ numOfCells = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ numOfCellTemp = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ numOfBattErr = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x1801FBF3:
|
|
|
+ battCellU[0] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[1] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[2] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[3] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1802FBF3:
|
|
|
+ battCellU[4] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[5] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[6] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[7] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1803FBF3:
|
|
|
+ battCellU[8] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[9] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[10] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[11] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1804FBF3:
|
|
|
+ battCellU[12] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[13] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[14] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[15] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1805FBF3:
|
|
|
+ battCellU[16] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[17] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[18] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[19] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1806FBF3:
|
|
|
+ battCellU[20] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[21] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[22] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[23] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1807FBF3:
|
|
|
+ battCellU[24] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[25] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[26] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[27] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1808FBF3:
|
|
|
+ battCellU[28] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[29] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[30] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[31] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1809FBF3:
|
|
|
+ battCellU[32] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[33] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[34] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[35] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180AFBF3:
|
|
|
+ battCellU[36] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[37] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[38] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[39] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180BFBF3:
|
|
|
+ battCellU[40] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[41] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[42] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[43] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180CFBF3:
|
|
|
+ battCellU[44] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[45] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[46] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[47] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180DFBF3:
|
|
|
+ battCellU[48] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[49] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[50] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[51] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180EFBF3:
|
|
|
+ battCellU[52] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[53] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[54] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[55] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x180FFBF3:
|
|
|
+ battCellU[56] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[57] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[58] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[59] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1810FBF3:
|
|
|
+ battCellU[60] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[61] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[62] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[63] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1811FBF3:
|
|
|
+ battCellU[64] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[65] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[66] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[67] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1812FBF3:
|
|
|
+ battCellU[68] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[69] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[70] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[71] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1813FBF3:
|
|
|
+ battCellU[72] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[73] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[74] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[75] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1814FBF3:
|
|
|
+ battCellU[76] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[77] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[78] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[79] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1815FBF3:
|
|
|
+ battCellU[80] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[81] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[82] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[83] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1816FBF3:
|
|
|
+ battCellU[84] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[85] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[86] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[87] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1817FBF3:
|
|
|
+ battCellU[88] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[89] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[90] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[91] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1818FBF3:
|
|
|
+ battCellU[92] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[93] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[94] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[95] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1819FBF3:
|
|
|
+ battCellU[96] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[97] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[98] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[99] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181AFBF3:
|
|
|
+ battCellU[100] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[101] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[102] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[103] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181BFBF3:
|
|
|
+ battCellU[104] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[105] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[106] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[107] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181CFBF3:
|
|
|
+ battCellU[108] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[109] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[110] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[111] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181DFBF3:
|
|
|
+ battCellU[112] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[113] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[114] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[115] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181EFBF3:
|
|
|
+ battCellU[116] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[117] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[118] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[119] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x181FFBF3:
|
|
|
+ battCellU[120] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[121] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[122] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[123] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1820FBF3:
|
|
|
+ battCellU[124] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[125] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[126] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[127] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1821FBF3:
|
|
|
+ battCellU[128] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[129] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[130] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[131] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1822FBF3:
|
|
|
+ battCellU[132] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[133] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[134] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[135] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1823FBF3:
|
|
|
+ battCellU[136] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[137] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[138] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[139] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1824FBF3:
|
|
|
+ battCellU[140] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[141] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[142] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[143] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1825FBF3:
|
|
|
+ battCellU[144] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[145] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[146] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[147] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1826FBF3:
|
|
|
+ battCellU[148] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[149] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[150] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[151] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1827FBF3:
|
|
|
+ battCellU[152] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[153] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[154] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[155] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1828FBF3:
|
|
|
+ battCellU[156] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[157] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[158] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[159] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1829FBF3:
|
|
|
+ battCellU[160] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[161] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[162] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[163] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182AFBF3:
|
|
|
+ battCellU[164] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[165] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[166] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[167] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182BFBF3:
|
|
|
+ battCellU[168] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[169] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[170] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[171] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182CFBF3:
|
|
|
+ battCellU[172] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[173] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[174] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[175] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182DFBF3:
|
|
|
+ battCellU[176] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[177] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[178] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[179] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182EFBF3:
|
|
|
+ battCellU[180] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[181] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[182] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[183] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x182FFBF3:
|
|
|
+ battCellU[184] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[185] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[186] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[187] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1830FBF3:
|
|
|
+ battCellU[188] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[189] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[190] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[191] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1831FBF3:
|
|
|
+ battCellU[192] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[193] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[194] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[195] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1832FBF3:
|
|
|
+ battCellU[196] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[197] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[198] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[199] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1833FBF3:
|
|
|
+ battCellU[200] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[201] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[202] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[203] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1834FBF3:
|
|
|
+ battCellU[204] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[205] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[206] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[207] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1835FBF3:
|
|
|
+ battCellU[208] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[209] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[210] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[211] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1836FBF3:
|
|
|
+ battCellU[212] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[213] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[214] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[215] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1837FBF3:
|
|
|
+ battCellU[216] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[217] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[218] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[219] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1838FBF3:
|
|
|
+ battCellU[220] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[221] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[222] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[223] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1839FBF3:
|
|
|
+ battCellU[224] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[225] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[226] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[227] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183AFBF3:
|
|
|
+ battCellU[228] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[229] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[230] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[231] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183BFBF3:
|
|
|
+ battCellU[232] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[233] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[234] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[235] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183CFBF3:
|
|
|
+ battCellU[236] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[237] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[238] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[239] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183DFBF3:
|
|
|
+ battCellU[240] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[241] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[242] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[243] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183EFBF3:
|
|
|
+ battCellU[244] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[245] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[246] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[247] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x183FFBF3:
|
|
|
+ battCellU[248] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[249] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[250] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[251] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1840FBF3:
|
|
|
+ battCellU[252] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[253] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[254] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[255] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1841FBF3:
|
|
|
+ battCellU[256] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[257] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[258] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[259] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1842FBF3:
|
|
|
+ battCellU[260] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[261] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[262] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[263] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1843FBF3:
|
|
|
+ battCellU[264] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[265] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[266] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[267] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1844FBF3:
|
|
|
+ battCellU[268] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[269] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[270] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[271] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1845FBF3:
|
|
|
+ battCellU[272] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[273] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[274] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[275] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1846FBF3:
|
|
|
+ battCellU[276] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[277] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[278] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[279] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1847FBF3:
|
|
|
+ battCellU[280] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[281] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[282] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[283] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1848FBF3:
|
|
|
+ battCellU[284] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[285] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[286] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[287] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1849FBF3:
|
|
|
+ battCellU[288] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[289] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[290] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[291] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184AFBF3:
|
|
|
+ battCellU[292] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[293] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[294] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[295] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184BFBF3:
|
|
|
+ battCellU[296] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[297] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[298] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[299] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184CFBF3:
|
|
|
+ battCellU[300] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[301] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[302] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[303] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184DFBF3:
|
|
|
+ battCellU[304] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[305] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[306] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[307] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184EFBF3:
|
|
|
+ battCellU[308] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[309] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[310] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[311] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x184FFBF3:
|
|
|
+ battCellU[312] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[313] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[314] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[315] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1850FBF3:
|
|
|
+ battCellU[316] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[317] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[318] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[319] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1851FBF3:
|
|
|
+ battCellU[320] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[321] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[322] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[323] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1852FBF3:
|
|
|
+ battCellU[324] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[325] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[326] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[327] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1853FBF3:
|
|
|
+ battCellU[328] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[329] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[330] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[331] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1854FBF3:
|
|
|
+ battCellU[332] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[333] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[334] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[335] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1855FBF3:
|
|
|
+ battCellU[336] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[337] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[338] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[339] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1856FBF3:
|
|
|
+ battCellU[340] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[341] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[342] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[343] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1857FBF3:
|
|
|
+ battCellU[344] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[345] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[346] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[347] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1858FBF3:
|
|
|
+ battCellU[348] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[349] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[350] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[351] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1859FBF3:
|
|
|
+ battCellU[352] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[353] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[354] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[355] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185AFBF3:
|
|
|
+ battCellU[356] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[357] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[358] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[359] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185BFBF3:
|
|
|
+ battCellU[360] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[361] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[362] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[363] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185CFBF3:
|
|
|
+ battCellU[364] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[365] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[366] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[367] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185DFBF3:
|
|
|
+ battCellU[368] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[369] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[370] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[371] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185EFBF3:
|
|
|
+ battCellU[372] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[373] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[374] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[375] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x185FFBF3:
|
|
|
+ battCellU[376] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[377] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[378] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[379] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x1860FBF3:
|
|
|
+ battCellU[380] = (UINT16)(((*(UINT16*)(rawData +0)))&0xFFFF);
|
|
|
+ battCellU[381] = (UINT16)(((*(UINT16*)(rawData +2)))&0xFFFF);
|
|
|
+ battCellU[382] = (UINT16)(((*(UINT16*)(rawData +4)))&0xFFFF);
|
|
|
+ battCellU[383] = (UINT16)(((*(UINT16*)(rawData +6)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18A0FBF3:
|
|
|
+ battCellTemp[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A1FBF3:
|
|
|
+ battCellTemp[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A2FBF3:
|
|
|
+ battCellTemp[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ battCellTemp[24] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[25] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[26] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[27] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[28] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[29] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[30] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[31] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A3FBF3:
|
|
|
+ battCellTemp[32] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[33] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[34] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[35] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[36] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[37] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[38] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[39] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A4FBF3:
|
|
|
+ battCellTemp[40] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[41] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[42] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[43] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[44] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[45] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[46] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[47] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A5FBF3:
|
|
|
+ battCellTemp[48] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[49] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[50] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[51] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[52] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[53] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[54] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[55] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18A6FBF3:
|
|
|
+ battCellTemp[56] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ battCellTemp[57] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ battCellTemp[58] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ battCellTemp[59] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ battCellTemp[60] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ battCellTemp[61] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ battCellTemp[62] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ battCellTemp[63] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF08F3:
|
|
|
+ mainPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ preRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ mainNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ thrRlyStatus = (UINT8)(((*(UINT8*)(rawData +0))>>6)&0x3);
|
|
|
+ ptc1RlyStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ airCondRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
|
|
|
+ dcChrg1PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>4)&0x3);
|
|
|
+ dcChrg1NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x3);
|
|
|
+ dcChrg2PosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2)))&0x3);
|
|
|
+ dcChrg2NegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>2)&0x3);
|
|
|
+ heatPosRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>4)&0x3);
|
|
|
+ heatNegRlyStatus = (UINT8)(((*(UINT8*)(rawData +2))>>6)&0x3);
|
|
|
+ coolRlyStatus = (UINT8)(((*(UINT8*)(rawData +3)))&0x3);
|
|
|
+ ptc2RlyStatus = (UINT8)(((*(UINT8*)(rawData +3))>>2)&0x3);
|
|
|
+ mainPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ preRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ mainNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ thrRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ ptc1RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ airCondRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ dcChrg1PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>4)&0x3);
|
|
|
+ dcChrg1NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +5))>>6)&0x3);
|
|
|
+ dcChrg2PosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ dcChrg2NegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ heatPosRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>4)&0x3);
|
|
|
+ heatNegRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +6))>>6)&0x3);
|
|
|
+ coolRlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7)))&0x3);
|
|
|
+ ptc2RlyErrStatus = (UINT8)(((*(UINT8*)(rawData +7))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF60F3:
|
|
|
+ accChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accDischrgAh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF61F3:
|
|
|
+ accChrgkWh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accDischrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF62F3:
|
|
|
+ battSOH = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF63F3:
|
|
|
+ SN[0] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[1] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[2] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[3] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[4] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF64F3:
|
|
|
+ SN[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[9] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[10] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[11] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[12] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF65F3:
|
|
|
+ SN[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ SN[17] = (UINT8)(((*(UINT8*)(rawData +1)))&0xFF);
|
|
|
+ SN[18] = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ SN[19] = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ SN[20] = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ SN[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ SN[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ SN[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF66F3:
|
|
|
+ accRecvryChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accRecvryChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF67F3:
|
|
|
+ accStationChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accStationChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF68F3:
|
|
|
+ accGunChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ accGunChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF69F3:
|
|
|
+ sglChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ sglChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF10D0:
|
|
|
+ bmsHVOn = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF20EF:
|
|
|
+ vcuDCVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF13A3:
|
|
|
+ acRelayStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ ptcRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ mainRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>3)&0x3);
|
|
|
+ preRelayStatus = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0x3);
|
|
|
+ ptc2RelayStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
|
|
|
+ acRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4)))&0x3);
|
|
|
+ ptcRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>2)&0x3);
|
|
|
+ mainRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>4)&0x3);
|
|
|
+ preRelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +4))>>6)&0x3);
|
|
|
+ hvLockErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x3);
|
|
|
+ ptc2RelayErrorStatus = (UINT8)(((*(UINT8*)(rawData +5))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF1154:
|
|
|
+ ebcStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
|
|
|
+ ebcAskHVOn = (UINT8)(((*(UINT8*)(rawData +1)))&0x1);
|
|
|
+ ebcAskHVOff = (UINT8)(((*(UINT8*)(rawData +1))>>1)&0x1);
|
|
|
+ retainLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>3)&0x1);
|
|
|
+ dischargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>5)&0x1);
|
|
|
+ chargeLockSignal = (UINT8)(((*(UINT8*)(rawData +1))>>6)&0x1);
|
|
|
+ errorClass = (UINT8)(((*(UINT16*)(rawData +2))>>2)&0xFF);
|
|
|
+ errorCode1 = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ errorCode2 = (UINT8)(((*(UINT8*)(rawData +4)))&0xFF);
|
|
|
+ chargeFlag = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
|
|
|
+ exchangeBattAirPressure = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
|
|
|
+ lifeSignal = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF09D0:
|
|
|
+ vehicleStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
|
|
|
+ currentGearPosition = (UINT8)(((*(UINT8*)(rawData +1)))&0x1F);
|
|
|
+ break;
|
|
|
+ case 0x18FEF1D0:
|
|
|
+ parkingBreakStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
|
|
|
+ breakingStatus = (UINT8)(((*(UINT8*)(rawData +3))>>4)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF55D0:
|
|
|
+ if(*rawData >= 0x1 && *rawData <= 3)
|
|
|
+ {
|
|
|
+ for(UINT8 i = 0; i < 7; i++)
|
|
|
+ {
|
|
|
+ if(i+((*rawData)-1)*7 <17)
|
|
|
+ {
|
|
|
+ VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0x18FEAE17:
|
|
|
+ frontBreakingPressure = (UINT8)(((*(UINT8*)(rawData +2)))&0xFF);
|
|
|
+ backBreakingPressure = (UINT8)(((*(UINT8*)(rawData +3)))&0xFF);
|
|
|
+ frontBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6)))&0x3);
|
|
|
+ backBreakingPressureErrorStatus = (UINT8)(((*(UINT8*)(rawData +6))>>2)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FEC117:
|
|
|
+ ODB = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
|
|
|
+ break;
|
|
|
+ case 0x18FF15A0:
|
|
|
+ dcdcErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ dcdcWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF16A1:
|
|
|
+ mainElectricityErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ pumpWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ case 0x18FF17A2:
|
|
|
+ elecAirCompressorErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
|
|
|
+ elecAirCompressorWrokStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|