Browse Source

金茂集成CAN测试-9-8

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
d045fbe290
6 changed files with 1464 additions and 2185 deletions
  1. 1 1
      inc/AppConfig.h
  2. 3 0
      inc/AppFunc.h
  3. 4 0
      inc/AppSignal.h
  4. 1421 2172
      src/AppFunc.c
  5. 5 0
      src/AppSignal.c
  6. 30 12
      src/hal_module_adapter.c

+ 1 - 1
inc/AppConfig.h

@@ -12,7 +12,7 @@
 #define BMS_INFO                    (1)                 //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺6455
 #define DATA_MODULE_TYPE            (1)                 //1表示NB模块,2表示4G cat1
 #define EOLSTATE                    (1)                 //1表示下线检测跳过,使用默认值,0表示使用下线检测
-#define DEFAULT_SN                  "RLTEST00000000002" //默认上传的SN编码
+#define DEFAULT_SN                  "RLTEST00000000001" //默认上传的SN编码
 #define	APPSWVERSION		        0x03000001          //数据模块软件版本号
 
 #define TCP_ADD                     "iotp.fast-fun.cn"  //数据上传的地址

+ 3 - 0
inc/AppFunc.h

@@ -41,6 +41,9 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId);
 static UINT8 bcc_chk_fota(UINT8* data, UINT8 length);
 static UINT8 Fota_crc_chk(UINT8* data,UINT8 length);
 void DecodeFunction(UINT32 ID,UINT8* rawData);
+void canRxDiagnose(void);
 UINT8 canCOMInTableIndexFind(UINT32 canID);
+void canRxMsgSetInvalidValue(UINT32 ID);
+void canTxTest(void);
 
 

+ 4 - 0
inc/AppSignal.h

@@ -14,6 +14,10 @@
 #include "bsp_custom.h"
 //declear the bool vars
 extern volatile BOOL NB_Fota_update_flag;
+extern BOOL canSNMsgLostFlag;
+extern BOOL canSNMsgRxCmpltFlag;
+extern BOOL canVINMsgRxCmpltFlag;
+
 
 //extern declear the UINT8 vars
 

+ 1421 - 2172
src/AppFunc.c

@@ -974,27 +974,16 @@ static UINT8 Fota_crc_chk(UINT8* data,UINT8 length)
 /***********************************************************************************************************************
  * 周期性报文拆�
  * 输入:报文ID�can报文数�(指针)
- * 输出�--
- * 处�:根���的ID,将数�进�拆包,并放�到相应的���
+ * 输出�-
+ * 处�:根���的ID,将数�进行拆包,并放置到相应的���
 ***********************************************************************************************************************/
 void DecodeFunction(UINT32 ID,UINT8* rawData)
 {
-	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");
-		
+	static UINT8 snAndVinMsgFlag = 0;
 	switch (ID)
 	{
-	
 		case	0x18FF06F3:
-			bmsStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x0F);
+			bmsStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0xF);
 			bmsErrClass = (UINT8)(((*(UINT8*)(rawData +0))>>4)&0xF);
 			chrgConctStatus = (UINT8)(((*(UINT8*)(rawData +1)))&0x3);
 			highVolPwrDwnReq = (UINT8)(((*(UINT8*)(rawData +1))>>2)&0x3);
@@ -1744,6 +1733,7 @@ void DecodeFunction(UINT32 ID,UINT8* rawData)
 			SN[5] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
 			SN[6] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
 			SN[7] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
+			snAndVinMsgFlag = snAndVinMsgFlag | (1<<0);
 			break;
 		case	0x18FF64F3:
 			SN[8] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
@@ -1754,6 +1744,7 @@ void DecodeFunction(UINT32 ID,UINT8* rawData)
 			SN[13] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
 			SN[14] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
 			SN[15] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
+			snAndVinMsgFlag = snAndVinMsgFlag | (1<<1);
 			break;
 		case	0x18FF65F3:
 			SN[16] = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
@@ -1764,6 +1755,7 @@ void DecodeFunction(UINT32 ID,UINT8* rawData)
 			SN[21] = (UINT8)(((*(UINT8*)(rawData +5)))&0xFF);
 			SN[22] = (UINT8)(((*(UINT8*)(rawData +6)))&0xFF);
 			SN[23] = (UINT8)(((*(UINT8*)(rawData +7)))&0xFF);
+			snAndVinMsgFlag = snAndVinMsgFlag | (1<<2);
 			break;
 		case	0x18FF66F3:
 			accRecvryChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
@@ -1827,7 +1819,7 @@ void DecodeFunction(UINT32 ID,UINT8* rawData)
 			{
 				for(UINT8 i = 0; i < 7; i++)
 				{
-					if(i+((*rawData)-1)*7 <17)
+					if(i+((*rawData)-1)*7 <sizeof(VIN))
 					{
 						VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
 					}
@@ -1857,2429 +1849,1686 @@ void DecodeFunction(UINT32 ID,UINT8* rawData)
 			break;
 		default:
 			break;
-		/*
+	}
+	if(snAndVinMsgFlag&0x03 == 3)
+		canSNMsgRxCmpltFlag = true;
+	if((snAndVinMsgFlag>>4)&0x07 == 7)
+		canVINMsgRxCmpltFlag = true;
+}
+
+
+/***********************************************************************************************************************
+ * 周期性报文诊�
+ * 输入:报文ID
+ * 输出�-
+ * 处�:周期性诊断CAN报文是�丢失
+***********************************************************************************************************************/
+void canRxDiagnose(void)
+{
+	
+	if(TimeCounter%1 == 0)		//period <=100ms
+	{
+		canRxErrorCounter[0]++;		//can msg 0x18FF06F3
+		if(canRxErrorCounter[0]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[0]);
+		canRxErrorCounter[1]++;		//can msg 0x18FF07F3
+		if(canRxErrorCounter[1]>=13)
+			printf("can msg 0x%x lost,cycle time50ms\n",COMInTable[1]);
+		canRxErrorCounter[110]++;		//can msg 0x18FF08F3
+		if(canRxErrorCounter[110]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[110]);
+		canRxErrorCounter[121]++;		//can msg 0x18FF10D0
+		if(canRxErrorCounter[121]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[121]);
+		canRxErrorCounter[122]++;		//can msg 0x18FF20EF
+		if(canRxErrorCounter[122]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[122]);
+		canRxErrorCounter[123]++;		//can msg 0x18FF13A3
+		if(canRxErrorCounter[123]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[123]);
+		canRxErrorCounter[124]++;		//can msg 0x18FF1154
+		if(canRxErrorCounter[124]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[124]);
+		canRxErrorCounter[125]++;		//can msg 0x18FF09D0
+		if(canRxErrorCounter[125]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[125]);
+		canRxErrorCounter[126]++;		//can msg 0x18FEF1D0
+		if(canRxErrorCounter[126]>=13)
+			printf("can msg 0x%x lost,cycle time100ms\n",COMInTable[126]);
+	}
+	if(TimeCounter%2 == 0)		//period ==200ms
+	{
+		canRxErrorCounter[128]++;		//can msg 0x18FEAE17
+		if(canRxErrorCounter[128]>=13)
+			printf("can msg 0x%x lost,cycle time200ms\n",COMInTable[128]);
+	}
+	if(TimeCounter%5 == 0)		//period ==500ms
+	{
+		canRxErrorCounter[2]++;		//can msg 0x18FF30F3
+		if(canRxErrorCounter[2]>=13)
+			printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[2]);
+		canRxErrorCounter[130]++;		//can msg 0x18FF15A0
+		if(canRxErrorCounter[130]>=13)
+			printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[130]);
+		canRxErrorCounter[131]++;		//can msg 0x18FF16A1
+		if(canRxErrorCounter[131]>=13)
+			printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[131]);
+		canRxErrorCounter[132]++;		//can msg 0x18FF17A2
+		if(canRxErrorCounter[132]>=13)
+			printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[132]);
+	}
+	if(TimeCounter%10 == 0)		//period ==1000ms
+	{
+		canRxErrorCounter[3]++;		//can msg 0x18FF51F3
+		if(canRxErrorCounter[3]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[3]);
+		canRxErrorCounter[4]++;		//can msg 0x18FF52F3
+		if(canRxErrorCounter[4]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[4]);
+		canRxErrorCounter[5]++;		//can msg 0x18FF53F3
+		if(canRxErrorCounter[5]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[5]);
+		canRxErrorCounter[6]++;		//can msg 0x18FF54F3
+		if(canRxErrorCounter[6]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[6]);
+		canRxErrorCounter[7]++;		//can msg 0x1801FBF3
+		if(canRxErrorCounter[7]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[7]);
+		canRxErrorCounter[8]++;		//can msg 0x1802FBF3
+		if(canRxErrorCounter[8]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[8]);
+		canRxErrorCounter[9]++;		//can msg 0x1803FBF3
+		if(canRxErrorCounter[9]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[9]);
+		canRxErrorCounter[10]++;		//can msg 0x1804FBF3
+		if(canRxErrorCounter[10]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[10]);
+		canRxErrorCounter[11]++;		//can msg 0x1805FBF3
+		if(canRxErrorCounter[11]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[11]);
+		canRxErrorCounter[12]++;		//can msg 0x1806FBF3
+		if(canRxErrorCounter[12]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[12]);
+		canRxErrorCounter[13]++;		//can msg 0x1807FBF3
+		if(canRxErrorCounter[13]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[13]);
+		canRxErrorCounter[14]++;		//can msg 0x1808FBF3
+		if(canRxErrorCounter[14]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[14]);
+		canRxErrorCounter[15]++;		//can msg 0x1809FBF3
+		if(canRxErrorCounter[15]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[15]);
+		canRxErrorCounter[16]++;		//can msg 0x180AFBF3
+		if(canRxErrorCounter[16]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[16]);
+		canRxErrorCounter[17]++;		//can msg 0x180BFBF3
+		if(canRxErrorCounter[17]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[17]);
+		canRxErrorCounter[18]++;		//can msg 0x180CFBF3
+		if(canRxErrorCounter[18]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[18]);
+		canRxErrorCounter[19]++;		//can msg 0x180DFBF3
+		if(canRxErrorCounter[19]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[19]);
+		canRxErrorCounter[20]++;		//can msg 0x180EFBF3
+		if(canRxErrorCounter[20]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[20]);
+		canRxErrorCounter[21]++;		//can msg 0x180FFBF3
+		if(canRxErrorCounter[21]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[21]);
+		canRxErrorCounter[22]++;		//can msg 0x1810FBF3
+		if(canRxErrorCounter[22]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[22]);
+		canRxErrorCounter[23]++;		//can msg 0x1811FBF3
+		if(canRxErrorCounter[23]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[23]);
+		canRxErrorCounter[24]++;		//can msg 0x1812FBF3
+		if(canRxErrorCounter[24]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[24]);
+		canRxErrorCounter[25]++;		//can msg 0x1813FBF3
+		if(canRxErrorCounter[25]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[25]);
+		canRxErrorCounter[26]++;		//can msg 0x1814FBF3
+		if(canRxErrorCounter[26]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[26]);
+		canRxErrorCounter[27]++;		//can msg 0x1815FBF3
+		if(canRxErrorCounter[27]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[27]);
+		canRxErrorCounter[28]++;		//can msg 0x1816FBF3
+		if(canRxErrorCounter[28]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[28]);
+		canRxErrorCounter[29]++;		//can msg 0x1817FBF3
+		if(canRxErrorCounter[29]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[29]);
+		canRxErrorCounter[30]++;		//can msg 0x1818FBF3
+		if(canRxErrorCounter[30]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[30]);
+		canRxErrorCounter[31]++;		//can msg 0x1819FBF3
+		if(canRxErrorCounter[31]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[31]);
+		canRxErrorCounter[32]++;		//can msg 0x181AFBF3
+		if(canRxErrorCounter[32]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[32]);
+		canRxErrorCounter[33]++;		//can msg 0x181BFBF3
+		if(canRxErrorCounter[33]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[33]);
+		canRxErrorCounter[34]++;		//can msg 0x181CFBF3
+		if(canRxErrorCounter[34]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[34]);
+		canRxErrorCounter[35]++;		//can msg 0x181DFBF3
+		if(canRxErrorCounter[35]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[35]);
+		canRxErrorCounter[36]++;		//can msg 0x181EFBF3
+		if(canRxErrorCounter[36]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[36]);
+		canRxErrorCounter[37]++;		//can msg 0x181FFBF3
+		if(canRxErrorCounter[37]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[37]);
+		canRxErrorCounter[38]++;		//can msg 0x1820FBF3
+		if(canRxErrorCounter[38]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[38]);
+		canRxErrorCounter[39]++;		//can msg 0x1821FBF3
+		if(canRxErrorCounter[39]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[39]);
+		canRxErrorCounter[40]++;		//can msg 0x1822FBF3
+		if(canRxErrorCounter[40]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[40]);
+		canRxErrorCounter[41]++;		//can msg 0x1823FBF3
+		if(canRxErrorCounter[41]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[41]);
+		canRxErrorCounter[42]++;		//can msg 0x1824FBF3
+		if(canRxErrorCounter[42]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[42]);
+		canRxErrorCounter[43]++;		//can msg 0x1825FBF3
+		if(canRxErrorCounter[43]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[43]);
+		canRxErrorCounter[44]++;		//can msg 0x1826FBF3
+		if(canRxErrorCounter[44]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[44]);
+		canRxErrorCounter[45]++;		//can msg 0x1827FBF3
+		if(canRxErrorCounter[45]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[45]);
+		canRxErrorCounter[46]++;		//can msg 0x1828FBF3
+		if(canRxErrorCounter[46]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[46]);
+		canRxErrorCounter[47]++;		//can msg 0x1829FBF3
+		if(canRxErrorCounter[47]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[47]);
+		canRxErrorCounter[48]++;		//can msg 0x182AFBF3
+		if(canRxErrorCounter[48]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[48]);
+		canRxErrorCounter[49]++;		//can msg 0x182BFBF3
+		if(canRxErrorCounter[49]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[49]);
+		canRxErrorCounter[50]++;		//can msg 0x182CFBF3
+		if(canRxErrorCounter[50]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[50]);
+		canRxErrorCounter[51]++;		//can msg 0x182DFBF3
+		if(canRxErrorCounter[51]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[51]);
+		canRxErrorCounter[52]++;		//can msg 0x182EFBF3
+		if(canRxErrorCounter[52]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[52]);
+		canRxErrorCounter[53]++;		//can msg 0x182FFBF3
+		if(canRxErrorCounter[53]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[53]);
+		canRxErrorCounter[54]++;		//can msg 0x1830FBF3
+		if(canRxErrorCounter[54]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[54]);
+		canRxErrorCounter[55]++;		//can msg 0x1831FBF3
+		if(canRxErrorCounter[55]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[55]);
+		canRxErrorCounter[56]++;		//can msg 0x1832FBF3
+		if(canRxErrorCounter[56]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[56]);
+		canRxErrorCounter[57]++;		//can msg 0x1833FBF3
+		if(canRxErrorCounter[57]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[57]);
+		canRxErrorCounter[58]++;		//can msg 0x1834FBF3
+		if(canRxErrorCounter[58]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[58]);
+		canRxErrorCounter[59]++;		//can msg 0x1835FBF3
+		if(canRxErrorCounter[59]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[59]);
+		canRxErrorCounter[60]++;		//can msg 0x1836FBF3
+		if(canRxErrorCounter[60]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[60]);
+		canRxErrorCounter[61]++;		//can msg 0x1837FBF3
+		if(canRxErrorCounter[61]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[61]);
+		canRxErrorCounter[62]++;		//can msg 0x1838FBF3
+		if(canRxErrorCounter[62]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[62]);
+		canRxErrorCounter[63]++;		//can msg 0x1839FBF3
+		if(canRxErrorCounter[63]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[63]);
+		canRxErrorCounter[64]++;		//can msg 0x183AFBF3
+		if(canRxErrorCounter[64]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[64]);
+		canRxErrorCounter[65]++;		//can msg 0x183BFBF3
+		if(canRxErrorCounter[65]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[65]);
+		canRxErrorCounter[66]++;		//can msg 0x183CFBF3
+		if(canRxErrorCounter[66]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[66]);
+		canRxErrorCounter[67]++;		//can msg 0x183DFBF3
+		if(canRxErrorCounter[67]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[67]);
+		canRxErrorCounter[68]++;		//can msg 0x183EFBF3
+		if(canRxErrorCounter[68]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[68]);
+		canRxErrorCounter[69]++;		//can msg 0x183FFBF3
+		if(canRxErrorCounter[69]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[69]);
+		canRxErrorCounter[70]++;		//can msg 0x1840FBF3
+		if(canRxErrorCounter[70]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[70]);
+		canRxErrorCounter[71]++;		//can msg 0x1841FBF3
+		if(canRxErrorCounter[71]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[71]);
+		canRxErrorCounter[72]++;		//can msg 0x1842FBF3
+		if(canRxErrorCounter[72]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[72]);
+		canRxErrorCounter[73]++;		//can msg 0x1843FBF3
+		if(canRxErrorCounter[73]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[73]);
+		canRxErrorCounter[74]++;		//can msg 0x1844FBF3
+		if(canRxErrorCounter[74]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[74]);
+		canRxErrorCounter[75]++;		//can msg 0x1845FBF3
+		if(canRxErrorCounter[75]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[75]);
+		canRxErrorCounter[76]++;		//can msg 0x1846FBF3
+		if(canRxErrorCounter[76]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[76]);
+		canRxErrorCounter[77]++;		//can msg 0x1847FBF3
+		if(canRxErrorCounter[77]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[77]);
+		canRxErrorCounter[78]++;		//can msg 0x1848FBF3
+		if(canRxErrorCounter[78]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[78]);
+		canRxErrorCounter[79]++;		//can msg 0x1849FBF3
+		if(canRxErrorCounter[79]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[79]);
+		canRxErrorCounter[80]++;		//can msg 0x184AFBF3
+		if(canRxErrorCounter[80]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[80]);
+		canRxErrorCounter[81]++;		//can msg 0x184BFBF3
+		if(canRxErrorCounter[81]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[81]);
+		canRxErrorCounter[82]++;		//can msg 0x184CFBF3
+		if(canRxErrorCounter[82]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[82]);
+		canRxErrorCounter[83]++;		//can msg 0x184DFBF3
+		if(canRxErrorCounter[83]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[83]);
+		canRxErrorCounter[84]++;		//can msg 0x184EFBF3
+		if(canRxErrorCounter[84]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[84]);
+		canRxErrorCounter[85]++;		//can msg 0x184FFBF3
+		if(canRxErrorCounter[85]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[85]);
+		canRxErrorCounter[86]++;		//can msg 0x1850FBF3
+		if(canRxErrorCounter[86]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[86]);
+		canRxErrorCounter[87]++;		//can msg 0x1851FBF3
+		if(canRxErrorCounter[87]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[87]);
+		canRxErrorCounter[88]++;		//can msg 0x1852FBF3
+		if(canRxErrorCounter[88]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[88]);
+		canRxErrorCounter[89]++;		//can msg 0x1853FBF3
+		if(canRxErrorCounter[89]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[89]);
+		canRxErrorCounter[90]++;		//can msg 0x1854FBF3
+		if(canRxErrorCounter[90]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[90]);
+		canRxErrorCounter[91]++;		//can msg 0x1855FBF3
+		if(canRxErrorCounter[91]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[91]);
+		canRxErrorCounter[92]++;		//can msg 0x1856FBF3
+		if(canRxErrorCounter[92]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[92]);
+		canRxErrorCounter[93]++;		//can msg 0x1857FBF3
+		if(canRxErrorCounter[93]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[93]);
+		canRxErrorCounter[94]++;		//can msg 0x1858FBF3
+		if(canRxErrorCounter[94]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[94]);
+		canRxErrorCounter[95]++;		//can msg 0x1859FBF3
+		if(canRxErrorCounter[95]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[95]);
+		canRxErrorCounter[96]++;		//can msg 0x185AFBF3
+		if(canRxErrorCounter[96]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[96]);
+		canRxErrorCounter[97]++;		//can msg 0x185BFBF3
+		if(canRxErrorCounter[97]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[97]);
+		canRxErrorCounter[98]++;		//can msg 0x185CFBF3
+		if(canRxErrorCounter[98]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[98]);
+		canRxErrorCounter[99]++;		//can msg 0x185DFBF3
+		if(canRxErrorCounter[99]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[99]);
+		canRxErrorCounter[100]++;		//can msg 0x185EFBF3
+		if(canRxErrorCounter[100]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[100]);
+		canRxErrorCounter[101]++;		//can msg 0x185FFBF3
+		if(canRxErrorCounter[101]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[101]);
+		canRxErrorCounter[102]++;		//can msg 0x1860FBF3
+		if(canRxErrorCounter[102]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[102]);
+		canRxErrorCounter[103]++;		//can msg 0x18A0FBF3
+		if(canRxErrorCounter[103]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[103]);
+		canRxErrorCounter[104]++;		//can msg 0x18A1FBF3
+		if(canRxErrorCounter[104]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[104]);
+		canRxErrorCounter[105]++;		//can msg 0x18A2FBF3
+		if(canRxErrorCounter[105]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[105]);
+		canRxErrorCounter[106]++;		//can msg 0x18A3FBF3
+		if(canRxErrorCounter[106]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[106]);
+		canRxErrorCounter[107]++;		//can msg 0x18A4FBF3
+		if(canRxErrorCounter[107]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[107]);
+		canRxErrorCounter[108]++;		//can msg 0x18A5FBF3
+		if(canRxErrorCounter[108]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[108]);
+		canRxErrorCounter[109]++;		//can msg 0x18A6FBF3
+		if(canRxErrorCounter[109]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[109]);
+		canRxErrorCounter[111]++;		//can msg 0x18FF60F3
+		if(canRxErrorCounter[111]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[111]);
+		canRxErrorCounter[112]++;		//can msg 0x18FF61F3
+		if(canRxErrorCounter[112]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[112]);
+		canRxErrorCounter[113]++;		//can msg 0x18FF62F3
+		if(canRxErrorCounter[113]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[113]);
+		canRxErrorCounter[117]++;		//can msg 0x18FF66F3
+		if(canRxErrorCounter[117]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[117]);
+		canRxErrorCounter[118]++;		//can msg 0x18FF67F3
+		if(canRxErrorCounter[118]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[118]);
+		canRxErrorCounter[119]++;		//can msg 0x18FF68F3
+		if(canRxErrorCounter[119]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[119]);
+		canRxErrorCounter[120]++;		//can msg 0x18FF69F3
+		if(canRxErrorCounter[120]>=13)
+			printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[120]);
+	}
+	if(TimeCounter%20 == 0)		//period ==2000ms
+	{
+		canRxErrorCounter[127]++;		//can msg 0x18FF55D0
+		if(canRxErrorCounter[127]>=13)
+			printf("can msg 0x%x lost,cycle time2000ms\n",COMInTable[127]);
+	}
+	if(TimeCounter%30 == 0)		//period ==3000ms
+	{
+		canRxErrorCounter[114]++;		//can msg 0x18FF63F3
+		if(canRxErrorCounter[114]>=13)
+			printf("can msg 0x%x lost,cycle time3000ms\n",COMInTable[114]);
+		canRxErrorCounter[115]++;		//can msg 0x18FF64F3
+		if(canRxErrorCounter[115]>=13)
+			printf("can msg 0x%x lost,cycle time3000ms\n",COMInTable[115]);
+		canRxErrorCounter[116]++;		//can msg 0x18FF65F3
+		if(canRxErrorCounter[116]>=13)
+			printf("can msg 0x%x lost,cycle time3000ms\n",COMInTable[116]);
+	}
+	if(TimeCounter%50 == 0)		//period ==5000ms
+	{
+		canRxErrorCounter[129]++;		//can msg 0x18FEC117
+		if(canRxErrorCounter[129]>=13)
+			printf("can msg 0x%x lost,cycle time5000ms\n",COMInTable[129]);
+	}
+
+	for(int i=0;i<sizeof(COMInTable)/4;i++)
+	{
+		if(canRxFlag[i] == 1)  //received msg, and clear the error conter
+		{
+			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;
+		}		
+	}
+	printf("\n\n");
+	if(canRxLongError[canCOMInTableIndexFind(0x18FF63F3)] | canRxLongError[canCOMInTableIndexFind(0x18FF64F3)])
+	{
+		canSNMsgLostFlag = true;
+	}
+	else
+	{
+		canSNMsgLostFlag = false;
+	}
+}
+
+
+
+
+/***********************************************************************************************************************
+ * 周期性报文诊�
+ * 输入:报文ID
+ * 输出�-
+ * 处�:周期性诊断CAN报文是�丢失
+***********************************************************************************************************************/
+void canTxTest(void)
+{
+	CAN_Msg_Type CanMsg;
+	UINT32 timer = TimeCounter;
+	CanMsg.DLC = 0x08;
+	for(int i=0 ;i<8;i++)
+	{
+		CanMsg.Data[i] = 0x30+i;
+	}
+	printf("TimeCounter = %d\n",TimeCounter);
+	if(timer%1 == 0)		//period <=100ms
+	{
+		printf("send can 100ms msg\n");
+		CanMsg.Id = 0x18FF06F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF07F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF08F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF10D0;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF20EF;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF13A3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF1154;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF09D0;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FEF1D0;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%2 == 0)		//period ==200ms
+	{
+		printf("send can 200ms msg\n");
+		CanMsg.Id = 0x18FEAE17;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%5 == 0)		//period ==500ms
+	{
+		printf("send can 500ms msg\n");
+		CanMsg.Id = 0x18FF30F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF15A0;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF16A1;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF17A2;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%10 == 0)		//period ==1000ms
+	{
+		printf("send can 1000ms msg\n");
+		CanMsg.Id = 0x18FF51F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF52F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF53F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF54F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1801FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1802FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1803FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1804FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1805FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1806FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1807FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1808FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1809FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x180FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1810FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1811FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1812FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1813FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1814FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1815FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1816FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1817FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1818FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1819FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x181FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1820FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1821FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1822FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1823FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1824FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1825FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1826FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1827FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1828FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1829FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x182FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1830FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1831FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1832FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1833FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1834FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1835FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1836FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1837FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1838FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1839FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x183FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1840FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1841FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1842FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1843FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1844FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1845FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1846FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1847FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1848FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1849FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x184FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1850FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1851FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1852FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1853FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1854FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1855FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1856FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1857FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1858FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1859FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185AFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185BFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185CFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185DFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185EFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x185FFBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x1860FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A0FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A1FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A2FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A3FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A4FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A5FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18A6FBF3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF60F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF61F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF62F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF66F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF67F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF68F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF69F3;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%20 == 0)		//period ==2000ms
+	{
+		printf("send can 2000ms msg\n");
+		CanMsg.Id = 0x18FF55D0;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%30 == 0)		//period ==3000ms
+	{
+		printf("send can 3000ms msg\n");
+		CanMsg.Id = 0x18FF63F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF64F3;
+		HAL_Can_Transmit(CanMsg);
+		CanMsg.Id = 0x18FF65F3;
+		HAL_Can_Transmit(CanMsg);
+	}
+	if(timer%50 == 0)		//period ==5000ms
+	{
+		printf("send can 5000ms msg\n");
+		CanMsg.Id = 0x18FEC117;
+		HAL_Can_Transmit(CanMsg);
+	}
+}
+
+
+/***********************************************************************************************************************
+ * 报文��查找
+ * 输入:报文ID
+ * 输出:报文ID在COMInTable中的��
+ * 处��-
+***********************************************************************************************************************/
+UINT8 canCOMInTableIndexFind(UINT32 canID)
+{
+	UINT8 index = 0xFF;
+	for(int i=0;i<sizeof(COMInTable)/4;i++)
+	{
+		if(canID == COMInTable[i])
+		{
+			index = i;
+			break;
+		}
+	}
+	return index;
+}
+
+
+/***********************************************************************************************************************
+ * 报文长时丢帧,数�置为无效�
+ * 输入:报文ID
+ * 输出�-
+ * 处�:报文长时丢帧�,对应的ID的信�值为无效�
+***********************************************************************************************************************/
+void canRxMsgSetInvalidValue(UINT32 ID)
+{
+	switch (ID)
+	{
 		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);
+			bmsStatus =0xFF;
+			bmsErrClass =0xFF;
+			chrgConctStatus =0xFF;
+			highVolPwrDwnReq =0xFF;
+			chrgStatus =0xFF;
+			bmsErrNum =0xFF;
+			bmsLife =0xFF;
 			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);
+			maxChrgCurrAllowed =0xFFFF;
+			maxDischrgCurrAllowed =0xFFFF;
 			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);
+			battSoc =0xFF;
+			packTotalVol =0xFFFF;
+			packTotalCurr =0xFFFF;
+			insulationR =0xFFFF;
 			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);
+			maxCellVol =0xFFFF;
+			minCellVol =0xFFFF;
+			maxCellTemp =0xFF;
+			minCellTemp =0xFF;
+			avgCellTemp =0xFF;
 			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);
+			maxVolSubsysCode =0xFF;
+			maxVolCellCode =0xFFFF;
+			minVolSubsysCode =0xFF;
+			minVoCelllCode =0xFFFF;
 			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);
+			maxTempSubsysCode =0xFF;
+			maxTempCellCode =0xFF;
+			minTempSubsysCode =0xFF;
+			minTempCellCode =0xFF;
 			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);
+			numOfChrgableSubsys =0xFF;
+			lengthOfChrgableSysCode =0xFF;
+			chrgableSysCode =0xFF;
+			chrgableSubsysCode =0xFF;
+			numOfCells =0xFFFF;
+			numOfCellTemp =0xFF;
+			numOfBattErr =0xFF;
 			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]);
+			battCellU[0] =0xFFFF;
+			battCellU[1] =0xFFFF;
+			battCellU[2] =0xFFFF;
+			battCellU[3] =0xFFFF;
 			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]);
+			battCellU[4] =0xFFFF;
+			battCellU[5] =0xFFFF;
+			battCellU[6] =0xFFFF;
+			battCellU[7] =0xFFFF;
 			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]);
+			battCellU[8] =0xFFFF;
+			battCellU[9] =0xFFFF;
+			battCellU[10] =0xFFFF;
+			battCellU[11] =0xFFFF;
 			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]);
+			battCellU[12] =0xFFFF;
+			battCellU[13] =0xFFFF;
+			battCellU[14] =0xFFFF;
+			battCellU[15] =0xFFFF;
 			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]);
+			battCellU[16] =0xFFFF;
+			battCellU[17] =0xFFFF;
+			battCellU[18] =0xFFFF;
+			battCellU[19] =0xFFFF;
 			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]);
+			battCellU[20] =0xFFFF;
+			battCellU[21] =0xFFFF;
+			battCellU[22] =0xFFFF;
+			battCellU[23] =0xFFFF;
 			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]);
+			battCellU[24] =0xFFFF;
+			battCellU[25] =0xFFFF;
+			battCellU[26] =0xFFFF;
+			battCellU[27] =0xFFFF;
 			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]);
+			battCellU[28] =0xFFFF;
+			battCellU[29] =0xFFFF;
+			battCellU[30] =0xFFFF;
+			battCellU[31] =0xFFFF;
 			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]);
+			battCellU[32] =0xFFFF;
+			battCellU[33] =0xFFFF;
+			battCellU[34] =0xFFFF;
+			battCellU[35] =0xFFFF;
 			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]);
+			battCellU[36] =0xFFFF;
+			battCellU[37] =0xFFFF;
+			battCellU[38] =0xFFFF;
+			battCellU[39] =0xFFFF;
 			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]);
+			battCellU[40] =0xFFFF;
+			battCellU[41] =0xFFFF;
+			battCellU[42] =0xFFFF;
+			battCellU[43] =0xFFFF;
 			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]);
+			battCellU[44] =0xFFFF;
+			battCellU[45] =0xFFFF;
+			battCellU[46] =0xFFFF;
+			battCellU[47] =0xFFFF;
 			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]);
+			battCellU[48] =0xFFFF;
+			battCellU[49] =0xFFFF;
+			battCellU[50] =0xFFFF;
+			battCellU[51] =0xFFFF;
 			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]);
+			battCellU[52] =0xFFFF;
+			battCellU[53] =0xFFFF;
+			battCellU[54] =0xFFFF;
+			battCellU[55] =0xFFFF;
 			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]);
+			battCellU[56] =0xFFFF;
+			battCellU[57] =0xFFFF;
+			battCellU[58] =0xFFFF;
+			battCellU[59] =0xFFFF;
 			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]);
+			battCellU[60] =0xFFFF;
+			battCellU[61] =0xFFFF;
+			battCellU[62] =0xFFFF;
+			battCellU[63] =0xFFFF;
 			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]);
+			battCellU[64] =0xFFFF;
+			battCellU[65] =0xFFFF;
+			battCellU[66] =0xFFFF;
+			battCellU[67] =0xFFFF;
 			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]);
+			battCellU[68] =0xFFFF;
+			battCellU[69] =0xFFFF;
+			battCellU[70] =0xFFFF;
+			battCellU[71] =0xFFFF;
 			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]);
+			battCellU[72] =0xFFFF;
+			battCellU[73] =0xFFFF;
+			battCellU[74] =0xFFFF;
+			battCellU[75] =0xFFFF;
 			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]);
+			battCellU[76] =0xFFFF;
+			battCellU[77] =0xFFFF;
+			battCellU[78] =0xFFFF;
+			battCellU[79] =0xFFFF;
 			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]);
+			battCellU[80] =0xFFFF;
+			battCellU[81] =0xFFFF;
+			battCellU[82] =0xFFFF;
+			battCellU[83] =0xFFFF;
 			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]);
+			battCellU[84] =0xFFFF;
+			battCellU[85] =0xFFFF;
+			battCellU[86] =0xFFFF;
+			battCellU[87] =0xFFFF;
 			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]);
+			battCellU[88] =0xFFFF;
+			battCellU[89] =0xFFFF;
+			battCellU[90] =0xFFFF;
+			battCellU[91] =0xFFFF;
 			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]);
+			battCellU[92] =0xFFFF;
+			battCellU[93] =0xFFFF;
+			battCellU[94] =0xFFFF;
+			battCellU[95] =0xFFFF;
 			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]);
+			battCellU[96] =0xFFFF;
+			battCellU[97] =0xFFFF;
+			battCellU[98] =0xFFFF;
+			battCellU[99] =0xFFFF;
 			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]);
+			battCellU[100] =0xFFFF;
+			battCellU[101] =0xFFFF;
+			battCellU[102] =0xFFFF;
+			battCellU[103] =0xFFFF;
 			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]);
+			battCellU[104] =0xFFFF;
+			battCellU[105] =0xFFFF;
+			battCellU[106] =0xFFFF;
+			battCellU[107] =0xFFFF;
 			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]);
+			battCellU[108] =0xFFFF;
+			battCellU[109] =0xFFFF;
+			battCellU[110] =0xFFFF;
+			battCellU[111] =0xFFFF;
 			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]);
+			battCellU[112] =0xFFFF;
+			battCellU[113] =0xFFFF;
+			battCellU[114] =0xFFFF;
+			battCellU[115] =0xFFFF;
 			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]);
+			battCellU[116] =0xFFFF;
+			battCellU[117] =0xFFFF;
+			battCellU[118] =0xFFFF;
+			battCellU[119] =0xFFFF;
 			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]);
+			battCellU[120] =0xFFFF;
+			battCellU[121] =0xFFFF;
+			battCellU[122] =0xFFFF;
+			battCellU[123] =0xFFFF;
 			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]);
+			battCellU[124] =0xFFFF;
+			battCellU[125] =0xFFFF;
+			battCellU[126] =0xFFFF;
+			battCellU[127] =0xFFFF;
 			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]);
+			battCellU[128] =0xFFFF;
+			battCellU[129] =0xFFFF;
+			battCellU[130] =0xFFFF;
+			battCellU[131] =0xFFFF;
 			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]);
+			battCellU[132] =0xFFFF;
+			battCellU[133] =0xFFFF;
+			battCellU[134] =0xFFFF;
+			battCellU[135] =0xFFFF;
 			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]);
+			battCellU[136] =0xFFFF;
+			battCellU[137] =0xFFFF;
+			battCellU[138] =0xFFFF;
+			battCellU[139] =0xFFFF;
 			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]);
+			battCellU[140] =0xFFFF;
+			battCellU[141] =0xFFFF;
+			battCellU[142] =0xFFFF;
+			battCellU[143] =0xFFFF;
 			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]);
+			battCellU[144] =0xFFFF;
+			battCellU[145] =0xFFFF;
+			battCellU[146] =0xFFFF;
+			battCellU[147] =0xFFFF;
 			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]);
+			battCellU[148] =0xFFFF;
+			battCellU[149] =0xFFFF;
+			battCellU[150] =0xFFFF;
+			battCellU[151] =0xFFFF;
 			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]);
+			battCellU[152] =0xFFFF;
+			battCellU[153] =0xFFFF;
+			battCellU[154] =0xFFFF;
+			battCellU[155] =0xFFFF;
 			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]);
+			battCellU[156] =0xFFFF;
+			battCellU[157] =0xFFFF;
+			battCellU[158] =0xFFFF;
+			battCellU[159] =0xFFFF;
 			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]);
+			battCellU[160] =0xFFFF;
+			battCellU[161] =0xFFFF;
+			battCellU[162] =0xFFFF;
+			battCellU[163] =0xFFFF;
 			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]);
+			battCellU[164] =0xFFFF;
+			battCellU[165] =0xFFFF;
+			battCellU[166] =0xFFFF;
+			battCellU[167] =0xFFFF;
 			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]);
+			battCellU[168] =0xFFFF;
+			battCellU[169] =0xFFFF;
+			battCellU[170] =0xFFFF;
+			battCellU[171] =0xFFFF;
 			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]);
+			battCellU[172] =0xFFFF;
+			battCellU[173] =0xFFFF;
+			battCellU[174] =0xFFFF;
+			battCellU[175] =0xFFFF;
 			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]);
+			battCellU[176] =0xFFFF;
+			battCellU[177] =0xFFFF;
+			battCellU[178] =0xFFFF;
+			battCellU[179] =0xFFFF;
 			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]);
+			battCellU[180] =0xFFFF;
+			battCellU[181] =0xFFFF;
+			battCellU[182] =0xFFFF;
+			battCellU[183] =0xFFFF;
 			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]);
+			battCellU[184] =0xFFFF;
+			battCellU[185] =0xFFFF;
+			battCellU[186] =0xFFFF;
+			battCellU[187] =0xFFFF;
 			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]);
+			battCellU[188] =0xFFFF;
+			battCellU[189] =0xFFFF;
+			battCellU[190] =0xFFFF;
+			battCellU[191] =0xFFFF;
 			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]);
+			battCellU[192] =0xFFFF;
+			battCellU[193] =0xFFFF;
+			battCellU[194] =0xFFFF;
+			battCellU[195] =0xFFFF;
 			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]);
+			battCellU[196] =0xFFFF;
+			battCellU[197] =0xFFFF;
+			battCellU[198] =0xFFFF;
+			battCellU[199] =0xFFFF;
 			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]);
+			battCellU[200] =0xFFFF;
+			battCellU[201] =0xFFFF;
+			battCellU[202] =0xFFFF;
+			battCellU[203] =0xFFFF;
 			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]);
+			battCellU[204] =0xFFFF;
+			battCellU[205] =0xFFFF;
+			battCellU[206] =0xFFFF;
+			battCellU[207] =0xFFFF;
 			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]);
+			battCellU[208] =0xFFFF;
+			battCellU[209] =0xFFFF;
+			battCellU[210] =0xFFFF;
+			battCellU[211] =0xFFFF;
 			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]);
+			battCellU[212] =0xFFFF;
+			battCellU[213] =0xFFFF;
+			battCellU[214] =0xFFFF;
+			battCellU[215] =0xFFFF;
 			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]);
+			battCellU[216] =0xFFFF;
+			battCellU[217] =0xFFFF;
+			battCellU[218] =0xFFFF;
+			battCellU[219] =0xFFFF;
 			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]);
+			battCellU[220] =0xFFFF;
+			battCellU[221] =0xFFFF;
+			battCellU[222] =0xFFFF;
+			battCellU[223] =0xFFFF;
 			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]);
+			battCellU[224] =0xFFFF;
+			battCellU[225] =0xFFFF;
+			battCellU[226] =0xFFFF;
+			battCellU[227] =0xFFFF;
 			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]);
+			battCellU[228] =0xFFFF;
+			battCellU[229] =0xFFFF;
+			battCellU[230] =0xFFFF;
+			battCellU[231] =0xFFFF;
 			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]);
+			battCellU[232] =0xFFFF;
+			battCellU[233] =0xFFFF;
+			battCellU[234] =0xFFFF;
+			battCellU[235] =0xFFFF;
 			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]);
+			battCellU[236] =0xFFFF;
+			battCellU[237] =0xFFFF;
+			battCellU[238] =0xFFFF;
+			battCellU[239] =0xFFFF;
 			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]);
+			battCellU[240] =0xFFFF;
+			battCellU[241] =0xFFFF;
+			battCellU[242] =0xFFFF;
+			battCellU[243] =0xFFFF;
 			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]);
+			battCellU[244] =0xFFFF;
+			battCellU[245] =0xFFFF;
+			battCellU[246] =0xFFFF;
+			battCellU[247] =0xFFFF;
 			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]);
+			battCellU[248] =0xFFFF;
+			battCellU[249] =0xFFFF;
+			battCellU[250] =0xFFFF;
+			battCellU[251] =0xFFFF;
 			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]);
+			battCellU[252] =0xFFFF;
+			battCellU[253] =0xFFFF;
+			battCellU[254] =0xFFFF;
+			battCellU[255] =0xFFFF;
 			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]);
+			battCellU[256] =0xFFFF;
+			battCellU[257] =0xFFFF;
+			battCellU[258] =0xFFFF;
+			battCellU[259] =0xFFFF;
 			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]);
+			battCellU[260] =0xFFFF;
+			battCellU[261] =0xFFFF;
+			battCellU[262] =0xFFFF;
+			battCellU[263] =0xFFFF;
 			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]);
+			battCellU[264] =0xFFFF;
+			battCellU[265] =0xFFFF;
+			battCellU[266] =0xFFFF;
+			battCellU[267] =0xFFFF;
 			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]);
+			battCellU[268] =0xFFFF;
+			battCellU[269] =0xFFFF;
+			battCellU[270] =0xFFFF;
+			battCellU[271] =0xFFFF;
 			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]);
+			battCellU[272] =0xFFFF;
+			battCellU[273] =0xFFFF;
+			battCellU[274] =0xFFFF;
+			battCellU[275] =0xFFFF;
 			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]);
+			battCellU[276] =0xFFFF;
+			battCellU[277] =0xFFFF;
+			battCellU[278] =0xFFFF;
+			battCellU[279] =0xFFFF;
 			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]);
+			battCellU[280] =0xFFFF;
+			battCellU[281] =0xFFFF;
+			battCellU[282] =0xFFFF;
+			battCellU[283] =0xFFFF;
 			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]);
+			battCellU[284] =0xFFFF;
+			battCellU[285] =0xFFFF;
+			battCellU[286] =0xFFFF;
+			battCellU[287] =0xFFFF;
 			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]);
+			battCellU[288] =0xFFFF;
+			battCellU[289] =0xFFFF;
+			battCellU[290] =0xFFFF;
+			battCellU[291] =0xFFFF;
 			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]);
+			battCellU[292] =0xFFFF;
+			battCellU[293] =0xFFFF;
+			battCellU[294] =0xFFFF;
+			battCellU[295] =0xFFFF;
 			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]);
+			battCellU[296] =0xFFFF;
+			battCellU[297] =0xFFFF;
+			battCellU[298] =0xFFFF;
+			battCellU[299] =0xFFFF;
 			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]);
+			battCellU[300] =0xFFFF;
+			battCellU[301] =0xFFFF;
+			battCellU[302] =0xFFFF;
+			battCellU[303] =0xFFFF;
 			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]);
+			battCellU[304] =0xFFFF;
+			battCellU[305] =0xFFFF;
+			battCellU[306] =0xFFFF;
+			battCellU[307] =0xFFFF;
 			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]);
+			battCellU[308] =0xFFFF;
+			battCellU[309] =0xFFFF;
+			battCellU[310] =0xFFFF;
+			battCellU[311] =0xFFFF;
 			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]);
+			battCellU[312] =0xFFFF;
+			battCellU[313] =0xFFFF;
+			battCellU[314] =0xFFFF;
+			battCellU[315] =0xFFFF;
 			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]);
+			battCellU[316] =0xFFFF;
+			battCellU[317] =0xFFFF;
+			battCellU[318] =0xFFFF;
+			battCellU[319] =0xFFFF;
 			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]);
+			battCellU[320] =0xFFFF;
+			battCellU[321] =0xFFFF;
+			battCellU[322] =0xFFFF;
+			battCellU[323] =0xFFFF;
 			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]);
+			battCellU[324] =0xFFFF;
+			battCellU[325] =0xFFFF;
+			battCellU[326] =0xFFFF;
+			battCellU[327] =0xFFFF;
 			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]);
+			battCellU[328] =0xFFFF;
+			battCellU[329] =0xFFFF;
+			battCellU[330] =0xFFFF;
+			battCellU[331] =0xFFFF;
 			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]);
+			battCellU[332] =0xFFFF;
+			battCellU[333] =0xFFFF;
+			battCellU[334] =0xFFFF;
+			battCellU[335] =0xFFFF;
 			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]);
+			battCellU[336] =0xFFFF;
+			battCellU[337] =0xFFFF;
+			battCellU[338] =0xFFFF;
+			battCellU[339] =0xFFFF;
 			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]);
+			battCellU[340] =0xFFFF;
+			battCellU[341] =0xFFFF;
+			battCellU[342] =0xFFFF;
+			battCellU[343] =0xFFFF;
 			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]);
+			battCellU[344] =0xFFFF;
+			battCellU[345] =0xFFFF;
+			battCellU[346] =0xFFFF;
+			battCellU[347] =0xFFFF;
 			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]);
+			battCellU[348] =0xFFFF;
+			battCellU[349] =0xFFFF;
+			battCellU[350] =0xFFFF;
+			battCellU[351] =0xFFFF;
 			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]);
+			battCellU[352] =0xFFFF;
+			battCellU[353] =0xFFFF;
+			battCellU[354] =0xFFFF;
+			battCellU[355] =0xFFFF;
 			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]);
+			battCellU[356] =0xFFFF;
+			battCellU[357] =0xFFFF;
+			battCellU[358] =0xFFFF;
+			battCellU[359] =0xFFFF;
 			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)
-					{
-						VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
-                        printf("VIN[%d]=%d\n",i+((*rawData)-1)*7,VIN[i+((*rawData)-1)*7]);
-					}
-				}
-			}
-			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;
-			*/
-	}
-}
-
-
-/***********************************************************************************************************************
- * 周期性报文诊�
- * 输入:报文ID
- * 输出�--
- * 处�:周期性诊断CAN报文��丢�
-***********************************************************************************************************************/
-void canRxDaignose(void)
-{
-	
-	if(TimeCounter%1 == 0)
-	{
-		canRxErrorCounter[0]++;
-		canRxErrorCounter[1]++;
-		canRxErrorCounter[110]++;
-		canRxErrorCounter[121]++;
-		canRxErrorCounter[122]++;
-	}
-	if(TimeCounter%2 == 0)
-	{
-		
-	}
-	if(TimeCounter%5 == 0)
-	{
-
-	}
-	if(TimeCounter%10 ==0)
-	{
-
-	}
-	if(TimeCounter %20 ==0)
-	{
-
-	}
-	if(TimeCounter%30 == 0)
-	{
-
-	}
-	if(TimeCounter%50 ==0)
-	{
-
-	}
-
-	for(int i=0;i<133;i++)
-	{
-		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;
-		}		
-	}
-}
-
-
-/***********************************************************************************************************************
- * 报文��查找
- * 输入:报文ID
- * 输出:报文ID在COMInTable�的��
- * 处��--
-***********************************************************************************************************************/
-UINT8 canCOMInTableIndexFind(UINT32 canID)
-{
-	UINT8 index = 0xFF;
-	for(int i=0;i<sizeof(COMInTable)/4;i++)
-	{
-		if(canID == COMInTable[i])
-		{
-			index = i;
-			break;
-		}
-	}
-	return index;
-}
-
-/***********************************************************************************************************************
- * 报文长时丢帧,数��为无效�
- * 输入:报文ID
- * 输出�--
- * 处�:报文长时丢帧�,�应的ID的信�值为无效�
-***********************************************************************************************************************/
-void canRxMsgSetInvalidValue(UINT32 ID)
-{
-	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);
+			battCellU[360] =0xFFFF;
+			battCellU[361] =0xFFFF;
+			battCellU[362] =0xFFFF;
+			battCellU[363] =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);
+			battCellU[364] =0xFFFF;
+			battCellU[365] =0xFFFF;
+			battCellU[366] =0xFFFF;
+			battCellU[367] =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);
+			battCellU[368] =0xFFFF;
+			battCellU[369] =0xFFFF;
+			battCellU[370] =0xFFFF;
+			battCellU[371] =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);
+			battCellU[372] =0xFFFF;
+			battCellU[373] =0xFFFF;
+			battCellU[374] =0xFFFF;
+			battCellU[375] =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);
+			battCellU[376] =0xFFFF;
+			battCellU[377] =0xFFFF;
+			battCellU[378] =0xFFFF;
+			battCellU[379] =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);
+			battCellU[380] =0xFFFF;
+			battCellU[381] =0xFFFF;
+			battCellU[382] =0xFFFF;
+			battCellU[383] =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);
+			battCellTemp[0] =0xFF;
+			battCellTemp[1] =0xFF;
+			battCellTemp[2] =0xFF;
+			battCellTemp[3] =0xFF;
+			battCellTemp[4] =0xFF;
+			battCellTemp[5] =0xFF;
+			battCellTemp[6] =0xFF;
+			battCellTemp[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);
+			battCellTemp[8] =0xFF;
+			battCellTemp[9] =0xFF;
+			battCellTemp[10] =0xFF;
+			battCellTemp[11] =0xFF;
+			battCellTemp[12] =0xFF;
+			battCellTemp[13] =0xFF;
+			battCellTemp[14] =0xFF;
+			battCellTemp[15] =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);
+			battCellTemp[16] =0xFF;
+			battCellTemp[17] =0xFF;
+			battCellTemp[18] =0xFF;
+			battCellTemp[19] =0xFF;
+			battCellTemp[20] =0xFF;
+			battCellTemp[21] =0xFF;
+			battCellTemp[22] =0xFF;
+			battCellTemp[23] =0xFF;
+			battCellTemp[24] =0xFF;
+			battCellTemp[25] =0xFF;
+			battCellTemp[26] =0xFF;
+			battCellTemp[27] =0xFF;
+			battCellTemp[28] =0xFF;
+			battCellTemp[29] =0xFF;
+			battCellTemp[30] =0xFF;
+			battCellTemp[31] =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);
+			battCellTemp[32] =0xFF;
+			battCellTemp[33] =0xFF;
+			battCellTemp[34] =0xFF;
+			battCellTemp[35] =0xFF;
+			battCellTemp[36] =0xFF;
+			battCellTemp[37] =0xFF;
+			battCellTemp[38] =0xFF;
+			battCellTemp[39] =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);
+			battCellTemp[40] =0xFF;
+			battCellTemp[41] =0xFF;
+			battCellTemp[42] =0xFF;
+			battCellTemp[43] =0xFF;
+			battCellTemp[44] =0xFF;
+			battCellTemp[45] =0xFF;
+			battCellTemp[46] =0xFF;
+			battCellTemp[47] =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);
+			battCellTemp[48] =0xFF;
+			battCellTemp[49] =0xFF;
+			battCellTemp[50] =0xFF;
+			battCellTemp[51] =0xFF;
+			battCellTemp[52] =0xFF;
+			battCellTemp[53] =0xFF;
+			battCellTemp[54] =0xFF;
+			battCellTemp[55] =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);
+			battCellTemp[56] =0xFF;
+			battCellTemp[57] =0xFF;
+			battCellTemp[58] =0xFF;
+			battCellTemp[59] =0xFF;
+			battCellTemp[60] =0xFF;
+			battCellTemp[61] =0xFF;
+			battCellTemp[62] =0xFF;
+			battCellTemp[63] =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);
+			mainPosRlyStatus =0xFF;
+			preRlyStatus =0xFF;
+			mainNegRlyStatus =0xFF;
+			thrRlyStatus =0xFF;
+			ptc1RlyStatus =0xFF;
+			airCondRlyStatus =0xFF;
+			dcChrg1PosRlyStatus =0xFF;
+			dcChrg1NegRlyStatus =0xFF;
+			dcChrg2PosRlyStatus =0xFF;
+			dcChrg2NegRlyStatus =0xFF;
+			heatPosRlyStatus =0xFF;
+			heatNegRlyStatus =0xFF;
+			coolRlyStatus =0xFF;
+			ptc2RlyStatus =0xFF;
+			mainPosRlyErrStatus =0xFF;
+			preRlyErrStatus =0xFF;
+			mainNegRlyErrStatus =0xFF;
+			thrRlyErrStatus =0xFF;
+			ptc1RlyErrStatus =0xFF;
+			airCondRlyErrStatus =0xFF;
+			dcChrg1PosRlyErrStatus =0xFF;
+			dcChrg1NegRlyErrStatus =0xFF;
+			dcChrg2PosRlyErrStatus =0xFF;
+			dcChrg2NegRlyErrStatus =0xFF;
+			heatPosRlyErrStatus =0xFF;
+			heatNegRlyErrStatus =0xFF;
+			coolRlyErrStatus =0xFF;
+			ptc2RlyErrStatus =0xFF;
 			break;
 		case	0x18FF60F3:
-			accChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			accDischrgAh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			accChrgAh =0xFFFFFFFF;
+			accDischrgAh =0xFFFFFFFF;
 			break;
 		case	0x18FF61F3:
-			accChrgkWh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			accDischrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			accChrgkWh =0xFFFFFFFF;
+			accDischrgkWh =0xFFFFFFFF;
 			break;
 		case	0x18FF62F3:
-			battSOH = (UINT8)(((*(UINT8*)(rawData +0)))&0xFF);
+			battSOH =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);
+			SN[0] =0xFF;
+			SN[1] =0xFF;
+			SN[2] =0xFF;
+			SN[3] =0xFF;
+			SN[4] =0xFF;
+			SN[5] =0xFF;
+			SN[6] =0xFF;
+			SN[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);
+			SN[8] =0xFF;
+			SN[9] =0xFF;
+			SN[10] =0xFF;
+			SN[11] =0xFF;
+			SN[12] =0xFF;
+			SN[13] =0xFF;
+			SN[14] =0xFF;
+			SN[15] =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);
+			SN[16] =0xFF;
+			SN[17] =0xFF;
+			SN[18] =0xFF;
+			SN[19] =0xFF;
+			SN[20] =0xFF;
+			SN[21] =0xFF;
+			SN[22] =0xFF;
+			SN[23] =0xFF;
 			break;
 		case	0x18FF66F3:
-			accRecvryChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			accRecvryChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			accRecvryChrgAh =0xFFFFFFFF;
+			accRecvryChrgkWh =0xFFFFFFFF;
 			break;
 		case	0x18FF67F3:
-			accStationChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			accStationChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			accStationChrgAh =0xFFFFFFFF;
+			accStationChrgkWh =0xFFFFFFFF;
 			break;
 		case	0x18FF68F3:
-			accGunChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			accGunChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			accGunChrgAh =0xFFFFFFFF;
+			accGunChrgkWh =0xFFFFFFFF;
 			break;
 		case	0x18FF69F3:
-			sglChrgAh = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
-			sglChrgkWh = (UINT32)(((*(UINT32*)(rawData +4)))&0xFFFFFFFF);
+			sglChrgAh =0xFFFFFFFF;
+			sglChrgkWh =0xFFFFFFFF;
 			break;
 		case	0x18FF10D0:
-			bmsHVOn = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
+			bmsHVOn =0xFF;
 			break;
 		case	0x18FF20EF:
-			vcuDCVol = (UINT16)(((*(UINT16*)(rawData +1)))&0xFFFF);
+			vcuDCVol =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);
+			acRelayStatus =0xFF;
+			ptcRelayStatus =0xFF;
+			mainRelayStatus =0xFF;
+			preRelayStatus =0xFF;
+			ptc2RelayStatus =0xFF;
+			acRelayErrorStatus =0xFF;
+			ptcRelayErrorStatus =0xFF;
+			mainRelayErrorStatus =0xFF;
+			preRelayErrorStatus =0xFF;
+			hvLockErrorStatus =0xFF;
+			ptc2RelayErrorStatus =0xFF;
 			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);
+			ebcStatus =0xFF;
+			ebcAskHVOn =0xFF;
+			ebcAskHVOff =0xFF;
+			retainLockSignal =0xFF;
+			dischargeLockSignal =0xFF;
+			chargeLockSignal =0xFF;
+			errorClass =0xFF;
+			errorCode1 =0xFF;
+			errorCode2 =0xFF;
+			chargeFlag =0xFF;
+			exchangeBattAirPressure =0xFF;
+			lifeSignal =0xFF;
 			break;
 		case	0x18FF09D0:
-			vehicleStatus = (UINT8)(((*(UINT8*)(rawData +0)))&0x3);
-			currentGearPosition = (UINT8)(((*(UINT8*)(rawData +1)))&0x1F);
+			vehicleStatus =0xFF;
+			currentGearPosition =0xFF;
 			break;
 		case	0x18FEF1D0:
-			parkingBreakStatus = (UINT8)(((*(UINT8*)(rawData +0))>>2)&0x3);
-			breakingStatus = (UINT8)(((*(UINT8*)(rawData +3))>>4)&0x3);
+			parkingBreakStatus =0xFF;
+			breakingStatus =0xFF;
 			break;
 		case	0x18FF55D0:
-			if(*rawData >= 0x1 && *rawData <= 3)
+			for(UINT8 i = 0; i < sizeof(VIN); i++)
 			{
-				for(UINT8 i = 0; i < 7; i++)
-				{
-					if(i+((*rawData)-1)*7 <17)
-					{
-						VIN[i+((*rawData)-1)*7] = *(rawData + i+1 ) & 0xFF;
-					}
-				}
+				VIN[i] = 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);
+			frontBreakingPressure =0xFF;
+			backBreakingPressure =0xFF;
+			frontBreakingPressureErrorStatus =0xFF;
+			backBreakingPressureErrorStatus =0xFF;
 			break;
 		case	0x18FEC117:
-			ODO = (UINT32)(((*(UINT32*)(rawData +0)))&0xFFFFFFFF);
+			ODO =0xFFFFFFFF;
 			break;
 		case	0x18FF15A0:
-			dcdcErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
-			dcdcWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
+			dcdcErrorClass =0xFF;
+			dcdcWorkStatus =0xFF;
 			break;
 		case	0x18FF16A1:
-			mainElectricityErrorClass = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
-			pumpWorkStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
+			mainElectricityErrorClass =0xFF;
+			pumpWorkStatus =0xFF;
 			break;
 		case	0x18FF17A2:
-			elecAirCompressorErrorStatus = (UINT8)(((*(UINT8*)(rawData +5)))&0x7);
-			elecAirCompressorWrokStatus = (UINT8)(((*(UINT8*)(rawData +5))>>3)&0x3);
+			elecAirCompressorErrorStatus =0xFF;
+			elecAirCompressorWrokStatus =0xFF;
 			break;
 		default:
 			break;

+ 5 - 0
src/AppSignal.c

@@ -11,6 +11,11 @@
 //
 /**declear the bool vars**/
 volatile BOOL NB_Fota_update_flag = FALSE;
+BOOL canSNMsgLostFlag = false;
+BOOL canSNMsgRxCmpltFlag = false;
+BOOL canVINMsgRxCmpltFlag = false;
+
+
 
 UINT8   TcpErrorcount=0;            //Error count TCP联网错误计数
 UINT8   TCPWorkState = 0;           //Tcp工作状态,0-表示发送,1-表示应答,2-表示监听以及心跳发送

+ 30 - 12
src/hal_module_adapter.c

@@ -963,10 +963,22 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 	UINT8 tryTim,count,value,i,temp,TXBufferCase = 0;
 	INT8 ret = 0;
 	UINT8 TXB0CTRLvalue,TXB1CTRLvalue,TXB2CTRLvalue,CANINTFValue=0;
+	UINT8 TxBnEId0,TxBnEId8,TxBnSIdL,TxBnSIdH = 0;
+	
 	CAN_ReadReg(TXB0CTRL, 1, &TXB0CTRLvalue);
 	CAN_ReadReg(TXB1CTRL, 1, &TXB1CTRLvalue);
 	CAN_ReadReg(TXB2CTRL, 1, &TXB2CTRLvalue);
-
+	TxBnEId0 = (Can_TxMsg.Id)&0xFF;
+	TxBnEId8 = ((Can_TxMsg.Id)>>8)&0xFF;
+	TxBnSIdL = (((((Can_TxMsg.Id)>>18)&0x07)<<5) | (1<<3) | (((Can_TxMsg.Id)>>16)&0x03))&0xFF;
+	TxBnSIdH = ((Can_TxMsg.Id)>>21)&0xFF;
+	
+/*
+	printf("TXB0CTRL = 0x%x,\tTXB1CTRL = 0x%x,\tTXB2CTRL = 0x%x\n",TXB0CTRL,TXB1CTRL,TXB2CTRL);
+	printf("ID = 0x%x\n",Can_TxMsg.Id);
+	printf("TxBnEId0 = 0x%x,\tTxBnEId8 = 0x%x,\tTxBnSIdL = 0x%x,\tTxBnSIdH = 0x%x\n",TxBnEId0,TxBnEId8,TxBnSIdL,TxBnSIdH);
+*/
+	
 	if((TXB0CTRLvalue&TXREQ)==0)
 		TXBufferCase = 0;
 	else if((TXB1CTRLvalue&TXREQ)==0)
@@ -981,7 +993,6 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 	
 	switch(TXBufferCase)
 	{
-
 		case 0:
 		{
 			//tryTim=0;
@@ -995,8 +1006,12 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 			//}
 			
 			/*TXB0*/
-			CAN_WriteReg(TXB0SIDH,0xFF&((Can_TxMsg.Id)>>3));//����?��?o3??��0������?������?��?????
-			CAN_WriteReg(TXB0SIDL,0xE0&((Can_TxMsg.Id)<<5));//����?��?o3??��0������?������?��?�̨�??	
+			//CAN_WriteReg(TXB0SIDH,0xFF&((Can_TxMsg.Id)>>3));//����?��?o3??��0������?������?��?????
+			//CAN_WriteReg(TXB0SIDL,0xE0&((Can_TxMsg.Id)<<5));//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB0SIDH,TxBnSIdH);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB0SIDL,TxBnSIdL);//����?��?o3??��0������?������?��?????
+			CAN_WriteReg(TXB0EID8,TxBnEId8);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB0EID0,TxBnEId0);//����?��?o3??��0������?������?��?????
 			for(i=0;i<Can_TxMsg.DLC;i++)
 			{
 				CAN_WriteReg(TXB0D0+i,Can_TxMsg.Data[i]);//??��y����?����?��y?YD�䨨?����?��?o3???��??��
@@ -1012,9 +1027,11 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 		}
 		case 1:
 		{
-			/*TXB0*/
-			CAN_WriteReg(TXB1SIDH,0xFF&((Can_TxMsg.Id)>>3));//����?��?o3??��0������?������?��?????
-			CAN_WriteReg(TXB1SIDL,0xE0&((Can_TxMsg.Id)<<5));//����?��?o3??��0������?������?��?�̨�??	
+			/*TXB1*/
+			CAN_WriteReg(TXB1SIDH,TxBnSIdH);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB1SIDL,TxBnSIdL);//����?��?o3??��0������?������?��?????
+			CAN_WriteReg(TXB1EID8,TxBnEId8);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB1EID0,TxBnEId0);//����?��?o3??��0������?������?��?????
 			for(i=0;i<Can_TxMsg.DLC;i++)
 			{
 				CAN_WriteReg(TXB1D0+i,Can_TxMsg.Data[i]);//??��y����?����?��y?YD�䨨?����?��?o3???��??��
@@ -1031,9 +1048,11 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 		}
 		case 2:
 		{	
-			/*TXB0*/
-			CAN_WriteReg(TXB2SIDH,0xFF&((Can_TxMsg.Id)>>3));//����?��?o3??��0������?������?��?????
-			CAN_WriteReg(TXB2SIDL,0xE0&((Can_TxMsg.Id)<<5));//����?��?o3??��0������?������?��?�̨�??	
+			/*TXB2*/
+			CAN_WriteReg(TXB2SIDH,TxBnSIdH);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB2SIDL,TxBnSIdL);//����?��?o3??��0������?������?��?????
+			CAN_WriteReg(TXB2EID8,TxBnEId8);//����?��?o3??��0������?������?��?�̨�??	
+			CAN_WriteReg(TXB2EID0,TxBnEId0);//����?��?o3??��0������?������?��?????
 			for(i=0;i<Can_TxMsg.DLC;i++)
 			{
 				CAN_WriteReg(TXB2D0+i,Can_TxMsg.Data[i]);//??��y����?����?��y?YD�䨨?����?��?o3???��??��
@@ -1043,7 +1062,6 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 			SPI_CS_Low();
 			CAN_WriteReg(TXB2CTRL,TXREQ);//???������?������??
 			//SPI_CS_High();
-
 			
 			ret = 2;
 			break;
@@ -1066,7 +1084,7 @@ INT8  HAL_Can_Transmit(CAN_Msg_Type Can_TxMsg)
 		CAN_ReadReg(TXB0CTRL, 1, &TXB0CTRLvalue);
 		CAN_ReadReg(TXB1CTRL, 1, &TXB1CTRLvalue);
 		CAN_ReadReg(TXB2CTRL, 1, &TXB2CTRLvalue);
-		osDelay(1);
+		//osDelay(1);
 		tryTim++;
 	}
 	CAN_ReadReg(CANINTF, 1, &CANINTFValue);