Browse Source

Merge commit '71f60e38d6a8bc0d171d63e908929eaeab20e98b' into V2版本-GY电池
合并力神电池软件,对冠宇电池进行修改
# Conflicts:
# inc/app.h

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
83aa61f91e
10 changed files with 42 additions and 32 deletions
  1. 1 1
      inc/Signal.h
  2. 1 1
      inc/TcpTask.h
  3. 4 4
      inc/app.h
  4. 1 1
      src/CANTask.c
  5. 18 13
      src/Fota.c
  6. 1 1
      src/MainTask.c
  7. 1 0
      src/Signal.c
  8. 13 9
      src/TcpTask.c
  9. 1 1
      src/UartTask.c
  10. 1 1
      src/app.c

+ 1 - 1
inc/Signal.h

@@ -47,7 +47,7 @@ extern UINT8 Error_count;
 extern	UINT32	battWarningState;
 extern	UINT32	battWarningState;
 extern	UINT32	nbSwVersion;
 extern	UINT32	nbSwVersion;
 extern	UINT32	battBalanceoInfo;
 extern	UINT32	battBalanceoInfo;
-
+extern  UINT32  Battdesigncap;
 
 
 extern UINT16   ErrorNum[5];//故障代码
 extern UINT16   ErrorNum[5];//故障代码
 extern UINT8 	TcpSendLen;
 extern UINT8 	TcpSendLen;

+ 1 - 1
inc/TcpTask.h

@@ -8,7 +8,7 @@
  ****************************************************************************/
  ****************************************************************************/
 #include "app.h"
 #include "app.h"
 extern UINT32 TcpService;
 extern UINT32 TcpService;
-#define PROC_TCP_TASK_STACK_SIZE           (2048)
+#define PROC_TCP_TASK_STACK_SIZE           (2048+1024)
 #define QMSG_ID_BASE               (0x160) 
 #define QMSG_ID_BASE               (0x160) 
 #define QMSG_ID_NW_IP_READY        (QMSG_ID_BASE)
 #define QMSG_ID_NW_IP_READY        (QMSG_ID_BASE)
 #define QMSG_ID_NW_IP_SUSPEND      (QMSG_ID_BASE + 1)
 #define QMSG_ID_NW_IP_SUSPEND      (QMSG_ID_BASE + 1)

+ 4 - 4
inc/app.h

@@ -13,9 +13,9 @@
 extern "C" {
 extern "C" {
 #endif
 #endif
 //全局定义声明区
 //全局定义声明区
-#define BMS_MANUFACTURE (1) //BMS制造商表示1-超力源,2-美顺
+#define BMS_MANUFACTURE (2) //BMS制造商表示1-超力源,2-美顺
 #define DATA_MODULE_TYPE (1) //1表示NB模块,2表示4G cat1
 #define DATA_MODULE_TYPE (1) //1表示NB模块,2表示4G cat1
-#define BMS_INFO  (2)       //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺7255
+#define BMS_INFO  (1)       //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺6455
 #define EOLSTATE (0) //1标识下线检测跳过,使用默认值
 #define EOLSTATE (0) //1标识下线检测跳过,使用默认值
 
 
 #if  BMS_MANUFACTURE==1
 #if  BMS_MANUFACTURE==1
@@ -51,8 +51,8 @@ extern "C" {
 #define	BLSWVERSION		0x01020000    //BootLoader版本号V1.2.0.0
 #define	BLSWVERSION		0x01020000    //BootLoader版本号V1.2.0.0
 #define	DRVSWVERSION		0x01050000     //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 #define	DRVSWVERSION		0x01050000     //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 //#define	APPSWVERSION		0x01020209     
 //#define	APPSWVERSION		0x01020209     
-#define	APPSWVERSION		0x02000106
-// #define	APPSWVERSION		0x0201000B
+//#define	APPSWVERSION		0x02000103
+#define	APPSWVERSION		0x0201000E
 //--------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------
 
 
 #define APP_CONFIG_FILE_LATEST_VERSION 0
 #define APP_CONFIG_FILE_LATEST_VERSION 0

+ 1 - 1
src/CANTask.c

@@ -138,7 +138,7 @@ static void Can_Receive()
 						delayconuter=0;
 						delayconuter=0;
 					}
 					}
 				}
 				}
-				if(delayconuter>100)
+				if(delayconuter>100 && msgFlag ==0)
 				{
 				{
 					delayconuter=0;
 					delayconuter=0;
 					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);
 					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);

+ 18 - 13
src/Fota.c

@@ -14,17 +14,17 @@
 #include "os_exception.h"
 #include "os_exception.h"
 #include "flash_ec616_rt.h"
 #include "flash_ec616_rt.h"
 extern AppNVMDataType AppNVMData;
 extern AppNVMDataType AppNVMData;
-static Fota_Type Fota_S;
 static UINT8 bcc_chk_fota(UINT8* data, UINT8 length);
 static UINT8 bcc_chk_fota(UINT8* data, UINT8 length);
 static UINT8 Fota_crc_chk(UINT8* data,UINT8 length);
 static UINT8 Fota_crc_chk(UINT8* data,UINT8 length);
 volatile bool NB_Fota_update_flag = FALSE; //NB可以升级标志
 volatile bool NB_Fota_update_flag = FALSE; //NB可以升级标志
 volatile bool BMS_Fota_update_flag = FALSE; //NB可以升级标志
 volatile bool BMS_Fota_update_flag = FALSE; //NB可以升级标志
 void Fota_Func(UINT8 *DataPtr,INT32 connectId)
 void Fota_Func(UINT8 *DataPtr,INT32 connectId)
 {
 {
+    Fota_Type Fota_S;
     UINT8 Fota_Answer[43];
     UINT8 Fota_Answer[43];
     UINT8 Fota_Cmd;
     UINT8 Fota_Cmd;
     INT8 ret;
     INT8 ret;
-    UINT8* Data_Read_Buffer;
+    UINT8* Data_Read_Buffer=PNULL;
     UINT8 Data_Read_Crc;
     UINT8 Data_Read_Crc;
     if(*(DataPtr+30)==0x01)
     if(*(DataPtr+30)==0x01)
     {
     {
@@ -46,7 +46,7 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 else
                 else
                 {
                 {
                     Fota_Answer[3] = 0x01;
                     Fota_Answer[3] = 0x01;
-                    BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,Fota_S.Fota_All_Data_Len + 4 - (Fota_S.Fota_All_Data_Len%4)); //512k-32k = 480k -> 0x75300  0x78000
+                    BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,(FLASH_BMS_FOTA_START_ADDR - FLASH_FOTA_REGION_START)); //512k-32k = 480k -> 0x75300  0x78000
                 }
                 }
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
@@ -65,26 +65,25 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 memset(Fota_S.Fota_Recv_Data,0x00,100);
                 memset(Fota_S.Fota_Recv_Data,0x00,100);
                 memcpy(Fota_S.Fota_Recv_Data,(DataPtr+42),*(DataPtr+41));
                 memcpy(Fota_S.Fota_Recv_Data,(DataPtr+42),*(DataPtr+41));
                 Fota_S.Fota_CRC = Fota_crc_chk(Fota_S.Fota_Recv_Data,Fota_S.Fota_Recv_Data_Len);
                 Fota_S.Fota_CRC = Fota_crc_chk(Fota_S.Fota_Recv_Data,Fota_S.Fota_Recv_Data_Len);
-                if(Fota_S.Fota_CRC == *(DataPtr+Fota_S.Fota_Recv_Data_Len+42))
+                Data_Read_Buffer = malloc(Fota_S.Fota_Recv_Data_Len+1);
+                if(Fota_S.Fota_CRC == *(DataPtr+Fota_S.Fota_Recv_Data_Len+42)||Data_Read_Buffer!=PNULL)
                 {
                 {
                     if(Fota_S.Fota_Recv_Data_Len%4!=0)
                     if(Fota_S.Fota_Recv_Data_Len%4!=0)
                     {
                     {
                     Fota_S.Fota_Recv_Data_Len = Fota_S.Fota_Recv_Data_Len + 4-(Fota_S.Fota_Recv_Data_Len%4);
                     Fota_S.Fota_Recv_Data_Len = Fota_S.Fota_Recv_Data_Len + 4-(Fota_S.Fota_Recv_Data_Len%4);
                     }
                     }
                     BSP_QSPI_Write_Safe(Fota_S.Fota_Recv_Data,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Write_Safe(Fota_S.Fota_Recv_Data,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
-                    Data_Read_Buffer = malloc(Fota_S.Fota_Recv_Data_Len);
+                    memset(Data_Read_Buffer,0x00,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
                     #ifdef USING_PRINTF
                     #ifdef USING_PRINTF
-                        printf("\n\n\n");
-                        UINT8 temp[1];
+                        printf("Data_Read_Buffer:\n");
                         for(int i=0;i<Fota_S.Fota_Recv_Data_Len;i++)
                         for(int i=0;i<Fota_S.Fota_Recv_Data_Len;i++)
                         {
                         {
                             printf("%x  ",*(Data_Read_Buffer+i));
                             printf("%x  ",*(Data_Read_Buffer+i));
                         }    
                         }    
-                        printf("\n\n\n");
+                        printf("\n");
                     #endif
                     #endif
-                    free(Data_Read_Buffer);
                     if(Data_Read_Crc==Fota_S.Fota_CRC )
                     if(Data_Read_Crc==Fota_S.Fota_CRC )
                     {
                     {
                         Fota_Answer[3] = 0x01;
                         Fota_Answer[3] = 0x01;
@@ -99,6 +98,9 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 {
                 {
                     Fota_Answer[3] = 0x02;
                     Fota_Answer[3] = 0x02;
                 }
                 }
+                if(Data_Read_Buffer!=PNULL)
+                    free(Data_Read_Buffer);
+                Data_Read_Buffer =PNULL;
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
                 Fota_Answer[22] = 0x00;
                 Fota_Answer[22] = 0x00;
@@ -175,7 +177,7 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 tcpipConnectionSend(connectId,Fota_Answer,43,0,0,0);
                 tcpipConnectionSend(connectId,Fota_Answer,43,0,0,0);
                 if(Fota_Answer[3] == 0x01)
                 if(Fota_Answer[3] == 0x01)
                 {
                 {
-                    BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,Fota_S.Fota_All_Data_Len + 4 - (Fota_S.Fota_All_Data_Len%4)); //512k-32k = 480k -> 0x75300  0x78000
+                    BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,(FLASH_BMS_FOTA_END_ADDR - FLASH_BMS_FOTA_START_ADDR)); //512k-32k = 480k -> 0x75300  0x78000
                 }
                 }
                 break;
                 break;
             }
             }
@@ -187,14 +189,15 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 memset(Fota_S.Fota_Recv_Data,0x00,100);
                 memset(Fota_S.Fota_Recv_Data,0x00,100);
                 memcpy(Fota_S.Fota_Recv_Data,(DataPtr+42),*(DataPtr+41));
                 memcpy(Fota_S.Fota_Recv_Data,(DataPtr+42),*(DataPtr+41));
                 Fota_S.Fota_CRC = Fota_crc_chk(Fota_S.Fota_Recv_Data,Fota_S.Fota_Recv_Data_Len);
                 Fota_S.Fota_CRC = Fota_crc_chk(Fota_S.Fota_Recv_Data,Fota_S.Fota_Recv_Data_Len);
-                if(Fota_S.Fota_CRC == *(DataPtr+Fota_S.Fota_Recv_Data_Len+42))
+                Data_Read_Buffer = malloc(Fota_S.Fota_Recv_Data_Len);
+                if(Fota_S.Fota_CRC == *(DataPtr+Fota_S.Fota_Recv_Data_Len+42)||Data_Read_Buffer!=PNULL)
                 {
                 {
                     if(Fota_S.Fota_Recv_Data_Len%4!=0)
                     if(Fota_S.Fota_Recv_Data_Len%4!=0)
                     {
                     {
                     Fota_S.Fota_Recv_Data_Len = Fota_S.Fota_Recv_Data_Len + 4-(Fota_S.Fota_Recv_Data_Len%4);
                     Fota_S.Fota_Recv_Data_Len = Fota_S.Fota_Recv_Data_Len + 4-(Fota_S.Fota_Recv_Data_Len%4);
                     }
                     }
                     BSP_QSPI_Write_Safe(Fota_S.Fota_Recv_Data,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Write_Safe(Fota_S.Fota_Recv_Data,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
-                    Data_Read_Buffer = malloc(Fota_S.Fota_Recv_Data_Len);
+                    
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
                     #ifdef USING_PRINTF1
                     #ifdef USING_PRINTF1
@@ -206,7 +209,6 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                         }    
                         }    
                         printf("\n\n\n");
                         printf("\n\n\n");
                     #endif
                     #endif
-                    free(Data_Read_Buffer);
                     if(Data_Read_Crc==Fota_S.Fota_CRC )
                     if(Data_Read_Crc==Fota_S.Fota_CRC )
                     {
                     {
                         Fota_Answer[3] = 0x01;
                         Fota_Answer[3] = 0x01;
@@ -221,6 +223,9 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 {
                 {
                     Fota_Answer[3] = 0x02;
                     Fota_Answer[3] = 0x02;
                 }
                 }
+                if(Data_Read_Buffer!=PNULL)
+                    free(Data_Read_Buffer);
+                Data_Read_Buffer =PNULL;
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
                 Fota_Answer[22] = 0x00;
                 Fota_Answer[22] = 0x00;

+ 1 - 1
src/MainTask.c

@@ -300,7 +300,7 @@ static void MainTask(void* arg)
                     printf("which slpstate can go now :%d \n",slpstate);
                     printf("which slpstate can go now :%d \n",slpstate);
                 #endif
                 #endif
                 #ifdef DEBUGLOG
                 #ifdef DEBUGLOG
-                    Debug_printf("slp-%d,%d,%d\n",slpstate,AppDataInfo.AccMileage,AppDataInfo.SysReStart);
+                    Debug_printf("slp-%d,%d,%d,%d\n",slpstate,AppDataInfo.AccMileage,AppDataInfo.SysReStart,Battdesigncap);
                 #endif
                 #endif
                 slpManDeepSlpTimerStart(deepslpTimerID, AppNVMData.sleepTime*1000*60);
                 slpManDeepSlpTimerStart(deepslpTimerID, AppNVMData.sleepTime*1000*60);
                 UINT8 sleeptime_count=0;
                 UINT8 sleeptime_count=0;

+ 1 - 0
src/Signal.c

@@ -78,6 +78,7 @@ UINT32	battWarningState = 0xFFFFFFFF;
 UINT32	nbSwVersion = 0xFFFFFFFF;
 UINT32	nbSwVersion = 0xFFFFFFFF;
 UINT32	battBalanceoInfo = 0xFFFFFFFF;
 UINT32	battBalanceoInfo = 0xFFFFFFFF;
 
 
+UINT32 Battdesigncap =0xFFFFFFFF;
 //Tcp
 //Tcp
 UINT8 	TcpSendLen = 0;
 UINT8 	TcpSendLen = 0;
 
 

+ 13 - 9
src/TcpTask.c

@@ -81,7 +81,7 @@ static void TcpTask(void* arg)
     }
     }
     if(TcpRecvHandle == NULL)
     if(TcpRecvHandle == NULL)
 	{
 	{
-		TcpRecvHandle = osMessageQueueNew(1,sizeof(TcpipConnectionRecvDataInd*), NULL);
+		TcpRecvHandle = osMessageQueueNew(2,sizeof(TcpipConnectionRecvDataInd*), NULL);
 	}
 	}
     if(Error_Mutex == NULL)
     if(Error_Mutex == NULL)
     {
     {
@@ -572,7 +572,7 @@ static void TcpDataInfoAssembleSend()
     if(send_counter==0)//发送本次文件中的调试信息
     if(send_counter==0)//发送本次文件中的调试信息
     {
     {
         DebugMsgtoTcpType DebugMsgInfo;
         DebugMsgtoTcpType DebugMsgInfo;
-        UINT8 *SendBuffer = PNULL;
+        UINT8 *SendBuffer = NULL;
         UINT16 BufferLen = 0;
         UINT16 BufferLen = 0;
         BufferLen = Debug_GetSize();
         BufferLen = Debug_GetSize();
         if(BufferLen>200)
         if(BufferLen>200)
@@ -638,7 +638,7 @@ static void TcpDataInfoAssembleSend()
 //Tcp数据接收处理函数
 //Tcp数据接收处理函数
 static void TcpDataInfoRecvHandle()
 static void TcpDataInfoRecvHandle()
 {
 {
-    TcpipConnectionRecvDataInd *TcpRecvData;
+    TcpipConnectionRecvDataInd *TcpRecvData=NULL;
     osMessageQueueGet(TcpRecvHandle,&TcpRecvData,0,0);
     osMessageQueueGet(TcpRecvHandle,&TcpRecvData,0,0);
     osDelay(100);
     osDelay(100);
     Uart_Write_Data_Type UartWriteCmd;
     Uart_Write_Data_Type UartWriteCmd;
@@ -650,7 +650,7 @@ static void TcpDataInfoRecvHandle()
     UINT8 TcpCmdAnswer[31];
     UINT8 TcpCmdAnswer[31];
     TcpCmdAnswer[0] = TCP_START_SYM1;
     TcpCmdAnswer[0] = TCP_START_SYM1;
     TcpCmdAnswer[1] = TCP_START_SYM1;
     TcpCmdAnswer[1] = TCP_START_SYM1;
-    if(TcpRecvData != PNULL)
+    if(TcpRecvData!=NULL&&TcpRecvData->length!=0)
     {
     {
         Ptr = TcpRecvData->data;
         Ptr = TcpRecvData->data;
         if((*(Ptr+0)==TCP_START_SYM1)&&(*(Ptr+1)==TCP_START_SYM2))//服务器起始信息
         if((*(Ptr+0)==TCP_START_SYM1)&&(*(Ptr+1)==TCP_START_SYM2))//服务器起始信息
@@ -733,8 +733,12 @@ static void TcpDataInfoRecvHandle()
                 }
                 }
             }
             }
         }
         }
-    free(TcpRecvData); 
     }
     }
+    if(TcpRecvData!=NULL)
+    {
+        free(TcpRecvData);
+    }
+    TcpRecvData = NULL;
 }
 }
 //TCP发送校验函数
 //TCP发送校验函数
 UINT8 bcc_chk(UINT8* data, UINT8 length)
 UINT8 bcc_chk(UINT8* data, UINT8 length)
@@ -884,7 +888,7 @@ static void socketAppConnectionCallBack(UINT8 connectionEventType, void *bodyEve
             TcpipConnectionRecvDataInd *rcvInd;
             TcpipConnectionRecvDataInd *rcvInd;
             TcpipConnectionRecvDataInd *rcvbuffer = NULL;
             TcpipConnectionRecvDataInd *rcvbuffer = NULL;
             rcvInd = (TcpipConnectionRecvDataInd *)bodyEvent;
             rcvInd = (TcpipConnectionRecvDataInd *)bodyEvent;
-            if(rcvInd != PNULL)
+            if(rcvInd != NULL)
             {
             {
                 rcvbuffer = malloc(sizeof(TcpipConnectionRecvDataInd));
                 rcvbuffer = malloc(sizeof(TcpipConnectionRecvDataInd));
                 memcpy(rcvbuffer,rcvInd,sizeof(TcpipConnectionRecvDataInd));
                 memcpy(rcvbuffer,rcvInd,sizeof(TcpipConnectionRecvDataInd));
@@ -894,9 +898,9 @@ static void socketAppConnectionCallBack(UINT8 connectionEventType, void *bodyEve
                     uint8_t* Ptr;
                     uint8_t* Ptr;
                     Ptr=rcvInd->data;
                     Ptr=rcvInd->data;
                     printf("socket connection %u receive length %u data:", rcvInd->connectionId, rcvInd->length);
                     printf("socket connection %u receive length %u data:", rcvInd->connectionId, rcvInd->length);
-                    for(int i = 0;i<rcvInd->length;i++)
-                        printf("%x  ",*(Ptr+i));
-                    printf("\n");
+                    // for(int i = 0;i<rcvInd->length;i++)
+                    //     printf("%x  ",*(Ptr+i));
+                    // printf("\n");
                 #endif
                 #endif
                 ECOMM_TRACE(UNILOG_PLA_APP, socketAppConnectionCallBack_5, P_INFO, 2, "socketAppConnectionCallBack socket connection %u receive length %u data", rcvInd->connectionId, rcvInd->length);
                 ECOMM_TRACE(UNILOG_PLA_APP, socketAppConnectionCallBack_5, P_INFO, 2, "socketAppConnectionCallBack socket connection %u receive length %u data", rcvInd->connectionId, rcvInd->length);
             }
             }

+ 1 - 1
src/UartTask.c

@@ -360,10 +360,10 @@ static BOOL uartBattInfoDecode(UINT8* dataPtr)
 	battWarningState = (dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0]<<16) | (dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0] << 8) |(dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]);
 	battWarningState = (dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0]<<16) | (dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+0] << 8) |(dataPtr[(0x0A+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]);
     battSOC = dataPtr[(0x0B+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
     battSOC = dataPtr[(0x0B+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
     battSOH = dataPtr[(0x0C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
     battSOH = dataPtr[(0x0C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1];
+	Battdesigncap = (dataPtr[(0x0E+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<24|(dataPtr[(0x0E+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1])<<16|(dataPtr[(0x0F+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<8|(dataPtr[(0x0F+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]);
 	battPackVol =((dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<8|(dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]))/10;  //uint 100mV
 	battPackVol =((dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2])<<8|(dataPtr[(0x18+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]))/10;  //uint 100mV
 	maxCellVol = (dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
 	maxCellVol = (dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x19+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
 	minCellVol = (dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
 	minCellVol = (dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2] << 8) | dataPtr[(0x1A+BATT_CELL_VOL_NUM+TEMP_NUM)*2 + 1];
-
     battHeatEnableState = dataPtr[(0x1C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]&0x01;
     battHeatEnableState = dataPtr[(0x1C+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]&0x01;
 
 
 	maxCellTemp = 0x00;
 	maxCellTemp = 0x00;

+ 1 - 1
src/app.c

@@ -34,11 +34,11 @@ void appInit(void *arg)
     	printf("%s[%d]\r\n",__FUNCTION__, __LINE__);
     	printf("%s[%d]\r\n",__FUNCTION__, __LINE__);
     #endif
     #endif
     MainTaskInit(arg);
     MainTaskInit(arg);
+    TcpTaskInit(arg);
     AdcTaskInit();
     AdcTaskInit();
     UartTaskInit(arg);
     UartTaskInit(arg);
     GpsTaskInit();
     GpsTaskInit();
 	CANTaskInit(arg);
 	CANTaskInit(arg);
-    TcpTaskInit(arg);
 }
 }
 //主函数入口
 //主函数入口
 void main_entry(void) 
 void main_entry(void)